Spaces:
Running
Running
# fontchoose.tcl -- | |
# | |
# Show off the stock font selector dialog | |
if {![info exists widgetDemo]} { | |
error "This script should be run from the \"widget\" demo." | |
} | |
package require Tk | |
set w .fontchoose | |
catch {destroy $w} | |
toplevel $w | |
wm title $w "Font Selection Dialog" | |
wm iconname $w "fontchooser" | |
positionWindow $w | |
catch {font create FontchooseDemoFont {*}[font actual TkDefaultFont]} | |
# The font chooser needs to be configured and then shown. | |
proc SelectFont {parent} { | |
tk fontchooser configure -font FontchooseDemoFont \ | |
-command ApplyFont -parent $parent | |
tk fontchooser show | |
} | |
proc ApplyFont {font} { | |
font configure FontchooseDemoFont {*}[font actual $font] | |
} | |
# When the visibility of the fontchooser changes, the following event is fired | |
# to the parent widget. | |
# | |
bind $w <<TkFontchooserVisibility>> { | |
if {[tk fontchooser configure -visible]} { | |
%W.f.font state disabled | |
} else { | |
%W.f.font state !disabled | |
} | |
} | |
set f [ttk::frame $w.f -relief sunken -padding 2] | |
text $f.msg -font FontchooseDemoFont -width 40 -height 6 -borderwidth 0 \ | |
-yscrollcommand [list $f.vs set] | |
ttk::scrollbar $f.vs -command [list $f.msg yview] | |
$f.msg insert end "Press the buttons below to choose a new font for the\ | |
text shown in this window.\n" {} | |
ttk::button $f.font -text "Set font ..." -command [list SelectFont $w] | |
grid $f.msg $f.vs -sticky news | |
grid $f.font - -sticky e | |
grid columnconfigure $f 0 -weight 1 | |
grid rowconfigure $f 0 -weight 1 | |
## See Code / Dismiss buttons | |
set btns [addSeeDismiss $w.buttons $w] | |
grid $f -sticky news | |
grid $btns -sticky ew | |
grid columnconfigure $w 0 -weight 1 | |
grid rowconfigure $w 0 -weight 1 | |
update idletasks | |
grid propagate $f 0 | |