home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 December
/
PCWorld_2000-12_cd.bin
/
Komunikace
/
Comanche
/
BWidget-1.2
/
demo
/
tmpldlg.tcl
< prev
next >
Wrap
Text File
|
2000-11-02
|
8KB
|
208 lines
namespace eval DemoDlg {
variable tmpl
variable msg
variable progmsg
variable progval
variable resources "en"
}
proc DemoDlg::create { nb } {
set frame [$nb insert end demoDlg -text "Dialog"]
set titf1 [TitleFrame $frame.titf1 -text "Resources"]
set titf2 [TitleFrame $frame.titf2 -text "Template Dialog"]
set titf3 [TitleFrame $frame.titf3 -text "Message Dialog"]
set titf4 [TitleFrame $frame.titf4 -text "Other dialog"]
set subf [$titf1 getframe]
set cmd {option read [file join $env(BWIDGET_LIBRARY) "lang" $DemoDlg::resources.rc]}
set rad1 [radiobutton $subf.rad1 -text "English" \
-variable DemoDlg::resources -value en \
-command $cmd]
set rad2 [radiobutton $subf.rad2 -text "French" \
-variable DemoDlg::resources -value fr \
-command $cmd]
set rad3 [radiobutton $subf.rad3 -text "German" \
-variable DemoDlg::resources -value de \
-command $cmd]
pack $rad1 $rad2 $rad3 -side left
_tmpldlg [$titf2 getframe]
_msgdlg [$titf3 getframe]
_stddlg [$titf4 getframe]
pack $titf1 -fill x -pady 2 -padx 2
pack $titf4 -side bottom -fill x -pady 2 -padx 2
pack $titf2 $titf3 -side left -padx 2 -fill both -expand yes
}
proc DemoDlg::_tmpldlg { parent } {
variable tmpl
set tmpl(side) bottom
set tmpl(anchor) c
set labf1 [LabelFrame $parent.labf1 -text "Button side" -side top \
-anchor w -relief sunken -borderwidth 1]
set subf [$labf1 getframe]
radiobutton $subf.rad1 -text "Bottom" \
-variable DemoDlg::tmpl(side) -value bottom -anchor w
radiobutton $subf.rad2 -text "Left" \
-variable DemoDlg::tmpl(side) -value left -anchor w
radiobutton $subf.rad3 -text "Right" \
-variable DemoDlg::tmpl(side) -value right -anchor w
radiobutton $subf.rad4 -text "Top" \
-variable DemoDlg::tmpl(side) -value top -anchor w
pack $subf.rad1 $subf.rad2 $subf.rad3 $subf.rad4 -fill x -anchor w
set labf2 [LabelFrame $parent.labf2 -text "Button anchor" -side top \
-anchor w -relief sunken -borderwidth 1]
set subf [$labf2 getframe]
radiobutton $subf.rad1 -text "North" \
-variable DemoDlg::tmpl(anchor) -value n -anchor w
radiobutton $subf.rad2 -text "West" \
-variable DemoDlg::tmpl(anchor) -value w -anchor w
radiobutton $subf.rad3 -text "East" \
-variable DemoDlg::tmpl(anchor) -value e -anchor w
radiobutton $subf.rad4 -text "South" \
-variable DemoDlg::tmpl(anchor) -value s -anchor w
radiobutton $subf.rad5 -text "Center" \
-variable DemoDlg::tmpl(anchor) -value c -anchor w
pack $subf.rad1 $subf.rad2 $subf.rad3 $subf.rad4 $subf.rad5 -fill x -anchor w
set sep [Separator $parent.sep -orient horizontal]
set button [button $parent.but -text "Show" -command DemoDlg::_show_tmpldlg]
pack $button -side bottom
pack $sep -side bottom -fill x -pady 10
pack $labf1 $labf2 -side left -padx 4 -anchor n
}
proc DemoDlg::_msgdlg { parent } {
variable msg
set msg(type) ok
set msg(icon) info
set labf1 [LabelFrame $parent.labf1 -text "Type" -side top \
-anchor w -relief sunken -borderwidth 1]
set subf [$labf1 getframe]
radiobutton $subf.rad1 -text "Ok" -variable DemoDlg::msg(type) -value ok -anchor w
radiobutton $subf.rad2 -text "Ok, Cancel" -variable DemoDlg::msg(type) -value okcancel -anchor w
radiobutton $subf.rad3 -text "Retry, Cancel" -variable DemoDlg::msg(type) -value retrycancel -anchor w
radiobutton $subf.rad4 -text "Yes, No" -variable DemoDlg::msg(type) -value yesno -anchor w
radiobutton $subf.rad5 -text "Yes, No, Cancel" -variable DemoDlg::msg(type) -value yesnocancel -anchor w
radiobutton $subf.rad6 -text "Abort, Retry, Ignore" -variable DemoDlg::msg(type) -value abortretryignore -anchor w
radiobutton $subf.rad7 -text "User" -variable DemoDlg::msg(type) -value user -anchor w
Entry $subf.user -textvariable DemoDlg::msg(buttons)
pack $subf.rad1 $subf.rad2 $subf.rad3 $subf.rad4 $subf.rad5 $subf.rad6 -fill x -anchor w
pack $subf.rad7 $subf.user -side left
set labf2 [LabelFrame $parent.labf2 -text "Icon" -side top -anchor w -relief sunken -borderwidth 1]
set subf [$labf2 getframe]
radiobutton $subf.rad1 -text "Information" -variable DemoDlg::msg(icon) -value info -anchor w
radiobutton $subf.rad2 -text "Question" -variable DemoDlg::msg(icon) -value question -anchor w
radiobutton $subf.rad3 -text "Warning" -variable DemoDlg::msg(icon) -value warning -anchor w
radiobutton $subf.rad4 -text "Error" -variable DemoDlg::msg(icon) -value error -anchor w
pack $subf.rad1 $subf.rad2 $subf.rad3 $subf.rad4 -fill x -anchor w
set sep [Separator $parent.sep -orient horizontal]
set button [button $parent.but -text "Show" -command DemoDlg::_show_msgdlg]
pack $button -side bottom
pack $sep -side bottom -fill x -pady 10
pack $labf1 $labf2 -side left -padx 4 -anchor n
}
proc DemoDlg::_stddlg { parent } {
set labf [LabelFrame $parent.f -text "Select a color "]
set color [SelectColor [$labf getframe].col -type menubutton]
set but1 [button $parent.but1 \
-text "Font selector dialog" \
-command DemoDlg::_show_fontdlg]
set but2 [button $parent.but2 \
-text "Progression dialog" \
-command DemoDlg::_show_progdlg]
set but3 [button $parent.but3 \
-text "Password dialog" \
-command DemoDlg::_show_passdlg]
pack $color
pack $labf $but1 $but2 $but3 -side left -padx 5 -anchor w
}
proc DemoDlg::_show_tmpldlg { } {
variable tmpl
set dlg [Dialog .tmpldlg -parent . -modal local \
-separator 1 \
-title "Template dialog" \
-side $tmpl(side) \
-anchor $tmpl(anchor) \
-default 0 -cancel 1]
$dlg add -name ok
$dlg add -name cancel
set msg [message [$dlg getframe].msg -text "Template\nDialog" -justify center -anchor c]
pack $msg -fill both -expand yes -padx 100 -pady 100
$dlg draw
destroy $dlg
}
proc DemoDlg::_show_msgdlg { } {
variable msg
destroy .msgdlg
MessageDlg .msgdlg -parent . \
-message "Message for MessageBox" \
-type $msg(type) \
-icon $msg(icon) \
-buttons $msg(buttons)
}
proc DemoDlg::_show_fontdlg { } {
set font [SelectFont .fontdlg -parent . -font $Demo::font]
if { $font != "" } {
Demo::update_font $font
}
}
proc DemoDlg::_show_progdlg { } {
set DemoDlg::progmsg "Compute in progress..."
set DemoDlg::progval 0
ProgressDlg .progress -parent . -title "Wait..." \
-type infinite \
-width 20 \
-textvariable DemoDlg::progmsg \
-variable DemoDlg::progval \
-stop "Stop" \
-command {destroy .progress}
_update_progdlg
}
proc DemoDlg::_update_progdlg { } {
if { [winfo exists .progress] } {
set DemoDlg::progval 2
after 20 DemoDlg::_update_progdlg
}
}
proc DemoDlg::_show_passdlg { } {
PasswdDlg .passwd -parent .
}