33 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			33 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
 | |
| }
 |