annotate tk/bou.tcl @ 22:29cf617f49db default tip

newer CVS version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 22 Apr 2016 16:47:13 +0900
parents 1c57a78f1d98
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
1 #!/usr/local/bin/wish -f
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
2 # Program: bou
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
3 # Tcl version: 7.3 (Tcl/Tk/XF)
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
4 # Tk version: 3.6
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
5 # XF version: 2.2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
6 #
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
8 # module inclusion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
9 global env
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
10 global xfLoadPath
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
11 global xfLoadInfo
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
12 set xfLoadInfo 0
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
13 if {[info exists env(XF_LOAD_PATH)]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
14 if {[string first $env(XF_LOAD_PATH) /usr/local/lib/] == -1} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
15 set xfLoadPath $env(XF_LOAD_PATH):/usr/local/lib/
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
16 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
17 set xfLoadPath /usr/local/lib/
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
18 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
19 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
20 set xfLoadPath /usr/local/lib/
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
21 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
22
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
23 global argc
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
24 global argv
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
25 global tkVersion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
26 set tmpArgv ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
27 for {set counter 0} {$counter < $argc} {incr counter 1} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
28 case [string tolower [lindex $argv $counter]] in {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
29 {-xfloadpath} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
30 incr counter 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
31 set xfLoadPath "[lindex $argv $counter]:$xfLoadPath"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
32 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
33 {-xfstartup} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
34 incr counter 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
35 source [lindex $argv $counter]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
36 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
37 {-xfbindfile} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
38 incr counter 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
39 set env(XF_BIND_FILE) "[lindex $argv $counter]"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
40 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
41 {-xfcolorfile} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
42 incr counter 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
43 set env(XF_COLOR_FILE) "[lindex $argv $counter]"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
44 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
45 {-xfcursorfile} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
46 incr counter 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
47 set env(XF_CURSOR_FILE) "[lindex $argv $counter]"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
48 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
49 {-xffontfile} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
50 incr counter 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
51 set env(XF_FONT_FILE) "[lindex $argv $counter]"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
52 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
53 {-xfmodelmono} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
54 if {$tkVersion >= 3.0} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
55 tk colormodel . monochrome
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
56 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
57 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
58 {-xfmodelcolor} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
59 if {$tkVersion >= 3.0} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
60 tk colormodel . color
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
61 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
62 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
63 {-xfloading} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
64 set xfLoadInfo 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
65 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
66 {-xfnoloading} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
67 set xfLoadInfo 0
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
68 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
69 {default} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
70 lappend tmpArgv [lindex $argv $counter]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
71 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
72 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
73 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
74 set argv $tmpArgv
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
75 set argc [llength $tmpArgv]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
76 unset counter
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
77 unset tmpArgv
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
78
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
79
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
80 # procedure to show window .toy
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
81 proc ShowWindow.toy {args} {# xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
82
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
83 # build widget .toy
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
84 if {"[info procs XFEdit]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
85 catch "XFDestroy .toy"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
86 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
87 catch "destroy .toy"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
88 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
89 toplevel .toy \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
90 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
91 -relief {raised}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
92
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
93 # Window manager configurations
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
94 global tkVersion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
95 wm positionfrom .toy program
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
96 wm sizefrom .toy program
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
97 wm maxsize .toy 1000 1000
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
98 wm title .toy {Toy}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
99
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
100
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
101 # build widget .toy.frame1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
102 frame .toy.frame1 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
103 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
104 -borderwidth {2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
105 -height {293} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
106 -relief {raised} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
107 -width {141}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
108
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
109 # build widget .toy.frame1.label2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
110 label .toy.frame1.label2 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
111 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
112 -font {8x16} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
113 -relief {raised} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
114 -text {Green}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
115
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
116 # build widget .toy.frame1.label3
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
117 label .toy.frame1.label3 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
118 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
119 -font {8x16} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
120 -relief {raised} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
121 -text {Red}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
122
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
123 # build widget .toy.frame1.button4
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
124 button .toy.frame1.button4 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
125 -activebackground {#eed5b7} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
126 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
127 -command {event quit} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
128 -disabledforeground {#b0b0b0} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
129 -font {8x16} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
130 -relief {flat} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
131 -text { Quit }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
132
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
133 # build widget .toy.frame1.button5
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
134 button .toy.frame1.button5 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
135 -activebackground {#eed5b7} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
136 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
137 -command {event stop} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
138 -disabledforeground {#b0b0b0} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
139 -font {8x16} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
140 -text {Stop}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
141
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
142 # build widget .toy.frame1.button6
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
143 button .toy.frame1.button6 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
144 -activebackground {#eed5b7} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
145 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
146 -command {event start} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
147 -disabledforeground {#b0b0b0} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
148 -font {8x16} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
149 -text {Run}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
150
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
151 # pack widget .toy.frame1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
152 pack append .toy.frame1 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
153 .toy.frame1.label2 {top frame center fillx} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
154 .toy.frame1.label3 {top frame center fillx} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
155 .toy.frame1.button4 {bottom frame center fillx} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
156 .toy.frame1.button5 {bottom frame center fillx} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
157 .toy.frame1.button6 {bottom frame center fillx}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
158
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
159 # build widget .toy.canvas0
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
160 canvas .toy.canvas0 \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
161 -background {Cornsilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
162 -height {207} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
163 -insertofftime {600} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
164 -relief {raised} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
165 -selectbackground {#b2dfee} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
166 -selectborderwidth {1} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
167 -selectforeground {CornSilk2} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
168 -width {295}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
169
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
170 # pack widget .toy
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
171 pack append .toy \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
172 .toy.frame1 {right frame e filly} \
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
173 .toy.canvas0 {left frame center expand fill}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
174
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
175 # build canvas items .toy.canvas0
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
176
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
177
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
178
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
179 if {"[info procs XFEdit]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
180 catch "XFMiscBindWidgetTree .toy"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
181 after 2 "catch {XFEditSetShowWindows}"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
182 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
183 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
184
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
185 proc DestroyWindow.toy {} {# xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
186 if {"[info procs XFEdit]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
187 if {"[info commands .toy]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
188 global xfShowWindow.toy
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
189 set xfShowWindow.toy 0
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
190 XFEditSetPath .
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
191 after 2 "XFSaveAsProc .toy; XFEditSetShowWindows"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
192 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
193 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
194 catch "destroy .toy"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
195 update
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
196 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
197 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
198
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
199
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
200 # procedure to show window .
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
201 proc ShowWindow. {args} {# xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
202
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
203 # Window manager configurations
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
204 global tkVersion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
205 wm positionfrom . user
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
206 wm sizefrom . ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
207 wm maxsize . 1280 1024
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
208 wm title . {xf}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
209
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
210
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
211 if {"[info procs XFEdit]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
212 catch "XFMiscBindWidgetTree ."
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
213 after 2 "catch {XFEditSetShowWindows}"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
214 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
215 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
216
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
217
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
218 # User defined procedures
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
219
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
220
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
221 # Procedure: event
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
222 proc event { args} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
223 prolog "tokio:tokio_event($args)"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
224 # tokio
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
225 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
226
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
227
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
228 # Internal procedures
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
229
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
230
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
231 # Procedure: Alias
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
232 if {"[info procs Alias]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
233 proc Alias { args} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
234 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
235 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
236 # Procedure: Alias
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
237 # Description: establish an alias for a procedure
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
238 # Arguments: args - no argument means that a list of all aliases
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
239 # is returned. Otherwise the first parameter is
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
240 # the alias name, and the second parameter is
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
241 # the procedure that is aliased.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
242 # Returns: nothing, the command that is bound to the alias or a
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
243 # list of all aliases - command pairs.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
244 # Sideeffects: internalAliasList is updated, and the alias
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
245 # proc is inserted
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
246 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
247 global internalAliasList
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
248
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
249 if {[llength $args] == 0} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
250 return $internalAliasList
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
251 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
252 if {[llength $args] == 1} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
253 set xfTmpIndex [lsearch $internalAliasList "[lindex $args 0] *"]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
254 if {$xfTmpIndex != -1} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
255 return [lindex [lindex $internalAliasList $xfTmpIndex] 1]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
256 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
257 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
258 if {[llength $args] == 2} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
259 eval "proc [lindex $args 0] {args} {#xf ignore me 4
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
260 return \[eval \"[lindex $args 1] \$args\"\]}"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
261 set xfTmpIndex [lsearch $internalAliasList "[lindex $args 0] *"]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
262 if {$xfTmpIndex != -1} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
263 set internalAliasList [lreplace $internalAliasList $xfTmpIndex $xfTmpIndex "[lindex $args 0] [lindex $args 1]"]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
264 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
265 lappend internalAliasList "[lindex $args 0] [lindex $args 1]"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
266 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
267 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
268 error "Alias: wrong number or args: $args"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
269 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
270 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
271 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
272 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
273 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
274
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
275
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
276 # Procedure: GetSelection
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
277 if {"[info procs GetSelection]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
278 proc GetSelection {} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
279 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
280 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
281 # Procedure: GetSelection
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
282 # Description: get current selection
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
283 # Arguments: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
284 # Returns: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
285 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
286 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
287
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
288 # the save way
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
289 set xfSelection ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
290 catch "selection get" xfSelection
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
291 if {"$xfSelection" == "selection doesn't exist or form \"STRING\" not defined"} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
292 return ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
293 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
294 return $xfSelection
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
295 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
296 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
297 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
298
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
299
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
300 # Procedure: MenuPopupAdd
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
301 if {"[info procs MenuPopupAdd]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
302 proc MenuPopupAdd { xfW xfButton xfMenu {xfModifier ""} {xfCanvasTag ""}} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
303 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
304 # the popup menu handling is from (I already gave up with popup handling :-):
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
305 #
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
306 # Copyright 1991,1992 by James Noble.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
307 # Everyone is granted permission to copy, modify and redistribute.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
308 # This notice must be preserved on all copies or derivates.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
309 #
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
310 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
311 # Procedure: MenuPopupAdd
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
312 # Description: attach a popup menu to widget
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
313 # Arguments: xfW - the widget
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
314 # xfButton - the button we use
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
315 # xfMenu - the menu to attach
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
316 # {xfModifier} - a optional modifier
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
317 # {xfCanvasTag} - a canvas tagOrId
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
318 # Returns: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
319 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
320 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
321 global tk_popupPriv
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
322
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
323 set tk_popupPriv($xfMenu,focus) ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
324 set tk_popupPriv($xfMenu,grab) ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
325 if {"$xfModifier" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
326 set press "$xfModifier-"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
327 set motion "$xfModifier-"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
328 set release "Any-"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
329 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
330 set press ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
331 set motion ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
332 set release ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
333 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
334
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
335 bind $xfMenu "<${motion}B${xfButton}-Motion>" "MenuPopupMotion $xfMenu %W %X %Y"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
336 bind $xfMenu "<${release}ButtonRelease-${xfButton}>" "MenuPopupRelease $xfMenu %W"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
337 if {"$xfCanvasTag" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
338 bind $xfW "<${press}ButtonPress-${xfButton}>" "MenuPopupPost $xfMenu %X %Y"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
339 bind $xfW "<${release}ButtonRelease-${xfButton}>" "MenuPopupRelease $xfMenu %W"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
340 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
341 $xfW bind $xfCanvasTag "<${press}ButtonPress-${xfButton}>" "MenuPopupPost $xfMenu %X %Y"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
342 $xfW bind $xfCanvasTag "<${release}ButtonRelease-${xfButton}>" "MenuPopupRelease $xfMenu %W"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
343 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
344 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
345 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
346
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
347
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
348 # Procedure: MenuPopupMotion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
349 if {"[info procs MenuPopupMotion]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
350 proc MenuPopupMotion { xfMenu xfW xfX xfY} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
351 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
352 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
353 # Procedure: MenuPopupMotion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
354 # Description: handle the popup menu motion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
355 # Arguments: xfMenu - the topmost menu
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
356 # xfW - the menu
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
357 # xfX - the root x coordinate
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
358 # xfY - the root x coordinate
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
359 # Returns: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
360 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
361 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
362 global tk_popupPriv
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
363
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
364 if {"[info commands $xfW]" != "" && [winfo ismapped $xfW] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
365 "[winfo class $xfW]" == "Menu" &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
366 [info exists tk_popupPriv($xfMenu,focus)] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
367 "$tk_popupPriv($xfMenu,focus)" != "" &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
368 [info exists tk_popupPriv($xfMenu,grab)] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
369 "$tk_popupPriv($xfMenu,grab)" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
370 set xfPopMinX [winfo rootx $xfW]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
371 set xfPopMaxX [expr $xfPopMinX+[winfo width $xfW]]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
372 if {$xfX >= $xfPopMinX && $xfX <= $xfPopMaxX} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
373 $xfW activate @[expr $xfY-[winfo rooty $xfW]]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
374 if {![catch "$xfW entryconfig @[expr $xfY-[winfo rooty $xfW]] -menu" result]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
375 if {"[lindex $result 4]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
376 foreach binding [bind $xfMenu] {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
377 bind [lindex $result 4] $binding [bind $xfMenu $binding]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
378 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
379 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
380 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
381 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
382 $xfW activate none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
383 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
384 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
385 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
386 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
387
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
388
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
389 # Procedure: MenuPopupPost
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
390 if {"[info procs MenuPopupPost]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
391 proc MenuPopupPost { xfMenu xfX xfY} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
392 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
393 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
394 # Procedure: MenuPopupPost
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
395 # Description: post the popup menu
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
396 # Arguments: xfMenu - the menu
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
397 # xfX - the root x coordinate
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
398 # xfY - the root x coordinate
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
399 # Returns: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
400 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
401 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
402 global tk_popupPriv
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
403
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
404 if {"[info commands $xfMenu]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
405 if {![info exists tk_popupPriv($xfMenu,focus)]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
406 set tk_popupPriv($xfMenu,focus) [focus]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
407 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
408 if {"$tk_popupPriv($xfMenu,focus)" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
409 set tk_popupPriv($xfMenu,focus) [focus]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
410 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
411 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
412 set tk_popupPriv($xfMenu,grab) $xfMenu
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
413
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
414 catch "$xfMenu activate none"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
415 catch "$xfMenu post $xfX $xfY"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
416 catch "focus $xfMenu"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
417 catch "grab -global $xfMenu"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
418 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
419 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
420 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
421
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
422
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
423 # Procedure: MenuPopupRelease
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
424 if {"[info procs MenuPopupRelease]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
425 proc MenuPopupRelease { xfMenu xfW} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
426 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
427 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
428 # Procedure: MenuPopupRelease
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
429 # Description: remove the popup menu
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
430 # Arguments: xfMenu - the topmost menu widget
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
431 # xfW - the menu widget
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
432 # Returns: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
433 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
434 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
435 global tk_popupPriv
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
436 global tkVersion
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
437
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
438 if {"[info commands $xfW]" != "" && [winfo ismapped $xfW] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
439 "[winfo class $xfW]" == "Menu" &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
440 [info exists tk_popupPriv($xfMenu,focus)] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
441 "$tk_popupPriv($xfMenu,focus)" != "" &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
442 [info exists tk_popupPriv($xfMenu,grab)] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
443 "$tk_popupPriv($xfMenu,grab)" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
444 if {$tkVersion >= 3.0} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
445 catch "grab release $tk_popupPriv($xfMenu,grab)"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
446 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
447 catch "grab none"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
448 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
449 catch "focus $tk_popupPriv($xfMenu,focus)"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
450 set tk_popupPriv($xfMenu,focus) ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
451 set tk_popupPriv($xfMenu,grab) ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
452 if {"[$xfW index active]" != "none"} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
453 $xfW invoke active; catch "$xfMenu unpost"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
454 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
455 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
456 catch "$xfMenu unpost"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
457 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
458 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
459
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
460
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
461 # Procedure: NoFunction
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
462 if {"[info procs NoFunction]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
463 proc NoFunction { args} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
464 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
465 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
466 # Procedure: NoFunction
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
467 # Description: do nothing (especially with scales and scrollbars)
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
468 # Arguments: args - a number of ignored parameters
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
469 # Returns: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
470 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
471 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
472 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
473 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
474
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
475
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
476 # Procedure: SN
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
477 if {"[info procs SN]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
478 proc SN { {xfName ""}} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
479 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
480 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
481 # Procedure: SN
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
482 # Description: map a symbolic name to the widget path
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
483 # Arguments: xfName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
484 # Returns: the symbolic name
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
485 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
486 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
487
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
488 SymbolicName $xfName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
489 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
490 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
491
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
492
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
493 # Procedure: SymbolicName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
494 if {"[info procs SymbolicName]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
495 proc SymbolicName { {xfName ""}} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
496 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
497 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
498 # Procedure: SymbolicName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
499 # Description: map a symbolic name to the widget path
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
500 # Arguments: xfName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
501 # Returns: the symbolic name
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
502 # Sideeffects: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
503 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
504
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
505 global symbolicName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
506
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
507 if {"$xfName" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
508 set xfArrayName ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
509 append xfArrayName symbolicName ( $xfName )
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
510 if {![catch "set \"$xfArrayName\"" xfValue]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
511 return $xfValue
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
512 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
513 if {"[info commands XFProcError]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
514 XFProcError "Unknown symbolic name:\n$xfName"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
515 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
516 puts stderr "XF error: unknown symbolic name:\n$xfName"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
517 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
518 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
519 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
520 return ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
521 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
522 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
523
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
524
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
525 # Procedure: Unalias
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
526 if {"[info procs Unalias]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
527 proc Unalias { aliasName} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
528 # xf ignore me 7
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
529 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
530 # Procedure: Unalias
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
531 # Description: remove an alias for a procedure
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
532 # Arguments: aliasName - the alias name to remove
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
533 # Returns: none
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
534 # Sideeffects: internalAliasList is updated, and the alias
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
535 # proc is removed
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
536 ##########
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
537 global internalAliasList
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
538
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
539 set xfIndex [lsearch $internalAliasList "$aliasName *"]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
540 if {$xfIndex != -1} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
541 rename $aliasName ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
542 set internalAliasList [lreplace $internalAliasList $xfIndex $xfIndex]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
543 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
544 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
545 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
546
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
547
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
548
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
549 # application parsing procedure
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
550 proc XFLocalParseAppDefs {xfAppDefFile} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
551 global xfAppDefaults
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
552
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
553 # basically from: Michael Moore
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
554 if {[file exists $xfAppDefFile] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
555 [file readable $xfAppDefFile] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
556 "[file type $xfAppDefFile]" == "link"} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
557 catch "file type $xfAppDefFile" xfType
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
558 while {"$xfType" == "link"} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
559 if {[catch "file readlink $xfAppDefFile" xfAppDefFile]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
560 return
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
561 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
562 catch "file type $xfAppDefFile" xfType
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
563 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
564 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
565 if {!("$xfAppDefFile" != "" &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
566 [file exists $xfAppDefFile] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
567 [file readable $xfAppDefFile] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
568 "[file type $xfAppDefFile]" == "file")} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
569 return
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
570 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
571 if {![catch "open $xfAppDefFile r" xfResult]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
572 set xfAppFileContents [read $xfResult]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
573 close $xfResult
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
574 foreach line [split $xfAppFileContents "\n"] {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
575 # backup indicates how far to backup. It applies to the
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
576 # situation where a resource name ends in . and when it
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
577 # ends in *. In the second case you want to keep the *
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
578 # in the widget name for pattern matching, but you want
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
579 # to get rid of the . if it is the end of the name.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
580 set backup -2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
581 set line [string trim $line]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
582 if {[string index $line 0] == "#" || "$line" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
583 # skip comments and empty lines
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
584 continue
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
585 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
586 set list [split $line ":"]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
587 set resource [string trim [lindex $list 0]]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
588 set i [string last "." $resource]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
589 set j [string last "*" $resource]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
590 if {$j > $i} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
591 set i $j
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
592 set backup -1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
593 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
594 incr i
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
595 set name [string range $resource $i end]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
596 incr i $backup
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
597 set widname [string range $resource 0 $i]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
598 set value [string trim [lindex $list 1]]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
599 if {"$widname" != "" && "$widname" != "*"} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
600 # insert the widget and resourcename to the application
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
601 # defaults list.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
602 if {![info exists xfAppDefaults]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
603 set xfAppDefaults ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
604 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
605 lappend xfAppDefaults [list $widname [string tolower $name] $value]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
606 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
607 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
608 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
609 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
610
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
611 # application loading procedure
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
612 proc XFLocalLoadAppDefs {{xfClasses ""} {xfPriority "startupFile"} {xfAppDefFile ""}} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
613 global env
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
614
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
615 if {"$xfAppDefFile" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
616 set xfFileList ""
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
617 if {[info exists env(XUSERFILESEARCHPATH)]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
618 append xfFileList [split $env(XUSERFILESEARCHPATH) :]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
619 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
620 if {[info exists env(XAPPLRESDIR)]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
621 append xfFileList [split $env(XAPPLRESDIR) :]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
622 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
623 if {[info exists env(XFILESEARCHPATH)]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
624 append xfFileList [split $env(XFILESEARCHPATH) :]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
625 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
626 append xfFileList " /usr/lib/X11/app-defaults"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
627 append xfFileList " /usr/X11/lib/X11/app-defaults"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
628
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
629 foreach xfCounter1 $xfClasses {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
630 foreach xfCounter2 $xfFileList {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
631 set xfPathName $xfCounter2
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
632 if {[regsub -all "%N" "$xfPathName" "$xfCounter1" xfResult]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
633 set xfPathName $xfResult
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
634 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
635 if {[regsub -all "%T" "$xfPathName" "app-defaults" xfResult]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
636 set xfPathName $xfResult
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
637 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
638 if {[regsub -all "%S" "$xfPathName" "" xfResult]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
639 set xfPathName $xfResult
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
640 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
641 if {[regsub -all "%C" "$xfPathName" "" xfResult]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
642 set xfPathName $xfResult
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
643 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
644 if {[file exists $xfPathName] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
645 [file readable $xfPathName] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
646 ("[file type $xfPathName]" == "file" ||
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
647 "[file type $xfPathName]" == "link")} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
648 catch "option readfile $xfPathName $xfPriority"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
649 if {"[info commands XFParseAppDefs]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
650 XFParseAppDefs $xfPathName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
651 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
652 if {"[info commands XFLocalParseAppDefs]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
653 XFLocalParseAppDefs $xfPathName
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
654 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
655 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
656 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
657 if {[file exists $xfCounter2/$xfCounter1] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
658 [file readable $xfCounter2/$xfCounter1] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
659 ("[file type $xfCounter2/$xfCounter1]" == "file" ||
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
660 "[file type $xfCounter2/$xfCounter1]" == "link")} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
661 catch "option readfile $xfCounter2/$xfCounter1 $xfPriority"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
662 if {"[info commands XFParseAppDefs]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
663 XFParseAppDefs $xfCounter2/$xfCounter1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
664 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
665 if {"[info commands XFLocalParseAppDefs]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
666 XFLocalParseAppDefs $xfCounter2/$xfCounter1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
667 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
668 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
669 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
670 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
671 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
672 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
673 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
674 # load a specific application defaults file
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
675 if {[file exists $xfAppDefFile] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
676 [file readable $xfAppDefFile] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
677 ("[file type $xfAppDefFile]" == "file" ||
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
678 "[file type $xfAppDefFile]" == "link")} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
679 catch "option readfile $xfAppDefFile $xfPriority"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
680 if {"[info commands XFParseAppDefs]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
681 XFParseAppDefs $xfAppDefFile
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
682 } {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
683 if {"[info commands XFLocalParseAppDefs]" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
684 XFLocalParseAppDefs $xfAppDefFile
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
685 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
686 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
687 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
688 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
689 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
690
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
691 # application setting procedure
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
692 proc XFLocalSetAppDefs {{xfWidgetPath "."}} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
693 global xfAppDefaults
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
694
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
695 if {![info exists xfAppDefaults]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
696 return
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
697 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
698 foreach xfCounter $xfAppDefaults {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
699 if {"$xfCounter" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
700 break
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
701 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
702 set widname [lindex $xfCounter 0]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
703 if {[string match $widname ${xfWidgetPath}] ||
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
704 [string match "${xfWidgetPath}*" $widname]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
705 set name [string tolower [lindex $xfCounter 1]]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
706 set value [lindex $xfCounter 2]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
707 # Now lets see how many tcl commands match the name
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
708 # pattern specified.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
709 set widlist [info command $widname]
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
710 if {"$widlist" != ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
711 foreach widget $widlist {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
712 # make sure this command is a widget.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
713 if {![catch "winfo id $widget"] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
714 [string match "${xfWidgetPath}*" $widget]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
715 catch "$widget configure -$name $value"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
716 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
717 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
718 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
719 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
720 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
721 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
722
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
723
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
724 # prepare auto loading
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
725 global auto_path
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
726 global tk_library
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
727 global xfLoadPath
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
728 foreach xfElement [eval list [split $xfLoadPath :] $auto_path] {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
729 if {[file exists $xfElement/tclIndex]} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
730 lappend auto_path $xfElement
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
731 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
732 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
733 catch "unset auto_index"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
734
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
735 catch "unset auto_oldpath"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
736
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
737 catch "unset auto_execs"
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
738
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
739
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
740 # initialize global variables
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
741 proc InitGlobals {} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
742 global {now}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
743 set {now} {}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
744
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
745 # please don't modify the following
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
746 # variables. They are needed by xf.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
747 global {autoLoadList}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
748 set {autoLoadList(bou.tcl)} {0}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
749 set {autoLoadList(main.tcl)} {0}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
750 global {internalAliasList}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
751 set {internalAliasList} {}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
752 global {moduleList}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
753 set {moduleList(bou.tcl)} {}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
754 global {preloadList}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
755 set {preloadList(xfInternal)} {}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
756 global {symbolicName}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
757 set {symbolicName(c)} {.canvas0}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
758 set {symbolicName(green)} {.frame1.label2}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
759 set {symbolicName(quit)} {.frame1.button4}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
760 set {symbolicName(red)} {.frame1.label3}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
761 set {symbolicName(root)} {.}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
762 set {symbolicName(run)} {.frame1.button6}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
763 set {symbolicName(stop)} {.frame1.button5}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
764 global {xfWmSetPosition}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
765 set {xfWmSetPosition} {}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
766 global {xfWmSetSize}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
767 set {xfWmSetSize} {}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
768 global {xfAppDefToplevels}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
769 set {xfAppDefToplevels} {}
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
770 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
771
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
772 # initialize global variables
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
773 InitGlobals
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
774
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
775 # display/remove toplevel windows.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
776 ShowWindow.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
777
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
778 global xfShowWindow.toy
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
779 set xfShowWindow.toy 1
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
780 ShowWindow.toy
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
781
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
782 # load default bindings.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
783 if {[info exists env(XF_BIND_FILE)] &&
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
784 "[info procs XFShowHelp]" == ""} {
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
785 source $env(XF_BIND_FILE)
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
786 }
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
787
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
788 # parse and apply application defaults.
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
789 XFLocalLoadAppDefs Bou
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
790 XFLocalSetAppDefs
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
791
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
792 # eof
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
793 #
1c57a78f1d98 Initial revision
kono
parents:
diff changeset
794