34 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|  | # ---------------------------------------------------------------------- | ||
|  | #  DEMO: entryfield in [incr Widgets] | ||
|  | # ---------------------------------------------------------------------- | ||
|  | package require Iwidgets 4.0 | ||
|  | 
 | ||
|  | option add *textBackground seashell | ||
|  | . configure -background white | ||
|  | 
 | ||
|  | iwidgets::entryfield .login -labeltext "Login:" -labelpos nw \ | ||
|  |     -command { focus [.passwd component entry] } | ||
|  | pack .login -padx 4 -pady 4 | ||
|  | 
 | ||
|  | iwidgets::entryfield .passwd -labeltext "Password:" -labelpos nw -show "\267" \ | ||
|  |     -command { focus [.phone component entry] } | ||
|  | pack .passwd -padx 4 -pady 4 | ||
|  | 
 | ||
|  | iwidgets::entryfield .phone -labeltext "Phone:" -labelpos nw \ | ||
|  |     -command { focus [.login component entry] } \ | ||
|  |     -validate {check_phonenum %W "%c"} | ||
|  | pack .phone -padx 4 -pady 4 | ||
|  | 
 | ||
|  | proc check_phonenum {entry char} { | ||
|  |     set current [$entry get] | ||
|  |     set len [string length $current] | ||
|  |     if {$len == 3 || $len == 7} { | ||
|  |         $entry delete 0 end | ||
|  |         $entry insert 0 "$current-" | ||
|  |     } | ||
|  |     if {$len < 12 && [string match {[0-9]} $char]} { | ||
|  |         return 1 | ||
|  |     } | ||
|  |     return 0 | ||
|  | } |