Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/gitk
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2005-05-16 03:19:18 +0400
committerPaul Mackerras <paulus@samba.org>2005-05-16 03:19:18 +0400
commit43bddeb43d86c2a8093aed0217137afd27eb821b (patch)
tree4a21d71ed4e9b1dfb316568c9e74e377f4434cc2 /gitk
parente47120cb9390a32e3e52f39fb53373d1288c04b8 (diff)
Resize the panes in the paned windows (commit list and details)
to keep the proportionality of the pane widths as the overall window is resized.
Diffstat (limited to 'gitk')
-rwxr-xr-xgitk58
1 files changed, 56 insertions, 2 deletions
diff --git a/gitk b/gitk
index 5ac69ed76c..3166aa195d 100755
--- a/gitk
+++ b/gitk
@@ -7,7 +7,7 @@ exec wish "$0" -- "${1+$@}"
# and distributed under the terms of the GNU General Public Licence,
# either version 2, or (at your option) any later version.
-# CVS $Revision: 1.11 $
+# CVS $Revision: 1.12 $
proc getcommits {rargs} {
global commits commfd phase canv mainfont
@@ -155,6 +155,7 @@ proc makewindow {} {
canvas $canv3 -height $height -width [expr 15 * $charspc] \
-bg white -bd 0 -yscrollincr $linespc
.ctop.top.clist add $canv3
+ bind .ctop.top.clist <Configure> {resizeclistpanes %W %w}
set sha1entry .ctop.top.bar.sha1
label .ctop.top.bar.sha1label -text "SHA1 ID: "
@@ -185,6 +186,7 @@ proc makewindow {} {
pack .ctop.cdet.left.sb -side right -fill y
pack $ctext -side left -fill both -expand 1
.ctop.cdet add .ctop.cdet.left
+ bind .ctop.cdet <Configure> {resizecdetpanes %W %w}
$ctext tag conf filesep -font [concat $textfont bold]
$ctext tag conf hunksep -back blue -fore white
@@ -232,6 +234,58 @@ proc makewindow {} {
bind $cflist <<ListboxSelect>> listboxsel
}
+proc resizeclistpanes {win w} {
+ global oldwidth
+ if [info exists oldwidth($win)] {
+ set s0 [$win sash coord 0]
+ set s1 [$win sash coord 1]
+ if {$w < 60} {
+ set sash0 [expr {int($w/2 - 2)}]
+ set sash1 [expr {int($w*5/6 - 2)}]
+ } else {
+ set factor [expr {1.0 * $w / $oldwidth($win)}]
+ set sash0 [expr {int($factor * [lindex $s0 0])}]
+ set sash1 [expr {int($factor * [lindex $s1 0])}]
+ if {$sash0 < 30} {
+ set sash0 30
+ }
+ if {$sash1 < $sash0 + 20} {
+ set sash1 [expr $sash0 + 20]
+ }
+ if {$sash1 > $w - 10} {
+ set sash1 [expr $w - 10]
+ if {$sash0 > $sash1 - 20} {
+ set sash0 [expr $sash1 - 20]
+ }
+ }
+ }
+ $win sash place 0 $sash0 [lindex $s0 1]
+ $win sash place 1 $sash1 [lindex $s1 1]
+ }
+ set oldwidth($win) $w
+}
+
+proc resizecdetpanes {win w} {
+ global oldwidth
+ if [info exists oldwidth($win)] {
+ set s0 [$win sash coord 0]
+ if {$w < 60} {
+ set sash0 [expr {int($w*3/4 - 2)}]
+ } else {
+ set factor [expr {1.0 * $w / $oldwidth($win)}]
+ set sash0 [expr {int($factor * [lindex $s0 0])}]
+ if {$sash0 < 45} {
+ set sash0 45
+ }
+ if {$sash0 > $w - 15} {
+ set sash0 [expr $w - 15]
+ }
+ }
+ $win sash place 0 $sash0 [lindex $s0 1]
+ }
+ set oldwidth($win) $w
+}
+
proc allcanvs args {
global canv canv2 canv3
eval $canv $args
@@ -261,7 +315,7 @@ Copyright © 2005 Paul Mackerras
Use and redistribute under the terms of the GNU General Public License
-(CVS $Revision: 1.11 $)} \
+(CVS $Revision: 1.12 $)} \
-justify center -aspect 400
pack $w.m -side top -fill x -padx 20 -pady 20
button $w.ok -text Close -command "destroy $w"