From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- support/tcltexed/lib/help.tcl | 185 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 support/tcltexed/lib/help.tcl (limited to 'support/tcltexed/lib/help.tcl') diff --git a/support/tcltexed/lib/help.tcl b/support/tcltexed/lib/help.tcl new file mode 100644 index 0000000000..623c034b0d --- /dev/null +++ b/support/tcltexed/lib/help.tcl @@ -0,0 +1,185 @@ +# Copyright (C) 1999 - Martin Strauss - under terms of GPL +##################################################### +# show help +# ok ! +proc Help {NAME} { + global T HLP + global hlppath hlptxt hlpfile + if [info exists HLP($NAME)] { + + # Liste vorhandener Hilfen + set ii 0 + foreach i $HLP($NAME) { + if [string match "$T(language)*" $i] { + incr ii + lappend liste $i "$T(language) $ii" + } + } + foreach i $HLP($NAME) { + if ![string match "$T(language)*" $i] { + incr ii + lappend liste $i "[lindex [split $i "/"] 0] $ii" + } + } + HLP_open $NAME [lindex $liste 0] [lindex $liste 1] + if [winfo exists .whelp] { + .whelp.f2.mb.m delete 0 end + foreach {i t} $liste { + .whelp.f2.mb.m add command -label $t -command "HLP_open $NAME $i {$t}" + } + .whelp.f2.e delete 0 end + .whelp.f2.e insert 0 $NAME + } + } + HLP_gif $NAME +} +############################################### +# help from inside a text +# ok ! +proc HelpTo {NAME} { + global T HLP + set flag 1 + set key [$NAME get insert insert+1c] + if ![string compare $key "\\"] then { + set strt insert+1c + } else { + set strt insert + } + set ID [array startsearch HLP] + while {[array anymore HLP $ID]} { + set elm [array nextelement HLP $ID] + set velm [$NAME get $strt insert+[expr [string length $elm] + 1]c] + if ![string compare $elm $velm] then { + Help $elm + set flag 0 + } + } + array donesearch HLP $ID + if $flag then { + Help $T(Helpto-Help) + } +} +########################## +########################## +proc HLP_load {} { + global hlppath HLP + if [file exists $hlppath/index] { + set f [open $hlppath/index r] + set L [read $f] + close $f + array set HLP $L + } {set HLP(ERROR) ERROR} +} +proc HLP_open {NAME FILE Text} { + global T hlppath hlptxt hlpfile + if ![winfo exists .whelp] {set hlpfile ""} + if {[string compare $FILE $hlpfile] != 0} { + if [file exists "$hlppath/$FILE"] then { + set f [open "$hlppath/$FILE" r] + HLP_plainwindow + .whelp.f2.mb configure -text $Text + .whelp.f.l configure -state normal + .whelp.f.l delete 1.0 end + .whelp.f.l insert 1.0 [read $f] + .whelp.f.l configure -state disabled + close $f + set hlpfile $FILE + set pos [.whelp.f.l search "::" 1.0 end] + while {$pos!=""} { + .whelp.f.l tag add invisible $pos "$pos lineend" + set pos [.whelp.f.l search "::" "$pos+1c" end] + } + set ksp "::" + set ksp [.whelp.f.l search -- $ksp$NAME$ksp pos] + if {$ksp != ""} then { + .whelp.f.l mark set pos $ksp + .whelp.f.l see pos + } + focus .whelp + } { + if [winfo exists .whelp] then { + .whelp.f.l configure -state normal + .whelp.f.l delete 1.0 end + eval ".whelp.f.l insert 1.0 \"$T(whelp-no-source)\"" + .whelp.f.l configure -state disabled + } + } + } +} +proc HLP_plainwindow {} { + global T + if ![winfo exists .whelp] then { + toplevel .whelp + wm title .whelp $T(whelp-titel) + + frame .whelp.f + + scrollbar .whelp.f.vscroll -relief sunken -command {.whelp.f.l yview} + text .whelp.f.l -yscroll {.whelp.f.vscroll set} + pack .whelp.f.vscroll -side right -fill y + pack .whelp.f.l -expand yes -fill both + frame .whelp.f2 + menubutton .whelp.f2.mb -menu .whelp.f2.mb.m + menu .whelp.f2.mb.m + button .whelp.f2.butup -text up -command { + .whelp.f.l tag remove show 1.0 end + set ksp [.whelp.f.l search -backwards -- [.whelp.f2.e get] pos] + if {$ksp != ""} then { + .whelp.f.l mark set pos $ksp + .whelp.f.l see pos + .whelp.f.l tag add show pos "pos wordend" + } + } + button .whelp.f2.butdown -text down -command { + .whelp.f.l tag remove show 1.0 end + set ksp [.whelp.f.l search -- [.whelp.f2.e get] pos+1c] + if {$ksp != ""} then { + .whelp.f.l mark set pos $ksp + .whelp.f.l see pos + .whelp.f.l tag add show pos "pos wordend" + } + } + entry .whelp.f2.e + button .whelp.f2.butQ -text $T(quit) -command { + destroy .whelp + } + + pack .whelp.f -expand yes -fill y + pack .whelp.f2.mb .whelp.f2.butup .whelp.f2.butdown .whelp.f2.e .whelp.f2.butQ -side left + pack .whelp.f2 + COLOR .whelp + .whelp.f.l tag add invisible 1.0 1.0 + .whelp.f.l tag add show 1.0 1.0 + .whelp.f.l tag configure invisible -foreground [.whelp.f.l cget -bg] + .whelp.f.l tag configure show -foreground Red + .whelp.f.l tag raise invisible + .whelp.f.l mark set pos 1.0 + } +} +proc HLP_gif Name { + global gifpath I_txt + if [info exists I_txt($Name)] { + if [file exists "$gifpath/$I_txt($Name).gif"] then { + if ![winfo exists .whelpgif] then { + toplevel .whelpgif + + button .whelpgif.butQ -image [Bild $Name] -command { + destroy .whelpgif + } + pack .whelpgif.butQ + COLOR .whelpgif + } else { + .whelpgif.butQ configure -image [Bild $Name] + focus .whelpgif + } + } { + if [winfo exists .whelpgif] then { + .whelpgif.butQ configure -image MasterBildSlaveOff + } + } + } { + if [winfo exists .whelpgif] then { + .whelpgif.butQ configure -image MasterBildSlaveOff + } + } +} \ No newline at end of file -- cgit v1.2.3