1 # @(#)init.tcl 8.10 (Berkeley) 7/19/96
6 # Build menubar with File, Options and Help entries.
7 frame .
menu -relief raised
-borderwidth 1
8 pack append . .
menu {top fillx
}
11 menubutton .
menu.
file -text "File" \
12 -menu .
menu.
file.fileops
-underline 0
13 menu .
menu.
file.fileops
14 .
menu.
file.fileops add command
-label "Edit ..." \
15 -command "tk_edit" -underline 0
16 .
menu.
file.fileops add command
-label "Save File" \
17 -command "tk_write" -underline 0
18 .
menu.
file.fileops add command
-label "Save File as ..." \
19 -command "tk_writeas" -underline 1
20 .
menu.
file.fileops add command
-label "Save and Quit" \
21 -command "tk_writequit" -underline 7
22 .
menu.
file.fileops add command
-label "Quit" \
23 -command "tk_quit" -underline 0
25 # Options pull-down menu
26 menubutton .
menu.
option -text "Options" \
27 -menu .
menu.
option.optionops
-underline 0
28 menu .
menu.
option.optionops
29 .
menu.
option.optionops add command
-label "Set all" \
30 -command tk_options
-underline 0
33 menubutton .
menu.help
-text "Help" \
34 -menu .
menu.help.helpops
-underline 0
35 menu .
menu.help.helpops
36 .
menu.help.helpops add command
-label "On Help" -underline 3 \
38 .
menu.help.helpops add command
-label "On Version" -underline 3 \
42 .
menu.
file {left
} .
menu.
option {left
} .
menu.help
{right
}
44 # Set up for keyboard-based menu traversal
46 bind .
<Any-Enter
> {focus .
}
48 tk_menuBar .
menu .
menu.
file .
menu.help
51 text .t
-relief raised
-bd 1 -setgrid true
-yscrollcommand ".s set"
52 scrollbar .s
-relief flat
-command ".t yview"
53 pack append . .s
{right filly
} .t
{expand fill
}
55 # Use tags to build a cursor for the text window.
56 set bg
[lindex [.t config
-background] 4]
57 set fg
[lindex [.t config
-foreground] 4]
58 .t tag configure tk_cursor
-background $fg -foreground $bg
59 .t mark
set tk_cursor_indx insert
60 .t tag add tk_cursor tk_cursor_indx
63 bind .t
<Any-KeyPress
> {tk_flash
; break}
64 bind .t
0 {tk_key_enter
"0"; break}
65 bind .t
1 {tk_key_enter
"1"; break}
66 bind .t
2 {tk_key_enter
"2"; break}
67 bind .t
3 {tk_key_enter
"3"; break}
68 bind .t
4 {tk_key_enter
"4"; break}
69 bind .t
5 {tk_key_enter
"5"; break}
70 bind .t
6 {tk_key_enter
"6"; break}
71 bind .t
7 {tk_key_enter
"7"; break}
72 bind .t
8 {tk_key_enter
"8"; break}
73 bind .t
9 {tk_key_enter
"9"; break}
74 bind .t
<BackSpace
> {tk_key_enter
"\010"; break}
75 bind .t
<Control-a
> {tk_key_enter
"\001"; break}
76 bind .t
<Control-b
> {tk_key_enter
"\002"; break}
77 bind .t
<Control-c
> {tk_key_enter
"\003"; break}
78 bind .t
<Control-d
> {tk_key_enter
"\004"; break}
79 bind .t
<Control-e
> {tk_key_enter
"\005"; break}
80 bind .t
<Control-f
> {tk_key_enter
"\006"; break}
81 bind .t
<Control-g
> {tk_key_enter
"\007"; break}
82 bind .t
<Control-h
> {tk_key_enter
"\010"; break}
83 bind .t
<Control-i
> {tk_key_enter
"\011"; break}
84 bind .t
<Control-j
> {tk_key_enter
"\012"; break}
85 bind .t
<Control-k
> {tk_key_enter
"\013"; break}
86 bind .t
<Control-l
> {tk_key_enter
"\014"; break}
87 bind .t
<Control-m
> {tk_key_enter
"\015"; break}
88 bind .t
<Control-n
> {tk_key_enter
"\016"; break}
89 bind .t
<Control-o
> {tk_key_enter
"\017"; break}
90 bind .t
<Control-p
> {tk_key_enter
"\020"; break}
91 bind .t
<Control-q
> {tk_key_enter
"\021"; break}
92 bind .t
<Control-r
> {tk_key_enter
"\022"; break}
93 bind .t
<Control-s
> {tk_key_enter
"\023"; break}
94 bind .t
<Control-t
> {tk_key_enter
"\024"; break}
95 bind .t
<Control-u
> {tk_key_enter
"\025"; break}
96 bind .t
<Control-v
> {tk_key_enter
"\026"; break}
97 bind .t
<Control-w
> {tk_key_enter
"\027"; break}
98 bind .t
<Control-x
> {tk_key_enter
"\030"; break}
99 bind .t
<Control-y
> {tk_key_enter
"\031"; break}
100 bind .t
<Control-z
> {tk_key_enter
"\032"; break}
101 bind .t
<Control_L
> {tk_noop
; break}
102 bind .t
<Control_R
> {tk_noop
; break}
103 bind .t
<Delete
> {tk_key_enter
"x"; break}
104 bind .t
<Down
> {tk_key_enter
"j"; break}
105 bind .t
<End
> {tk_key_enter
"G"; break}
106 bind .t
<Escape
> {tk_key_enter
"\033"; break}
107 bind .t
<Home
> {tk_key_enter
"1G"; break}
108 bind .t
<Insert
> {tk_key_enter
"i"; break}
109 bind .t
<Left
> {tk_key_enter
"h"; break}
110 bind .t
<Next
> {tk_key_enter
"\006"; break}
111 bind .t
<Prior
> {tk_key_enter
"\002"; break}
112 bind .t
<Return
> {tk_key_enter
"\015"; break}
113 bind .t
<Right
> {tk_key_enter
"l"; break}
114 bind .t
<Shift_L
> {tk_noop
; break}
115 bind .t
<Shift_Lock
> {tk_noop
; break}
116 bind .t
<Shift_R
> {tk_noop
; break}
117 bind .t
<Tab
> {tk_key_enter
"\011"; break}
118 bind .t
<Up
> {tk_key_enter
"k"; break}
119 bind .t
<ampersand
> {tk_key_enter
"&"; break}
120 bind .t
<asciicircum
> {tk_key_enter
"^"; break}
121 bind .t
<asciitilde
> {tk_key_enter
"~"; break}
122 bind .t
<asterisk
> {tk_key_enter
"*"; break}
123 bind .t
<at
> {tk_key_enter
"@"; break}
124 bind .t
<backslash
> {tk_key_enter
"\\"; break}
125 bind .t
<bar
> {tk_key_enter
"|"; break}
126 bind .t
<braceleft
> {tk_key_enter
"{"; break}
127 bind .t
<braceright
> {tk_key_enter
"; break}"}
128 bind .t
<bracketleft
> {tk_key_enter
"\["; break}
129 bind .t
<bracketright
> {tk_key_enter
"]"; break}
130 bind .t
<colon
> {tk_key_enter
":"; break}
131 bind .t
<comma
> {tk_key_enter
","; break}
132 bind .t
<dollar
> {tk_key_enter
"$"; break}
133 bind .t
<equal
> {tk_key_enter
"="; break}
134 bind .t
<exclam
> {tk_key_enter
"!"; break}
135 bind .t
<greater
> {tk_key_enter
">"; break}
136 bind .t
<less
> {tk_key_enter
"<"; break}
137 bind .t
<minus
> {tk_key_enter
"-"; break}
138 bind .t
<numbersign
> {tk_key_enter
"#"; break}
139 bind .t
<parenleft
> {tk_key_enter
"("; break}
140 bind .t
<parenright
> {tk_key_enter
")"; break}
141 bind .t
<percent
> {tk_key_enter
"%"; break}
142 bind .t
<period
> {tk_key_enter
"."; break}
143 bind .t
<plus
> {tk_key_enter
"+"; break}
144 bind .t
<question
> {tk_key_enter
"?"; break}
145 bind .t
<quotedbl
> {tk_key_enter
"\""; break}
146 bind .t
<quoteright
> {tk_key_enter
"'"; break}
147 bind .t
<semicolon
> {tk_key_enter
";"; break}
148 bind .t
<slash
> {tk_key_enter
"/"; break}
149 bind .t
<space
> {tk_key_enter
" "; break}
150 bind .t
<underscore
> {tk_key_enter
"_"; break}
151 bind .t A
{tk_key_enter
"A"; break}
152 bind .t B
{tk_key_enter
"B"; break}
153 bind .t C
{tk_key_enter
"C"; break}
154 bind .t D
{tk_key_enter
"D"; break}
155 bind .t E
{tk_key_enter
"E"; break}
156 bind .t F
{tk_key_enter
"F"; break}
157 bind .t G
{tk_key_enter
"G"; break}
158 bind .t H
{tk_key_enter
"H"; break}
159 bind .t I
{tk_key_enter
"I"; break}
160 bind .t J
{tk_key_enter
"J"; break}
161 bind .t K
{tk_key_enter
"K"; break}
162 bind .t L
{tk_key_enter
"L"; break}
163 bind .t M
{tk_key_enter
"M"; break}
164 bind .t N
{tk_key_enter
"N"; break}
165 bind .t O
{tk_key_enter
"O"; break}
166 bind .t P
{tk_key_enter
"P"; break}
167 bind .t Q
{tk_key_enter
"Q"; break}
168 bind .t R
{tk_key_enter
"R"; break}
169 bind .t S
{tk_key_enter
"S"; break}
170 bind .t T
{tk_key_enter
"T"; break}
171 bind .t U
{tk_key_enter
"U"; break}
172 bind .t V
{tk_key_enter
"V"; break}
173 bind .t W
{tk_key_enter
"W"; break}
174 bind .t X
{tk_key_enter
"X"; break}
175 bind .t Y
{tk_key_enter
"Y"; break}
176 bind .t Z
{tk_key_enter
"Z"; break}
177 bind .t a
{tk_key_enter
"a"; break}
178 bind .t b
{tk_key_enter
"b"; break}
179 bind .t c
{tk_key_enter
"c"; break}
180 bind .t d
{tk_key_enter
"d"; break}
181 bind .t e
{tk_key_enter
"e"; break}
182 bind .t f
{tk_key_enter
"f"; break}
183 bind .t g
{tk_key_enter
"g"; break}
184 bind .t h
{tk_key_enter
"h"; break}
185 bind .t i
{tk_key_enter
"i"; break}
186 bind .t j
{tk_key_enter
"j"; break}
187 bind .t k
{tk_key_enter
"k"; break}
188 bind .t l
{tk_key_enter
"l"; break}
189 bind .t m
{tk_key_enter
"m"; break}
190 bind .t n
{tk_key_enter
"n"; break}
191 bind .t o
{tk_key_enter
"o"; break}
192 bind .t p
{tk_key_enter
"p"; break}
193 bind .t q
{tk_key_enter
"q"; break}
194 bind .t r
{tk_key_enter
"r"; break}
195 bind .t s
{tk_key_enter
"s"; break}
196 bind .t t
{tk_key_enter
"t"; break}
197 bind .t u
{tk_key_enter
"u"; break}
198 bind .t v
{tk_key_enter
"v"; break}
199 bind .t w
{tk_key_enter
"w"; break}
200 bind .t x
{tk_key_enter
"x"; break}
201 bind .t y
{tk_key_enter
"y"; break}
202 bind .t z
{tk_key_enter
"z"; break}
205 # I haven't been able to make Tcl/Tk write uninitialized portions
206 # of the text window. Fill in the screen.
208 .t mark
set insert
1.0
209 for {set i
1} {$i <= $tk_ssize_row} {incr i
} {
210 for {set j
1} {$j <= $tk_ssize_col} {incr j
} {
213 .t insert insert
"\n"
221 # I can't figure out how to get a binding that does nothing without
222 # calling a function, so this stub does it for me.
228 proc tk_key_enter
{val
} {
239 proc tk_key_wait
{timeout
} {
243 if { $timeout != 0 } {
244 after $timeout "set newkey 1"
247 tkwait variable newkey
250 # Callback functions for the File menu.
263 if { $waiting != 0 } {
269 # Write the edit buffer.
275 if { $waiting != 0 } {
281 # Write the edit buffer to a named file.
287 proc tk_writequit
{} {
292 if { $waiting != 0 } {
297 # Callback functions for the Help menu.
300 # Present a help screen.
302 tk_dialog .d
{} "No help screen currently available." {} 0 Continue
306 # Contains the option selector box. It is divided into three parts, the
307 # checkbuttons for the boolean options, the entry fields for the string
308 # numeric options, and a control area containing buttons. There is only
312 # Build option selector box with three subframes for boolean,
313 # numeric, and string options. Make it a toplevel window.
319 global tko_autoindent
329 global tko_edcompatible
330 global tko_escapetime
331 global tko_errorbells
338 global tko_ignorecase
355 global tko_paragraphs
365 global tko_searchincr
370 global tko_shiftwidth
373 global tko_sidescroll
387 global tko_windowname
389 global tko_wrapmargin
393 # Initialize option values.
396 # Build subframe for boolean options.
399 # This is the width of the edcompatible button.
402 # Pack the boolean os, 5 to a frame.
404 pack append .os.bopts .os.bopts.f1
{top
}
405 checkbutton .os.bopts.f1.b1
\
406 -variable tko_altwerase
-text "altwerase" \
407 -command "tk_opt_set altwerase $tko_altwerase" \
408 -width $buttonwidth -anchor w
409 checkbutton .os.bopts.f1.b2
\
410 -variable tko_autoindent
-text "autoindent" \
411 -command "tk_opt_set autoindent $tko_autoindent" \
412 -width $buttonwidth -anchor w
413 checkbutton .os.bopts.f1.b3
\
414 -variable tko_autoprint
-text "autoprint" \
415 -command "tk_opt_set autoprint $tko_autoprint" \
416 -width $buttonwidth -anchor w
417 checkbutton .os.bopts.f1.b4
\
418 -variable tko_autowrite
-text "autowrite" \
419 -command "tk_opt_set autowrite $tko_autowrite" \
420 -width $buttonwidth -anchor w
421 checkbutton .os.bopts.f1.b5
\
422 -variable tko_beautify
-text "beautify" \
423 -command "tk_opt_set beautify $tko_beautify" \
424 -width $buttonwidth -anchor w
425 pack append .os.bopts.f1
\
426 .os.bopts.f1.b1
{left
frame w
} \
427 .os.bopts.f1.b2
{left
frame w
} \
428 .os.bopts.f1.b3
{left
frame w
} \
429 .os.bopts.f1.b4
{left
frame w
} \
430 .os.bopts.f1.b5
{left
frame w
}
433 pack append .os.bopts .os.bopts.f2
{top
}
434 checkbutton .os.bopts.f2.b1
\
435 -variable tko_comment
-text "comment" \
436 -command "tk_opt_set comment $tko_comment" \
437 -width $buttonwidth -anchor w
438 checkbutton .os.bopts.f2.b2
\
439 -variable tko_edcompatible
-text "edcompatible" \
440 -command "tk_opt_set edcompatible $tko_edcompatible" \
441 -width $buttonwidth -anchor w
442 checkbutton .os.bopts.f2.b3
\
443 -variable tko_errorbells
-text "errorbells" \
444 -command "tk_opt_set errorbells $tko_errorbells" \
445 -width $buttonwidth -anchor w
446 checkbutton .os.bopts.f2.b4
\
447 -variable tko_exrc
-text "exrc" \
448 -command "tk_opt_set exrc $tko_exrc" \
449 -width $buttonwidth -anchor w
450 checkbutton .os.bopts.f2.b5
\
451 -variable tko_extended
-text "extended" \
452 -command "tk_opt_set extended $tko_extended" \
453 -width $buttonwidth -anchor w
454 pack append .os.bopts.f2
\
455 .os.bopts.f2.b1
{left
frame w
} \
456 .os.bopts.f2.b2
{left
frame w
} \
457 .os.bopts.f2.b3
{left
frame w
} \
458 .os.bopts.f2.b4
{left
frame w
} \
459 .os.bopts.f2.b5
{left
frame w
}
462 pack append .os.bopts .os.bopts.f3
{top
}
463 checkbutton .os.bopts.f3.b1
\
464 -variable tko_flash
-text "flash" \
465 -command "tk_opt_set flash $tko_flash" \
466 -width $buttonwidth -anchor w
467 checkbutton .os.bopts.f3.b2
\
468 -variable tko_iclower
-text "iclower" \
469 -command "tk_opt_set iclower $tko_iclower" \
470 -width $buttonwidth -anchor w
471 checkbutton .os.bopts.f3.b3
\
472 -variable tko_ignorecase
-text "ignorecase" \
473 -command "tk_opt_set ignorecase $tko_ignorecase" \
474 -width $buttonwidth -anchor w
475 checkbutton .os.bopts.f3.b4
\
476 -variable tko_leftright
-text "leftright" \
477 -command "tk_opt_set leftright $tko_leftright" \
478 -width $buttonwidth -anchor w
479 checkbutton .os.bopts.f3.b5
\
480 -variable tko_lisp
-text "lisp" \
481 -command "tk_opt_set lisp $tko_lisp" \
482 -width $buttonwidth -anchor w
483 pack append .os.bopts.f3
\
484 .os.bopts.f3.b1
{left
frame w
} \
485 .os.bopts.f3.b2
{left
frame w
} \
486 .os.bopts.f3.b3
{left
frame w
} \
487 .os.bopts.f3.b4
{left
frame w
} \
488 .os.bopts.f3.b5
{left
frame w
}
491 pack append .os.bopts .os.bopts.f4
{top
}
492 checkbutton .os.bopts.f4.b1
\
493 -variable tko_list
-text "list" \
494 -command "tk_opt_set list $tko_list" \
495 -width $buttonwidth -anchor w
496 checkbutton .os.bopts.f4.b2
\
497 -variable tko_lock
-text "lock" \
498 -command "tk_opt_set lock $tko_lock" \
499 -width $buttonwidth -anchor w
500 checkbutton .os.bopts.f4.b3
\
501 -variable tko_magic
-text "magic" \
502 -command "tk_opt_set magic $tko_magic" \
503 -width $buttonwidth -anchor w
504 checkbutton .os.bopts.f4.b4
\
505 -variable tko_mesg
-text "mesg" \
506 -command "tk_opt_set mesg $tko_mesg" \
507 -width $buttonwidth -anchor w
508 checkbutton .os.bopts.f4.b5
\
509 -variable tko_number
-text "number" \
510 -command "tk_opt_set number $tko_number" \
511 -width $buttonwidth -anchor w
512 pack append .os.bopts.f4
\
513 .os.bopts.f4.b1
{left
frame w
} \
514 .os.bopts.f4.b2
{left
frame w
} \
515 .os.bopts.f4.b3
{left
frame w
} \
516 .os.bopts.f4.b4
{left
frame w
} \
517 .os.bopts.f4.b5
{left
frame w
}
520 pack append .os.bopts .os.bopts.f5
{top
}
521 checkbutton .os.bopts.f5.b1
\
522 -variable tko_octal
-text "octal" \
523 -command "tk_opt_set octal $tko_octal" \
524 -width $buttonwidth -anchor w
525 checkbutton .os.bopts.f5.b2
\
526 -variable tko_open
-text "open" \
527 -command "tk_opt_set open $tko_open" \
528 -width $buttonwidth -anchor w
529 checkbutton .os.bopts.f5.b3
\
530 -variable tko_optimize
-text "optimize" \
531 -command "tk_opt_set optimize $tko_optimize" \
532 -width $buttonwidth -anchor w
533 checkbutton .os.bopts.f5.b4
\
534 -variable tko_prompt
-text "prompt" \
535 -command "tk_opt_set prompt $tko_prompt" \
536 -width $buttonwidth -anchor w
537 checkbutton .os.bopts.f5.b5
\
538 -variable tko_readonly
-text "readonly" \
539 -command "tk_opt_set readonly $tko_readonly" \
540 -width $buttonwidth -anchor w
541 pack append .os.bopts.f5
\
542 .os.bopts.f5.b1
{left
frame w
} \
543 .os.bopts.f5.b2
{left
frame w
} \
544 .os.bopts.f5.b3
{left
frame w
} \
545 .os.bopts.f5.b4
{left
frame w
} \
546 .os.bopts.f5.b5
{left
frame w
}
549 pack append .os.bopts .os.bopts.f6
{top
}
550 checkbutton .os.bopts.f6.b1
\
551 -variable tko_remap
-text "remap" \
552 -command "tk_opt_set remap $tko_remap" \
553 -width $buttonwidth -anchor w
554 checkbutton .os.bopts.f6.b2
\
555 -variable tko_ruler
-text "ruler" \
556 -command "tk_opt_set ruler $tko_ruler" \
557 -width $buttonwidth -anchor w
558 checkbutton .os.bopts.f6.b3
\
559 -variable tko_searchincr
-text "searchincr" \
560 -command "tk_opt_set searchincr $tko_searchincr" \
561 -width $buttonwidth -anchor w
562 checkbutton .os.bopts.f6.b4
\
563 -variable tko_secure
-text "secure" \
564 -command "tk_opt_set secure $tko_secure" \
565 -width $buttonwidth -anchor w
566 checkbutton .os.bopts.f6.b5
\
567 -variable tko_showmatch
-text "showmatch" \
568 -command "tk_opt_set showmatch $tko_showmatch" \
569 -width $buttonwidth -anchor w
570 pack append .os.bopts.f6
\
571 .os.bopts.f6.b1
{left
frame w
} \
572 .os.bopts.f6.b2
{left
frame w
} \
573 .os.bopts.f6.b3
{left
frame w
} \
574 .os.bopts.f6.b4
{left
frame w
} \
575 .os.bopts.f6.b5
{left
frame w
}
578 pack append .os.bopts .os.bopts.f7
{top
}
579 checkbutton .os.bopts.f7.b1
\
580 -variable tko_showmode
-text "showmode" \
581 -command "tk_opt_set showmode $tko_showmode" \
582 -width $buttonwidth -anchor w
583 checkbutton .os.bopts.f7.b2
\
584 -variable tko_slowopen
-text "slowopen" \
585 -command "tk_opt_set slowopen $tko_slowopen" \
586 -width $buttonwidth -anchor w
587 checkbutton .os.bopts.f7.b3
\
588 -variable tko_sourceany
-text "sourceany" \
589 -command "tk_opt_set sourceany $tko_sourceany" \
590 -width $buttonwidth -anchor w
591 checkbutton .os.bopts.f7.b4
\
592 -variable tko_terse
-text "terse" \
593 -command "tk_opt_set terse $tko_terse" \
594 -width $buttonwidth -anchor w
595 checkbutton .os.bopts.f7.b5
\
596 -variable tko_tildeop
-text "tildeop" \
597 -command "tk_opt_set tildeope $tko_tildeop" \
598 -width $buttonwidth -anchor w
599 pack append .os.bopts.f7
\
600 .os.bopts.f7.b1
{left
frame w
} \
601 .os.bopts.f7.b2
{left
frame w
} \
602 .os.bopts.f7.b3
{left
frame w
} \
603 .os.bopts.f7.b4
{left
frame w
} \
604 .os.bopts.f7.b5
{left
frame w
}
607 pack append .os.bopts .os.bopts.f8
{top fillx
}
608 checkbutton .os.bopts.f8.b1
\
609 -variable tko_timeout
-text "timeout" \
610 -command "tk_opt_set timeout $tko_timeout" \
611 -width $buttonwidth -anchor w
612 checkbutton .os.bopts.f8.b2
\
613 -variable tko_ttywerase
-text "ttywerase" \
614 -command "tk_opt_set ttywerase $tko_ttywerase" \
615 -width $buttonwidth -anchor w
616 checkbutton .os.bopts.f8.b3
\
617 -variable tko_verbose
-text "verbose" \
618 -command "tk_opt_set verbose $tko_verbose" \
619 -width $buttonwidth -anchor w
620 checkbutton .os.bopts.f8.b4
\
621 -variable tko_warn
-text "warn" \
622 -command "tk_opt_set warn $tko_warn" \
623 -width $buttonwidth -anchor w
624 checkbutton .os.bopts.f8.b5
\
625 -variable tko_windowname
-text "windowname" \
626 -command "tk_opt_set windowname $tko_windowname" \
627 -width $buttonwidth -anchor w
628 pack append .os.bopts.f8
\
629 .os.bopts.f8.b1
{left
frame w
} \
630 .os.bopts.f8.b2
{left
frame w
} \
631 .os.bopts.f8.b3
{left
frame w
} \
632 .os.bopts.f8.b4
{left
frame w
} \
633 .os.bopts.f8.b5
{left
frame w
}
636 pack append .os.bopts .os.bopts.f9
{top fillx
}
637 checkbutton .os.bopts.f9.b1
\
638 -variable tko_wrapscan
-text "wrapscan" \
639 -command "tk_opt_set wrapscan $tko_wrapscan" \
640 -width $buttonwidth -anchor w
641 checkbutton .os.bopts.f9.b2
\
642 -variable tko_writeany
-text "writeany" \
643 -command "tk_opt_set writeany $tko_writeany" \
644 -width $buttonwidth -anchor w
645 pack append .os.bopts.f9
\
646 .os.bopts.f9.b1
{left
frame w
} \
647 .os.bopts.f9.b2
{left
frame w
}
649 # Build frame for number options:
652 # Label and entry widths.
657 label .os.nopts.n1.l
-text "column:" -width $lwidth -anchor w
658 entry .os.nopts.n1.e
-width $ewidth -relief raised
\
659 -textvariable tko_columns
660 trace variable tko_columns w tk_opt_ew
661 pack append .os.nopts.n1
\
662 .os.nopts.n1.l
{left
} .os.nopts.n1.e
{left
frame w
}
665 label .os.nopts.n2.l
-text "escapetime:" -width $lwidth -anchor w
666 entry .os.nopts.n2.e
-width $ewidth -textvariable tko_escapetime
\
668 trace variable tko_escapetime w tk_opt_ew
669 pack append .os.nopts.n2
\
670 .os.nopts.n2.l
{left
} .os.nopts.n2.e
{left
frame w
}
673 label .os.nopts.n3.l
-text "hardtabs:" -width $lwidth -anchor w
674 entry .os.nopts.n3.e
-width $ewidth -textvariable tko_hardtabs
\
676 trace variable tko_hardtabs w tk_opt_ew
677 pack append .os.nopts.n3
\
678 .os.nopts.n3.l
{left
} .os.nopts.n3.e
{left
frame w
}
681 label .os.nopts.n4.l
-text "keytime:" -width $lwidth -anchor w
682 entry .os.nopts.n4.e
-width $ewidth -textvariable tko_keytime
\
684 trace variable tko_keytime w tk_opt_ew
685 pack append .os.nopts.n4
\
686 .os.nopts.n4.l
{left
} .os.nopts.n4.e
{left
frame w
}
689 label .os.nopts.n5.l
-text "lines:" -width $lwidth -anchor w
690 entry .os.nopts.n5.e
-width $ewidth -textvariable tko_lines
\
692 trace variable tko_lines w tk_opt_ew
693 pack append .os.nopts.n5
\
694 .os.nopts.n5.l
{left
} .os.nopts.n5.e
{left
frame w
}
697 label .os.nopts.n6.l
-text "matchtime:" -width $lwidth -anchor w
698 entry .os.nopts.n6.e
-width $ewidth -textvariable tko_matchtime
\
700 trace variable tko_matchtime w tk_opt_ew
701 pack append .os.nopts.n6
\
702 .os.nopts.n6.l
{left
} .os.nopts.n6.e
{left
frame w
}
705 label .os.nopts.n7.l
-text "report:" -width $lwidth -anchor w
706 entry .os.nopts.n7.e
-width $ewidth -textvariable tko_report
\
708 trace variable tko_report w tk_opt_ew
709 pack append .os.nopts.n7
\
710 .os.nopts.n7.l
{left
} .os.nopts.n7.e
{left
frame w
}
713 label .os.nopts.n8.l
-text "scroll:" -width $lwidth -anchor w
714 entry .os.nopts.n8.e
-width $ewidth -textvariable tko_scroll
\
716 trace variable tko_scroll w tk_opt_ew
717 pack append .os.nopts.n8
\
718 .os.nopts.n8.l
{left
} .os.nopts.n8.e
{left
frame w
}
721 label .os.nopts.n9.l
-text "shiftwidth:" -width $lwidth -anchor w
722 entry .os.nopts.n9.e
-width $ewidth -textvariable tko_shiftwidth
\
724 trace variable tko_shiftwidth w tk_opt_ew
725 pack append .os.nopts.n9
\
726 .os.nopts.n9.l
{left
} .os.nopts.n9.e
{left
frame w
}
729 label .os.nopts.n10.l
-text "sidescroll:" -width $lwidth -anchor w
730 entry .os.nopts.n10.e
-width $ewidth -textvariable tko_sidescroll
\
732 trace variable tko_sidescroll w tk_opt_ew
733 pack append .os.nopts.n10
\
734 .os.nopts.n10.l
{left
} .os.nopts.n10.e
{left
frame w
}
737 label .os.nopts.n11.l
-text "tabstop:" -width $lwidth -anchor w
738 entry .os.nopts.n11.e
-width $ewidth -textvariable tko_tabstop
\
740 trace variable tko_tabstop w tk_opt_ew
741 pack append .os.nopts.n11
\
742 .os.nopts.n11.l
{left
} .os.nopts.n11.e
{left
frame w
}
745 label .os.nopts.n12.l
-text "taglength:" -width $lwidth -anchor w
746 entry .os.nopts.n12.e
-width $ewidth -textvariable tko_taglength
\
748 trace variable tko_taglength w tk_opt_ew
749 pack append .os.nopts.n12
\
750 .os.nopts.n12.l
{left
} .os.nopts.n12.e
{left
frame w
}
753 label .os.nopts.n13.l
-text "window:" -width $lwidth -anchor w
754 entry .os.nopts.n13.e
-width $ewidth -textvariable tko_window
\
756 trace variable tko_window w tk_opt_ew
757 pack append .os.nopts.n13
\
758 .os.nopts.n13.l
{left
} .os.nopts.n13.e
{left
frame w
}
761 label .os.nopts.n14.l
-text "wraplen:" -width $lwidth -anchor w
762 entry .os.nopts.n14.e
-width $ewidth -textvariable tko_wraplen
\
764 trace variable tko_wraplen w tk_opt_ew
765 pack append .os.nopts.n14
\
766 .os.nopts.n14.l
{left
} .os.nopts.n14.e
{left
frame w
}
769 label .os.nopts.n15.l
-text "wrapmargin:" -width $lwidth -anchor w
770 entry .os.nopts.n15.e
-width $ewidth -textvariable tko_wrapmargin
\
772 trace variable tko_wrapmargin w tk_opt_ew
773 pack append .os.nopts.n15
\
774 .os.nopts.n15.l
{left
} .os.nopts.n15.e
{left
frame w
}
776 pack append .os.nopts
\
777 .os.nopts.n1
{top fillx
} \
778 .os.nopts.n3
{top expand fillx
} \
779 .os.nopts.n4
{top expand fillx
} \
780 .os.nopts.n5
{top expand fillx
} \
781 .os.nopts.n6
{top expand fillx
} \
782 .os.nopts.n7
{top expand fillx
} \
783 .os.nopts.n8
{top expand fillx
} \
784 .os.nopts.n9
{top expand fillx
} \
785 .os.nopts.n10
{top expand fillx
} \
786 .os.nopts.n11
{top expand fillx
} \
787 .os.nopts.n12
{top expand fillx
} \
788 .os.nopts.n13
{top expand fillx
} \
789 .os.nopts.n14
{top expand fillx
} \
790 .os.nopts.n15
{top expand fillx
}
792 # Build frame for string options
799 label .os.sopts.s1.l
-text "backup:" -width $lwidth -anchor w
800 entry .os.sopts.s1.e
-width $ewidth -textvariable tko_backup
\
802 pack append .os.sopts.s1
\
803 .os.sopts.s1.l
{left
} .os.sopts.s1.e
{left
frame w
}
806 label .os.sopts.s2.l
-text "cdpath:" -width $lwidth -anchor w
807 entry .os.sopts.s2.e
-width $ewidth -textvariable tko_cdpath
\
809 pack append .os.sopts.s2
\
810 .os.sopts.s2.l
{left
} .os.sopts.s2.e
{left
frame w
}
813 label .os.sopts.s3.l
-text "directory:" -width $lwidth -anchor w
814 entry .os.sopts.s3.e
-width $ewidth -textvariable tko_directory
\
816 pack append .os.sopts.s3
\
817 .os.sopts.s3.l
{left
} .os.sopts.s3.e
{left
frame w
}
820 label .os.sopts.s4.l
-text "cedit:" -width $lwidth -anchor w
821 entry .os.sopts.s4.e
-width $ewidth -textvariable tko_cedit
\
823 pack append .os.sopts.s4
\
824 .os.sopts.s4.l
{left
} .os.sopts.s4.e
{left
frame w
}
827 label .os.sopts.s5.l
-text "filec:" -width $lwidth -anchor w
828 entry .os.sopts.s5.e
-width $ewidth -textvariable tko_filec
\
830 pack append .os.sopts.s5
\
831 .os.sopts.s5.l
{left
} .os.sopts.s5.e
{left
frame w
}
834 label .os.sopts.s6.l
-text "msgcat:" -width $lwidth -anchor w
835 entry .os.sopts.s6.e
-width $ewidth -textvariable tko_msgcat
\
837 pack append .os.sopts.s6
\
838 .os.sopts.s6.l
{left
} .os.sopts.s6.e
{left
frame w
}
841 label .os.sopts.s7.l
-text "noprint:" -width $lwidth -anchor w
842 entry .os.sopts.s7.e
-width $ewidth -textvariable tko_noprint
\
844 pack append .os.sopts.s7
\
845 .os.sopts.s7.l
{left
} .os.sopts.s7.e
{left
frame w
}
848 label .os.sopts.s8.l
-text "paragraphs:" -width $lwidth -anchor w
849 entry .os.sopts.s8.e
-width $ewidth -textvariable tko_paragraphs
\
851 pack append .os.sopts.s8
\
852 .os.sopts.s8.l
{left
} .os.sopts.s8.e
{left
frame w
}
855 label .os.sopts.s9.l
-text "print:" -width $lwidth -anchor w
856 entry .os.sopts.s9.e
-width $ewidth -textvariable tko_print
\
858 pack append .os.sopts.s9
\
859 .os.sopts.s9.l
{left
} .os.sopts.s9.e
{left
frame w
}
862 label .os.sopts.s10.l
-text "recdir:" -width $lwidth -anchor w
863 entry .os.sopts.s10.e
-width $ewidth -textvariable tko_recdir
\
865 pack append .os.sopts.s10
\
866 .os.sopts.s10.l
{left
} .os.sopts.s10.e
{left
frame w
}
869 label .os.sopts.s11.l
-text "sections:" -width $lwidth -anchor w
870 entry .os.sopts.s11.e
-width $ewidth -textvariable tko_sections
\
872 pack append .os.sopts.s11
\
873 .os.sopts.s11.l
{left
} .os.sopts.s11.e
{left
frame w
}
876 label .os.sopts.s12.l
-text "shell:" -width $lwidth -anchor w
877 entry .os.sopts.s12.e
-width $ewidth -textvariable tko_shell
\
879 pack append .os.sopts.s12
\
880 .os.sopts.s12.l
{left
} .os.sopts.s12.e
{left
frame w
}
883 label .os.sopts.s13.l
-text "shellmeta:" -width $lwidth -anchor w
884 entry .os.sopts.s13.e
-width $ewidth -textvariable tko_shellmeta
\
886 pack append .os.sopts.s13
\
887 .os.sopts.s13.l
{left
} .os.sopts.s13.e
{left
frame w
}
890 label .os.sopts.s14.l
-text "tags:" -width $lwidth -anchor w
891 entry .os.sopts.s14.e
-width $ewidth -textvariable tko_tags
\
893 pack append .os.sopts.s14
\
894 .os.sopts.s14.l
{left
} .os.sopts.s14.e
{left
frame w
}
897 label .os.sopts.s15.l
-text "term:" -width $lwidth -anchor w
898 entry .os.sopts.s15.e
-width $ewidth -textvariable tko_term
\
900 pack append .os.sopts.s15
\
901 .os.sopts.s15.l
{left
} .os.sopts.s15.e
{left
frame w
}
903 pack append .os.sopts
\
904 .os.sopts.s1
{top expand fillx
} \
905 .os.sopts.s2
{top expand fillx
} \
906 .os.sopts.s3
{top expand fillx
} \
907 .os.sopts.s4
{top expand fillx
} \
908 .os.sopts.s5
{top expand fillx
} \
909 .os.sopts.s6
{top expand fillx
} \
910 .os.sopts.s7
{top expand fillx
} \
911 .os.sopts.s8
{top expand fillx
} \
912 .os.sopts.s9
{top expand fillx
} \
913 .os.sopts.s10
{top expand fillx
} \
914 .os.sopts.s11
{top expand fillx
} \
915 .os.sopts.s12
{top expand fillx
} \
916 .os.sopts.s13
{top expand fillx
} \
917 .os.sopts.s14
{top expand fillx
} \
918 .os.sopts.s15
{top expand fillx
}
920 # Build frame for continue button.
921 frame .os.control
-bd 4
922 button .os.control.quit
-text "Continue" -command "destroy .os"
923 bind .os
<Return
> ".os.control.quit flash; destroy .os"
924 pack append .os.control .os.control.quit
{left
}
926 # Pack everything together.
929 .os.control
{bottom fillx
} \
930 .os.nopts
{left fillx padx
4m pady
4m
} \
931 .os.sopts
{left fillx pady
4m
}
938 # Handle a change to an option entry widget.
939 proc tk_opt_ew
{name element op
} {
941 tk_opt_set
"$name=$x"
945 # Display a Tcl/Tk error message.
947 tk_dialog .d
{} "$msg" {} 0 Continue
953 # Add a string to the screen.
954 proc tk_addstr
{len str
} {
958 # Delete the current characters, then insert the new ones.
959 .t mark
set insert
$tk_cursor_row.
$tk_cursor_col
960 .t delete insert
"insert + $len chars"
961 .t insert insert
"$str"
962 incr tk_cursor_col
$len
964 #puts "tk_addstr: row $tk_cursor_row col $tk_cursor_col: insert $str"
968 # Clear to the end of the line.
969 proc tk_clrtoeol
{} {
974 # Overwrite to the end of the line with spaces.
975 .t mark
set insert
$tk_cursor_row.
$tk_cursor_col
976 .t delete insert
"insert lineend"
977 for {set j
$tk_cursor_col} {$j < $tk_ssize_col} {incr j
} {
981 #puts "tk_clrtoel: row $tk_cursor_row col $tk_cursor_col"
986 proc tk_deleteln
{} {
992 .t mark
set insert
$tk_cursor_row.
$tk_cursor_col
993 .t delete insert
"insert lineend + 1 chars"
995 # Append a new, blank line at the end of the screen.
996 .t mark
set insert end
997 for {set j
1} {$j <= $tk_ssize_col} {incr j
} {
1000 .t insert insert
"\n"
1002 #puts "tk_deleteln: row $tk_cursor_row"
1008 set bg
[lindex [.t config
-background] 4]
1009 set fg
[lindex [.t config
-foreground] 4]
1010 .t configure
-background $fg -foreground $bg
1012 .t configure
-background $bg -foreground $fg
1018 proc tk_insertln
{} {
1019 global tk_cursor_row
1020 global tk_cursor_col
1024 # Delete the last line on the screen.
1025 .t mark
set insert
$tk_ssize_row.0
1026 .t delete insert
"insert lineend + 1 chars"
1028 # Insert a new, blank line.
1029 .t mark
set insert
$tk_cursor_row.
$tk_cursor_col
1030 for {set j
1} {$j <= $tk_ssize_col} {incr j
} {
1031 .t insert insert
" "
1033 .t insert insert
"\n"
1035 #puts "tk_insertln: row $tk_cursor_row"
1040 proc tk_move
{row col
} {
1041 global tk_cursor_row
1042 global tk_cursor_col
1044 # Convert to Tcl/Tk coordinates, update the insert cursor.
1045 set tk_cursor_row
[ expr $row + 1 ]
1046 set tk_cursor_col
$col
1047 .t mark
set insert
$tk_cursor_row.
$tk_cursor_col
1049 # Update the screen cursor.
1050 .t tag remove tk_cursor tk_cursor_indx
1051 .t mark
set tk_cursor_indx insert
1052 .t tag add tk_cursor tk_cursor_indx
1054 #puts "tk_move: row $tk_cursor_row col $tk_cursor_col"
1058 # Rename the screen.
1059 proc tk_rename
{name
} {
1064 # Return the window size.
1069 set s
[ .t configure
-width ]
1070 set tk_ssize_col
[ lindex $s [ expr [ llength $s ] -1 ] ]
1071 set s
[ .t configure
-height ]
1072 set tk_ssize_row
[ lindex $s [ expr [ llength $s ] -1 ] ]
1074 #puts "tk_ssize: rows $tk_ssize_row, cols $tk_ssize_col"
1078 # Change into standout mode.
1079 proc tk_standout
{} {
1083 # Change out of standout mode.
1084 proc tk_standend
{} {