home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 December
/
PCWorld_2000-12_cd.bin
/
Komunikace
/
Comanche
/
BWidget-1.2
/
passwddlg.tcl
< prev
next >
Wrap
Text File
|
2000-11-02
|
7KB
|
177 lines
# -----------------------------------------------------------------------------
# passwddlg.tcl
# This file is part of Unifix BWidget Toolkit
# by Stephane Lavirotte (Stephane.Lavirotte@sophia.inria.fr)
# $Id: passwddlg.tcl,v 1.1.1.1 1996/02/22 06:05:56 daniel Exp $
# -----------------------------------------------------------------------------
# Index of commands:
# - PasswdDlg::create
# - PasswdDlg::configure
# - PasswdDlg::cget
# - PasswdDlg::_verifonlogin
# - PasswdDlg::_verifonpasswd
# - PasswdDlg::_max
#------------------------------------------------------------------------------
namespace eval PasswdDlg {
Dialog::use
LabelEntry::use
Widget::bwinclude PasswdDlg Dialog "" \
remove {-image -bitmap -side -default -cancel -separator} \
initialize {-modal local -anchor c}
Widget::bwinclude PasswdDlg LabelEntry .frame.lablog \
remove {
-command -editable -justify -name -show -side -state -takefocus
-width -xscrollcommand -padx -pady
-dragenabled -dragendcmd -dragevent -draginitcmd -dragtype
-dropenabled -dropcmd -dropovercmd -droptypes
} \
prefix {login -helptext -helpvar -label -text -textvariable -underline} \
initialize {-relief sunken -borderwidth 2 -labelanchor w -width 15 -loginlabel "Login"}
Widget::bwinclude PasswdDlg LabelEntry .frame.labpass \
remove {
-command -width -show -side -takefocus -xscrollcommand
-dragenabled -dragendcmd -dragevent -draginitcmd -dragtype
-dropenabled -dropcmd -dropovercmd -droptypes -justify -padx -pady -name
} \
prefix {passwd -editable -helptext -helpvar -label -state -text -textvariable -underline} \
initialize {-relief sunken -borderwidth 2 -labelanchor w -width 15 -passwdlabel "Password"}
Widget::declare PasswdDlg {
{-type Enum ok 0 {ok okcancel}}
{-labelwidth TkResource -1 0 {label -width}}
{-command String "" 0}
}
Widget::syncoptions PasswdDlg LabelEntry .frame.lablog {
-logintext -text -loginlabel -label -loginunderline -underline
}
Widget::syncoptions PasswdDlg LabelEntry .frame.labpass {
-passwdtext -text -passwdlabel -label -passwdunderline -underline
}
proc ::PasswdDlg { path args } { return [eval PasswdDlg::create $path $args] }
proc use {} {}
}
# -----------------------------------------------------------------------------
# Command PasswdDlg::create
# -----------------------------------------------------------------------------
proc PasswdDlg::create { path args } {
Widget::init PasswdDlg "$path#PasswdDlg" $args
set type [Widget::getoption "$path#PasswdDlg" -type]
set loglabel [Widget::getoption "$path#PasswdDlg" -loginlabel]
set passlabel [Widget::getoption "$path#PasswdDlg" -passwdlabel]
set labwidth [Widget::getoption "$path#PasswdDlg" -labelwidth]
set cmd [Widget::getoption "$path#PasswdDlg" -command]
set defb -1
set canb -1
switch -- $type {
ok { set lbut {ok}; set defb 0 }
okcancel { set lbut {ok cancel} ; set defb 0; set canb 1 }
}
eval Dialog::create $path [Widget::subcget "$path#PasswdDlg" ""] \
-image [Bitmap::get passwd] -side bottom -default $defb -cancel $canb
foreach but $lbut {
if { $but == "ok" && $cmd != "" } {
Dialog::add $path -text $but -name $but -command $cmd
} else {
Dialog::add $path -text $but -name $but
}
}
set frame [Dialog::getframe $path]
bind $path <Return> ""
bind $frame <Destroy> "Widget::destroy $path#PasswdDlg"
set lablog [eval LabelEntry::create $frame.lablog \
[Widget::subcget "$path#PasswdDlg" .frame.lablog] \
-label \"$loglabel\" -name login \
-dragenabled 0 -dropenabled 0 \
-command \"PasswdDlg::_verifonpasswd $path $frame.labpass\"]
set labpass [eval LabelEntry::create $frame.labpass \
[Widget::subcget "$path#PasswdDlg" .frame.labpass] \
-label \"$passlabel\" -name password -show "*" \
-dragenabled 0 -dropenabled 0 \
-command \"PasswdDlg::_verifonlogin $path $frame.lablog\"]
if { $labwidth == -1 } {
# les options -label sont mises a jour selon -name
set loglabel [$lablog cget -label]
set passlabel [$labpass cget -label]
set labwidth [PasswdDlg::_max [string length $loglabel] [string length $passlabel]]
incr labwidth 1
$lablog configure -labelwidth $labwidth
$labpass configure -labelwidth $labwidth
}
proc ::$path { cmd args } "return \[eval PasswdDlg::\$cmd $path \$args\]"
pack $frame.lablog $frame.labpass -fill x -expand 1
focus $frame.lablog.e
set res [Dialog::draw $path]
if { $res == 0 } {
set res [list [$lablog.e cget -text] [$labpass.e cget -text]]
} else {
set res [list]
}
Widget::destroy "$path#PasswdDlg"
destroy $path
return $res
}
# -----------------------------------------------------------------------------
# Command PasswdDlg::configure
# -----------------------------------------------------------------------------
proc PasswdDlg::configure { path args } {
set res [Widget::configure "$path#PasswdDlg" $args]
}
# -----------------------------------------------------------------------------
# Command PasswdDlg::cget
# -----------------------------------------------------------------------------
proc PasswdDlg::cget { path option } {
return [Widget::cget "$path#PasswdDlg" $option]
}
# -----------------------------------------------------------------------------
# Command PasswdDlg::_verifonlogin
# -----------------------------------------------------------------------------
proc PasswdDlg::_verifonlogin { path labpass } {
if { [$labpass.e cget -text] == "" } {
focus $labpass
} else {
Dialog::setfocus $path default
}
}
# -----------------------------------------------------------------------------
# Command PasswdDlg::_verifonpasswd
# -----------------------------------------------------------------------------
proc PasswdDlg::_verifonpasswd { path lablog } {
if { [$lablog.e cget -text] == "" } {
focus $lablog
} else {
Dialog::setfocus $path default
}
}
# -----------------------------------------------------------------------------
# Command PasswdDlg::_max
# -----------------------------------------------------------------------------
proc PasswdDlg::_max { val1 val2 } {
return [expr ($val1 > $val2) ? ($val1) : ($val2)]
}