1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-14 21:23:03 +01:00
git/lib/line.tcl
David Fries 9a483e5c09 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>
2011-07-19 15:31:24 +01:00

64 lines
1 KiB
Tcl

# 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
}
}
}