texlive[49240] Master/tlpkg: More resizing-related changes; revised
commits+siepo at tug.org
commits+siepo at tug.org
Sat Nov 24 21:46:16 CET 2018
Revision: 49240
http://tug.org/svn/texlive?view=revision&revision=49240
Author: siepo
Date: 2018-11-24 21:46:16 +0100 (Sat, 24 Nov 2018)
Log Message:
-----------
More resizing-related changes; revised collections dialog
Modified Paths:
--------------
trunk/Master/tlpkg/installer/install-tl-gui.tcl
trunk/Master/tlpkg/tltcl/tltcl.tcl
Modified: trunk/Master/tlpkg/installer/install-tl-gui.tcl
===================================================================
--- trunk/Master/tlpkg/installer/install-tl-gui.tcl 2018-11-24 01:23:27 UTC (rev 49239)
+++ trunk/Master/tlpkg/installer/install-tl-gui.tcl 2018-11-24 20:46:16 UTC (rev 49240)
@@ -316,7 +316,7 @@
pack .tled.e -in .tled.bg -pady 5
.tled.e insert 0 [.tltd.name_l cget -text]
# now frame with ok and cancel buttons
- pack [ttk::frame .tled.buttons] -in .tled.bg -fill x -expand 1
+ pack [ttk::frame .tled.buttons] -in .tled.bg -fill x
ttk::button .tled.ok_b -text [__ "Ok"] -command {
if [regexp {[\\/]} [.tled.e get]] {
tk_messageBox -type ok -icon error -message [__ "No slashes allowed"]
@@ -331,6 +331,7 @@
ppack .tled.q_b -in .tled.buttons -side right -padx 5 -pady 5
wm protocol .tled WM_DELETE_WINDOW {.tled.q_b invoke}
+ wm resizable .tled 0 0
place_dlg .tled .tltd
} ; # edit_name
@@ -423,11 +424,11 @@
ttk::label .tltd.loc -anchor w
.tltd.loc configure -text \
[__ "Localized directory names will be replaced by their real names"]
- ppack .tltd.loc -in .tltd.bg -fill x -expand 1
+ ppack .tltd.loc -in .tltd.bg -fill x
}
# ok/cancel buttons
- pack [ttk::frame .tltd.frbt] -in .tltd.bg -pady [list 10 0] -fill x -expand 1
+ pack [ttk::frame .tltd.frbt] -in .tltd.bg -pady [list 10 0] -fill x
ttk::button .tltd.ok_b -text [__ "Ok"] -command commit_root
ppack .tltd.ok_b -in .tltd.frbt -side right
ttk::button .tltd.cancel_b -text [__ "Cancel"] \
@@ -477,6 +478,7 @@
bind .tltd <Escape> {destroy .tltd}
wm protocol .tltd WM_DELETE_WINDOW {.tltd.cancel_b invoke}
+ wm resizable .tltd 1 0
place_dlg .tltd
} ; # texdir_setup
@@ -506,13 +508,10 @@
# other widgets
- ppack [ttk::entry .td.e -width 60] -in .td.bg -fill x -expand 1
+ ppack [ttk::entry .td.e -width 60] -in .td.bg -fill x
.td.e insert 0 [native_slashify $::vars($d)]
pack [ttk::frame .td.f] -fill x -expand 1
- # below, ensure that $v is evaluated while the interface is built:
- # the variable won't be available to the button callback
- # quoted string rather than curly braces
ttk::button .td.ok -text [__ "Ok"] -command {end_dlg [.td.e get] .td}
ppack .td.ok -in .td.f -side right
ttk::button .td.cancel -text [__ "Cancel"] -command {end_dlg "" .td}
@@ -519,6 +518,7 @@
ppack .td.cancel -in .td.f -side right
wm protocol .td WM_DELETE_WINDOW {.td.cancel invoke}
+ wm resizable .td 1 0
place_dlg .td .
tkwait window .td
if {$::dialog_ans ne ""} {set ::vars($d) $::dialog_ans}
@@ -528,7 +528,6 @@
set ::vars(instopt_portable) [expr {!$::vars(instopt_portable)}]
set yn [yes_no $::vars(instopt_portable)]
.dirportvl configure -text $yn
-# .dirportvl configure -text [yes_no $::vars(instopt_portable)]
commit_canonical_local
if {$::vars(instopt_portable)} {
set ::vars(TEXMFHOME) $::vars(TEXMFLOCAL)
@@ -668,43 +667,46 @@
# wallpaper
pack [ttk::frame .tlbin.bg -padding 3] -expand 1 -fill both
- set max_width 0
- foreach b [array names ::bin_descs] {
- set bl [font measure TkTextFont [__ $::bin_descs($b)]]
- if {$bl > $max_width} {set max_width $bl}
- }
- incr max_width 10
+ # ok, cancel buttons
+ pack [ttk::frame .tlbin.buts] -in .tlbin.bg -side bottom -fill x
+ ttk::button .tlbin.ok -text [__ "Ok"] -command \
+ {save_bin_selections; update_vars; end_dlg 1 .tlbin}
+ ppack .tlbin.ok -in .tlbin.buts -side right
+ ttk::button .tlbin.cancel -text [__ "Cancel"] -command {end_dlg 0 .tlbin}
+ ppack .tlbin.cancel -in .tlbin.buts -side right
+ #set max_width 0
+ #foreach b [array names ::bin_descs] {
+ # set bl [font measure TkTextFont [__ $::bin_descs($b)]]
+ # if {$bl > $max_width} {set max_width $bl}
+ #}
+ #incr max_width 10
+
# treeview for binaries, with checkbox column and vertical scrollbar
pack [ttk::frame .tlbin.binsf] -in .tlbin.bg -expand 1 -fill both
ttk::treeview .tlbin.lst -columns {mk desc} -show {} \
- -height 15 -selectmode extended -yscrollcommand {.tlbin.binsc set}
+ -selectmode extended -yscrollcommand {.tlbin.binsc set}
ttk::scrollbar .tlbin.binsc -orient vertical -command {.tlbin.lst yview}
- .tlbin.lst column mk -width [expr {$::cw * 3}]
- .tlbin.lst column desc -width $max_width
+ .tlbin.lst column mk -stretch 0 -width [expr {$::cw * 3}]
+ .tlbin.lst column desc -stretch 1
foreach b [array names ::bin_descs] {
set bb "binary_$b"
.tlbin.lst insert {} end -id $b -values \
[list [mark_sym $::vars($bb)] [__ $::bin_descs($b)]]
}
- ppack .tlbin.lst -in .tlbin.binsf -side left -expand 1 -fill both
- ppack .tlbin.binsc -in .tlbin.binsf -side right -expand 1 -fill y
+ pgrid .tlbin.lst -in .tlbin.binsf -row 0 -column 0 -sticky news
+ pgrid .tlbin.binsc -in .tlbin.binsf -row 0 -column 1 -sticky ns
+ grid columnconfigure .tlbin.binsf 0 -weight 1
+ grid rowconfigure .tlbin.binsf 0 -weight 1
bind .tlbin.lst <space> {toggle_bin [.tlbin.lst focus]}
bind .tlbin.lst <Return> {toggle_bin [.tlbin.lst focus]}
bind .tlbin.lst <ButtonRelease-1> \
{toggle_bin [.tlbin.lst identify item %x %y]}
- # ok, cancel buttons
- pack [ttk::frame .tlbin.buts] -in .tlbin.bg -expand 1 -fill x
- ttk::button .tlbin.ok -text [__ "Ok"] -command \
- {save_bin_selections; update_vars; end_dlg 1 .tlbin}
- ppack .tlbin.ok -in .tlbin.buts -side right
- ttk::button .tlbin.cancel -text [__ "Cancel"] -command {end_dlg 0 .tlbin}
- ppack .tlbin.cancel -in .tlbin.buts -side right
-
wm protocol .tlbin WM_DELETE_WINDOW {.tlbin.cancel invoke}
+ wm resizable .tlbin 1 1
place_dlg .tlbin .
}; # select_binaries
@@ -719,22 +721,8 @@
# wallpaper
pack [ttk::frame .tlschm.bg -padding 3] -fill both -expand 1
- set max_width 0
- foreach s $::schemes_order {
- set sl [font measure TkTextFont [__ $::scheme_descs($s)]]
- if {$sl > $max_width} {set max_width $sl}
- }
- incr max_width 10
- ttk::treeview .tlschm.lst -columns {desc} -show {} -selectmode browse \
- -height [llength $::schemes_order]
- .tlschm.lst column "desc" -width $max_width -stretch 1
- ppack .tlschm.lst -in .tlschm.bg -fill x -expand 1
- foreach s $::schemes_order {
- .tlschm.lst insert {} end -id $s -values [list [__ $::scheme_descs($s)]]
- }
- # we already made sure that $::vars(selected_scheme) has a valid value
- .tlschm.lst selection set [list $::vars(selected_scheme)]
- pack [ttk::frame .tlschm.buts] -in .tlschm.bg -expand 1 -fill x
+ # buttons at bottom
+ pack [ttk::frame .tlschm.buts] -in .tlschm.bg -side bottom -fill x
ttk::button .tlschm.ok -text [__ "Ok"] -command {
# tree selection is a list:
set ::vars(selected_scheme) [lindex [.tlschm.lst selection] 0]
@@ -755,7 +743,25 @@
ttk::button .tlschm.cancel -text [__ "Cancel"] -command {end_dlg 0 .tlschm}
ppack .tlschm.cancel -in .tlschm.buts -side right
+ # schemes list
+ #set max_width 0
+ #foreach s $::schemes_order {
+ # set sl [font measure TkTextFont [__ $::scheme_descs($s)]]
+ # if {$sl > $max_width} {set max_width $sl}
+ #}
+ #incr max_width 10
+ ttk::treeview .tlschm.lst -columns {desc} -show {} -selectmode browse \
+ -height [llength $::schemes_order]
+ .tlschm.lst column "desc" -stretch 1; # -minwidth $max_width
+ ppack .tlschm.lst -in .tlschm.bg -fill both -expand 1
+ foreach s $::schemes_order {
+ .tlschm.lst insert {} end -id $s -values [list [__ $::scheme_descs($s)]]
+ }
+ # we already made sure that $::vars(selected_scheme) has a valid value
+ .tlschm.lst selection set [list $::vars(selected_scheme)]
+
wm protocol .tlschm WM_DELETE_WINDOW {tlschm.cancel invoke}
+ wm resizable .tlschm 1 0
place_dlg .tlschm .
}; # select_scheme
@@ -801,26 +807,10 @@
wm title .tlcoll [__ "Collections"]
# wallpaper
- pack [ttk::frame .tlcoll.bg -padding 3]
+ pack [ttk::frame .tlcoll.bg -padding 3] -fill both -expand 1
- # frame at bottom with select none, select all, ok and cancel buttons
+ # frame at bottom with ok and cancel buttons
pack [ttk::frame .tlcoll.butf] -in .tlcoll.bg -side bottom -fill x
- ttk::button .tlcoll.all \
- -text [__ "Select all"] \
- -command \
- {foreach wgt {.tlcoll.other .tlcoll.lang} {
- foreach c [$wgt children {}] {$wgt set $c "mk" [mark_sym 1]}
- }
- }
- ppack .tlcoll.all -in .tlcoll.butf -side left
- ttk::button .tlcoll.none \
- -text [__ "Select none"] \
- -command \
- {foreach wgt {.tlcoll.other .tlcoll.lang} {
- foreach c [$wgt children {}] {$wgt set $c "mk" [mark_sym 0]}
- }
- }
- ppack .tlcoll.none -in .tlcoll.butf -side left
ttk::button .tlcoll.ok -text [__ "Ok"] -command \
{save_coll_selections; end_dlg 1 .tlcoll}
ppack .tlcoll.ok -in .tlcoll.butf -side right
@@ -828,30 +818,27 @@
ppack .tlcoll.cancel -in .tlcoll.butf -side right
# Treeview and scrollbar for non-language- and language collections resp.
- pack [ttk::frame .tlcoll.both] -in .tlcoll.bg -expand 1 -fill x
+ pack [ttk::frame .tlcoll.both] -in .tlcoll.bg -expand 1 -fill both
- # preferred widths
- set max_width_lang 0
- set max_width_other 0
- foreach c [array names ::coll_descs] {
- set is_lang [string equal -length 15 "collection-lang" $c]
- set cl [font measure TkTextFont [__ $::coll_descs($c)]]
- if {$is_lang && $cl > $max_width_lang} {
- set max_width_lang $cl
- } elseif {$cl > $max_width_other} {
- set max_width_other $cl
- }
- }
- incr max_width_lang 10
- incr max_width_other 10
+ foreach t {"lang" "other"} {
- foreach t {"lang" "other"} {
+ # frames with select all/none buttons, separately for lang and others
+ set wgb .tlcoll.b$t
+ ttk::frame $wgb
+ ttk::label ${wgb}sel -text [__ "Select"]
+ ttk::button ${wgb}all -text [__ "All"] -padding 1 -command \
+ "foreach c \[.tlcoll.$t children {}\] \{
+ .tlcoll.$t set \$c mk \[mark_sym 1\]\}"
+ ttk::button ${wgb}none -text [__ "None"] -padding 1 -command \
+ "foreach c \[.tlcoll.$t children {}\] \{
+ .tlcoll.$t set \$c mk \[mark_sym 0\]\}"
+ pack ${wgb}sel ${wgb}all ${wgb}none -in $wgb \
+ -side left -padx 3 -pady 3
+
+ # trees with collections and markers, lang and other separately
set wgt ".tlcoll.$t"
- pack [ttk::frame ${wgt}f] \
- -in .tlcoll.both -side left -fill x
-
ttk::treeview $wgt -columns {mk desc} -show {headings} \
- -height 20 -selectmode extended -yscrollcommand "${wgt}sc set"
+ -selectmode extended -yscrollcommand "${wgt}sc set"
$wgt heading "mk" -text ""
if {$t eq "lang"} {
$wgt heading "desc" -text [__ "Languages"]
@@ -858,19 +845,27 @@
} else {
$wgt heading "desc" -text [__ "Other collections"]
}
-
+ # and their vertical scrollbars
ttk::scrollbar ${wgt}sc -orient vertical -command "$wgt yview"
$wgt column mk -width [expr {$::cw * 3}] -stretch 0
- ppack $wgt -in ${wgt}f -side left -fill x -expand 1
- ppack ${wgt}sc -in ${wgt}f -side left -fill y
+ $wgt column desc -stretch 1
bind $wgt <space> {toggle_coll %W [%W focus]}
bind $wgt <Return> {toggle_coll %W [%W focus]}
bind $wgt <ButtonRelease-1> {toggle_coll %W [%W identify item %x %y]}
}
- .tlcoll.lang column desc -width $max_width_lang -stretch 1
- .tlcoll.other column desc -width $max_width_other -stretch 1
+ grid .tlcoll.blang x .tlcoll.bother -in .tlcoll.both -sticky w
+ grid .tlcoll.lang .tlcoll.langsc .tlcoll.other .tlcoll.othersc \
+ -in .tlcoll.both
+ grid columnconfigure .tlcoll.both 0 -weight 1
+ grid columnconfigure .tlcoll.both 1 -weight 0
+ grid columnconfigure .tlcoll.both 2 -weight 2
+ grid columnconfigure .tlcoll.both 3 -weight 0
+ grid configure .tlcoll.lang .tlcoll.other .tlcoll.langsc .tlcoll.othersc \
+ -sticky nsew
+ grid rowconfigure .tlcoll.both 1 -weight 1
+
foreach c [array names ::coll_descs] {
if [string equal -length 15 "collection-lang" $c] {
set wgt ".tlcoll.lang"
@@ -882,6 +877,7 @@
}
wm protocol .tlcoll WM_DELETE_WINDOW {.tlcoll.cancel invoke}
+ wm resizable .tlcoll 1 1
place_dlg .tlcoll .
}; # select_collections
@@ -1012,6 +1008,11 @@
pgrid [ttk::label .edsyms.warn -foreground red] \
-in .edsyms.fr0 -column 2 -columnspan 2 -sticky w
+ grid columnconfigure .edsyms.fr0 0 -weight 0
+ grid columnconfigure .edsyms.fr0 1 -weight 0
+ grid columnconfigure .edsyms.fr0 2 -weight 1
+ grid columnconfigure .edsyms.fr0 3 -weight 0
+
# ok, cancel
pack [ttk::frame .edsyms.fr1] -expand 1 -fill both
ppack [ttk::button .edsyms.ok -text [__ "Ok"] -command {
@@ -1022,6 +1023,7 @@
check_sym_entries
wm protocol .edsyms WM_DELETE_WINDOW {.edsyms.cancel invoke}
+ wm resizable .edsyms 1 0
place_dlg .edsyms .
}
}
@@ -1053,11 +1055,11 @@
pack .title -pady 10 -in .bg
pack [ttk::separator .seph0 -orient horizontal] \
- -in .bg -pady 3 -fill x -expand 1
+ -in .bg -pady 3 -fill x
# frame at bottom with install/quit buttons
pack [ttk::frame .final] \
- -in .bg -side bottom -pady [list 5 2] -fill x -expand 1
+ -in .bg -side bottom -pady [list 5 2] -fill x
ppack [ttk::button .install -text [__ "Install"] -command {
set ::menu_ans "startinst"}] -in .final -side right
ppack [ttk::button .quit -text [__ "Quit"] -command {
@@ -1070,11 +1072,11 @@
}] -in .final -side left
}
pack [ttk::separator .seph1 -orient horizontal] \
- -in .bg -side bottom -pady 3 -fill x -expand 1
+ -in .bg -side bottom -pady 3 -fill x
# directories, selections
if $::advanced {
- pack [ttk::frame .left] -in .bg -side left -fill y -expand 1
+ pack [ttk::frame .left] -in .bg -side left -fill both -expand 1
set curf .left
} else {
pack [ttk::frame .main] -in .bg -side top -fill both -expand 1
@@ -1084,7 +1086,7 @@
# labelframes do not look quite right on macos
# directory section
- pack [ttk::frame .dirf] -in $curf -fill x -expand 1
+ pack [ttk::frame .dirf] -in $curf -fill x
grid columnconfigure .dirf 1 -weight 1
set rw -1
@@ -1139,7 +1141,7 @@
# platforms section
if {$::tcl_platform(platform) ne "windows"} {
- pack [ttk::frame .platf] -in .left -fill x -expand 1
+ pack [ttk::frame .platf] -in .left -fill x
grid columnconfigure .platf 1 -weight 1
set rw -1
@@ -1165,7 +1167,7 @@
}
# Selections section
- pack [ttk::frame .selsf] -in .left -fill x -expand 1
+ pack [ttk::frame .selsf] -in .left -fill x
grid columnconfigure .selsf 1 -weight 1
set rw -1
@@ -1208,10 +1210,11 @@
if $::advanced {
pack [ttk::separator .sepv -orient vertical] \
- -in .bg -side left -padx 3 -fill y -expand 1
- pack [ttk::frame .options] -in .bg -side right -fill y -expand 1
+ -in .bg -side left -padx 3 -fill y
+ pack [ttk::frame .options] -in .bg -side right -fill both -expand 1
set curf .options
+ grid columnconfigure .options 0 -weight 1
set rw -1
incr rw
Modified: trunk/Master/tlpkg/tltcl/tltcl.tcl
===================================================================
--- trunk/Master/tlpkg/tltcl/tltcl.tcl 2018-11-24 01:23:27 UTC (rev 49239)
+++ trunk/Master/tlpkg/tltcl/tltcl.tcl 2018-11-24 20:46:16 UTC (rev 49240)
@@ -333,7 +333,6 @@
if {$wy < 0} { set wy 0}
wm geometry $wnd [format "+%d+%d" $wx $wy]
update idletasks
- wm resizable $wnd 0 0 ; # can be overruled later
wm attributes $wnd -topmost
wm state $wnd normal
raise $wnd $p
@@ -402,12 +401,29 @@
# wallpaper
pack [ttk::frame .browser.bg -padding 3] -fill both -expand 1
+
+ # ok and cancel buttons
+ pack [ttk::frame .browser.fr1] \
+ -in .browser.bg -side bottom -fill x
+ ppack [ttk::button .browser.ok -text [__ "Ok"]] \
+ -in .browser.fr1 -side right
+ ppack [ttk::button .browser.cancel -text [__ "Cancel"]] \
+ -in .browser.fr1 -side right
+ .browser.ok configure -command {
+ set ::dialog_ans [.browser.tree focus]
+ destroy .browser
+ }
+ .browser.cancel configure -command {
+ set ::dialog_ans ""
+ destroy .browser
+ }
+
## Create the tree and set it up
pack [ttk::frame .browser.fr0] -in .browser.bg -fill both -expand 1
set tree [ttk::treeview .browser.tree \
-columns {type} -displaycolumns {} -selectmode browse \
-yscroll ".browser.vsb set"]
- .browser.tree column 0 -minwidth 500 -stretch 0
+ .browser.tree column 0 -stretch 1
ttk::scrollbar .browser.vsb -orient vertical -command "$tree yview"
# hor. scrolling does not work, but toplevel and widget are resizable
$tree heading \#0 -text "/"
@@ -422,27 +438,11 @@
}
## Arrange the tree and its scrollbar in the toplevel
- # horizontal scrolling does not work.
- # possible solution: very wide treeview in smaller paned window
- # (may as well use pack in the absence of a horizontal scrollbar)
- grid $tree .browser.vsb -sticky nsew -in .browser.fr0
+ # Horizontal scrolling does not work, but resizing does.
+ grid $tree -in .browser.fr0 -row 0 -column 0 -sticky nsew
+ grid .browser.vsb -in .browser.fr0 -row 0 -column 1 -sticky ns
grid columnconfigure .browser.fr0 0 -weight 1
grid rowconfigure .browser.fr0 0 -weight 1
-
- # ok and cancel buttons
- pack [ttk::frame .browser.fr1] -in .browser.bg -fill x -expand 1
- ppack [ttk::button .browser.ok -text [__ "Ok"]] \
- -in .browser.fr1 -side right
- ppack [ttk::button .browser.cancel -text [__ "Cancel"]] \
- -in .browser.fr1 -side right
- .browser.ok configure -command {
- set ::dialog_ans [.browser.tree focus]
- destroy .browser
- }
- .browser.cancel configure -command {
- set ::dialog_ans ""
- destroy .browser
- }
unset -nocomplain ::dialog_ans
# navigate tree to $initdir
More information about the tex-live-commits
mailing list