You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
215 lines
7.5 KiB
215 lines
7.5 KiB
|
|
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 $::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 but0 [button $parent.but0 \ |
|
-text "Select a color " \ |
|
-command "DemoDlg::_show_color $parent.but0"] |
|
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 $but0 $but1 $but2 $but3 -side left -padx 5 -anchor w |
|
} |
|
|
|
proc DemoDlg::_show_color {w} { |
|
set color [SelectColor::menu $w.color [list below $w] \ |
|
-color [$w cget -background] \ |
|
-command [list $w configure -background]] |
|
if {[string length $color]} { |
|
$w configure -background $color |
|
} |
|
} |
|
|
|
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 . |
|
} |
|
|
|
|