Posted to tcl by saedelaere at Wed Jun 24 12:07:02 GMT 2009view raw
- proc font_chooserUi {} {
- set w [toplevel .fontchooser]
- place [ttk::frame $w.bgcolor] -x 0 -y 0 -relwidth 1 -relheight 1
- set mffont [ttk::frame $w.f_ch_font]
- set mfpre [ttk::frame $w.f_ch_pre]
- set mfbottom [ttk::frame $w.f_ch_bottom \
- -borderwidth 2 \
- -relief groove]
- ttk::label $mffont.l_fam \
- -text [mc "Family:"]
- listbox $mffont.lb_fam \
- -exportselection false \
- -yscrollcommand [list $mffont.scrollb_famy set] \
- -xscrollcommand [list $mffont.scrollb_famx set]
- ttk::scrollbar $mffont.scrollb_famy \
- -orient vertical \
- -command [list $mffont.lb_fam yview]
- ttk::scrollbar $mffont.scrollb_famx \
- -orient horizontal \
- -command [list $mffont.lb_fam xview]
- ttk::label $mffont.l_style \
- -text [mc "Style:"]
- listbox $mffont.lb_style \
- -exportselection false \
- -yscrollcommand [list $mffont.scrollb_styley set]
- ttk::scrollbar $mffont.scrollb_styley \
- -orient vertical \
- -command [list $mffont.lb_style yview]
- ttk::label $mffont.l_size \
- -text [mc "Size:"]
- listbox $mffont.lb_size \
- -exportselection false \
- -yscrollcommand [list $mffont.scrollb_sizey set] \
- -width 0
- ttk::scrollbar $mffont.scrollb_sizey \
- -orient vertical \
- -command [list $mffont.lb_size yview]
- ttk::label $mfpre.l_prev \
- -text [mc "Preview:"]
- ttk::frame $mfpre.f_prev \
- -borderwidth 2 \
- -relief groove
- ttk::entry $mfpre.f_prev.e_abc \
- -textvariable font(abc)
- ttk::button $mfbottom.b_apply \
- -text [mc "Apply"] \
- -command "" \
- -compound left \
- -image $::icon_s(dialog-ok-apply)
- ttk::button $mfbottom.b_cancel \
- -text [mc "Cancel"] \
- -command "" \
- -compound left \
- -image $::icon_s(dialog-cancel)
- grid columnconfigure $mfpre 0 -weight 1
- grid columnconfigure $mfpre.f_prev 0 -weight 1
- grid $mffont -in $w -row 0 -column 0 \
- -sticky ew \
- -padx 8 \
- -pady 8
- grid $mfpre -in $w -row 1 -column 0 \
- -sticky ew \
- -padx 8
- grid $mfbottom -in $w -row 2 -column 0 \
- -sticky ew \
- -padx 8 \
- -pady 8
- grid anchor $mfbottom e
- grid $mffont.l_fam -in $mffont -row 0 -column 0 \
- -sticky w
- grid $mffont.lb_fam -in $mffont -row 1 -column 0
- grid $mffont.scrollb_famy -row 1 -column 1 \
- -sticky ns \
- -padx "1 4"
- grid $mffont.scrollb_famx -row 2 -column 0 \
- -sticky ew \
- -pady "1 0"
- grid $mffont.l_style -in $mffont -row 0 -column 2 \
- -sticky w
- grid $mffont.lb_style -in $mffont -row 1 -column 2 \
- -rowspan 2 \
- -sticky ns
- grid $mffont.scrollb_styley -in $mffont -row 1 -column 3 \
- -rowspan 2 \
- -sticky ns \
- -padx "1 4"
- grid $mffont.l_size -in $mffont -row 0 -column 4 \
- -sticky w \
- -columnspan 2
- grid $mffont.lb_size -in $mffont -row 1 -column 4 \
- -rowspan 2 \
- -sticky ns
- grid $mffont.scrollb_sizey -in $mffont -row 1 -column 5 \
- -rowspan 2 \
- -sticky ns \
- -padx "1 0"
- grid $mfpre.l_prev -in $mfpre -row 0 -column 0 \
- -sticky w
- grid $mfpre.f_prev -in $mfpre -row 1 -column 0 \
- -sticky ew
- grid $mfpre.f_prev.e_abc -in $mfpre.f_prev -row 0 -column 0 \
- -padx 3 \
- -pady 7 \
- -sticky ew
- grid $mfbottom.b_apply -in $mfbottom -row 0 -column 0 \
- -pady 7
- grid $mfbottom.b_cancel -in $mfbottom -row 0 -column 1 \
- -padx 3
- foreach fam [lsort [font families]] {
- $mffont.lb_fam insert end " $fam"
- }
- $mffont.lb_fam insert end " Sans"
- set avail_styles {Regular Italic Bold "Bold Italic"}
- foreach style $avail_styles {
- $mffont.lb_style insert end " $style"
- }
- set avail_sizes {8 9 10 11 12 14 16 18 20 22 24 26 28 32 36 40 48 54 60 66 72 80 88 96}
- foreach size $avail_sizes {
- $mffont.lb_size insert end " $size "
- }
- bind $mffont.lb_fam <<ListboxSelect>> [list font_chooserUiCfont $mffont.lb_fam $mffont.lb_style $mffont.lb_size $mfpre.f_prev.e_abc]
- bind $mffont.lb_style <<ListboxSelect>> [list font_chooserUiCfont $mffont.lb_fam $mffont.lb_style $mffont.lb_size $mfpre.f_prev.e_abc]
- bind $mffont.lb_size <<ListboxSelect>> [list font_chooserUiCfont $mffont.lb_fam $mffont.lb_style $mffont.lb_size $mfpre.f_prev.e_abc]
- ####
- $mffont.lb_fam selection set 0
- $mffont.lb_style selection set 0
- $mffont.lb_size selection set 0
- set ::font(abc) "abcdefghijk ABCDEFGHIJK"
- #wm resizable $w 0 0
- }
- proc font_chooserUiCfont {lb1 lb2 lb3 pre_entry} {
- set font "[string trim [$lb1 get [$lb1 curselection]]]"
- set style "[string trim [string tolower [$lb2 get [$lb2 curselection]]]]"
- set size "[string trim [$lb3 get [$lb3 curselection]]]"
- puts "font $font style $style size $size"
- if {"$style" == "regular"} {
- $pre_entry configure -font "{$font} $size"
- } else {
- $pre_entry configure -font "{$font} $size $style"
- }
- }