diff options
| author | David Fries <david@fries.net> | 2011-07-16 20:47:14 -0500 |
|---|---|---|
| committer | Pat Thoyts <patthoyts@users.sourceforge.net> | 2011-07-19 15:31:24 +0100 |
| commit | 9a483e5c093bc5fa364e02b7a4aeb26dde99a5e9 (patch) | |
| tree | a1864720f2020f99750edeeef9f03776e132a8bb /lib/line.tcl | |
| parent | 768e300a508d0e9e685929082a99c885ff384ffc (diff) | |
| download | git-9a483e5c093bc5fa364e02b7a4aeb26dde99a5e9.tar.xz | |
git-gui: Enable jumping to a specific line number in blame view.
This patch adds a goto control similar to the search control currently
available. The goto control permits the user to specify a line number to
jump to.
When in blame, Control-G is bound to display this control.
Signed-off-by: David Fries <David@Fries.net>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Diffstat (limited to 'lib/line.tcl')
| -rw-r--r-- | lib/line.tcl | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/lib/line.tcl b/lib/line.tcl new file mode 100644 index 0000000000..4913bdd9a8 --- /dev/null +++ b/lib/line.tcl @@ -0,0 +1,64 @@ +# goto line number +# based on code from gitk, Copyright (C) Paul Mackerras + +class linebar { + +field w +field ctext + +field linenum {} + +constructor new {i_w i_text args} { + global use_ttk NS + set w $i_w + set ctext $i_text + + ${NS}::frame $w + ${NS}::label $w.l -text [mc "Goto Line:"] + entry $w.ent -textvariable ${__this}::linenum -background lightgreen + ${NS}::button $w.bn -text [mc Go] -command [cb _incrgoto] + + pack $w.l -side left + pack $w.bn -side right + pack $w.ent -side left -expand 1 -fill x + + eval grid conf $w -sticky we $args + grid remove $w + + bind $w.ent <Return> [cb _incrgoto] + bind $w.ent <Escape> [list linebar::hide $this] + + bind $w <Destroy> [list delete_this $this] + return $this +} + +method show {} { + if {![visible $this]} { + grid $w + } + focus -force $w.ent +} + +method hide {} { + if {[visible $this]} { + focus $ctext + grid remove $w + } +} + +method visible {} { + return [winfo ismapped $w] +} + +method editor {} { + return $w.ent +} + +method _incrgoto {} { + if {$linenum ne {}} { + $ctext see $linenum.0 + hide $this + } +} + +} |
