summaryrefslogtreecommitdiff
path: root/support/tcltexed/lib/help.tcl
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/tcltexed/lib/help.tcl
Initial commit
Diffstat (limited to 'support/tcltexed/lib/help.tcl')
-rw-r--r--support/tcltexed/lib/help.tcl185
1 files changed, 185 insertions, 0 deletions
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