Spaces:
Runtime error
Runtime error
| # 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:"] | |
| tentry $w.ent \ | |
| -textvariable ${__this}::linenum \ | |
| -background lightgreen \ | |
| -validate key \ | |
| -validatecommand [cb _validate %P] | |
| ${NS}::button $w.bn -text [mc Go] -command [cb _goto] | |
| 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 | |
| trace add variable linenum write [cb _goto_cb] | |
| bind $w.ent <Return> [cb _goto] | |
| bind $w.ent <Escape> [cb hide] | |
| 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]} { | |
| $w.ent delete 0 end | |
| focus $ctext | |
| grid remove $w | |
| } | |
| } | |
| method visible {} { | |
| return [winfo ismapped $w] | |
| } | |
| method editor {} { | |
| return $w.ent | |
| } | |
| method _validate {P} { | |
| # only accept numbers as input | |
| string is integer $P | |
| } | |
| method _goto_cb {name ix op} { | |
| after idle [cb _goto 1] | |
| } | |
| method _goto {{nohide {0}}} { | |
| if {$linenum ne {}} { | |
| $ctext see $linenum.0 | |
| if {!$nohide} { | |
| hide $this | |
| } | |
| } | |
| } | |
| } | |