You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
Plaintext
34 lines
1.0 KiB
Plaintext
15 years ago
|
# ----------------------------------------------------------------------
|
||
|
# 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
|
||
|
}
|