3 # Initialization script normally executed in the interpreter for each
4 # Tk-based application. Arranges class bindings for widgets.
6 # $Header: /user6/ouster/wish/scripts/RCS/tk.tcl,v 1.19 92/08/08 14:50:08 ouster Exp $ SPRITE (Berkeley)
8 # Copyright 1992 Regents of the University of California
9 # Permission to use, copy, modify, and distribute this
10 # software and its documentation for any purpose and without
11 # fee is hereby granted, provided that this copyright
12 # notice appears in all copies. The University of California
13 # makes no representations about the suitability of this
14 # software for any purpose. It is provided "as is" without
15 # express or implied warranty.
17 # Insist on running with a compatible version of Tcl.
19 if "[info tclversion] != {6.4}" {
20 error "wrong version of Tcl loaded ([info tclversion]): need 6.4"
23 # Initialize the auto-load path to include Tk's directory as well as
26 set auto_path
"$tk_library [info library]"
28 # ----------------------------------------------------------------------
29 # Class bindings for various flavors of button widgets.
30 # ----------------------------------------------------------------------
32 bind Button
<Any-Enter
> {tk_butEnter
%W
}
33 bind Button
<Any-Leave
> {tk_butLeave
%W
}
34 bind Button
<1> {tk_butDown
%W
}
35 bind Button
<ButtonRelease-1
> {tk_butUp
%W
}
36 bind Button
<2> {tk_butDown
%W
}
37 bind Button
<ButtonRelease-2
> {tk_butUp
%W
}
38 bind Button
<3> {tk_butDown
%W
}
39 bind Button
<ButtonRelease-3
> {tk_butUp
%W
}
41 bind CheckButton
<Any-Enter
> {tk_butEnter
%W
}
42 bind CheckButton
<Any-Leave
> {tk_butLeave
%W
}
43 bind CheckButton
<1> {tk_butDown
%W
}
44 bind CheckButton
<ButtonRelease-1
> {tk_butUp
%W
}
45 bind CheckButton
<2> {tk_butDown
%W
}
46 bind CheckButton
<ButtonRelease-2
> {tk_butUp
%W
}
47 bind CheckButton
<3> {tk_butDown
%W
}
48 bind CheckButton
<ButtonRelease-3
> {tk_butUp
%W
}
50 bind RadioButton
<Any-Enter
> {tk_butEnter
%W
}
51 bind RadioButton
<Any-Leave
> {tk_butLeave
%W
}
52 bind RadioButton
<1> {tk_butDown
%W
}
53 bind RadioButton
<ButtonRelease-1
> {tk_butUp
%W
}
54 bind RadioButton
<2> {tk_butDown
%W
}
55 bind RadioButton
<ButtonRelease-2
> {tk_butUp
%W
}
56 bind RadioButton
<3> {tk_butDown
%W
}
57 bind RadioButton
<ButtonRelease-3
> {tk_butUp
%W
}
59 # ----------------------------------------------------------------------
60 # Class bindings for entry widgets.
61 # ----------------------------------------------------------------------
66 if {[lindex [%W config
-state] 4] == "normal"} {focus %W
}
68 bind Entry
<B1-Motion
> {%W select to
@%x
}
69 bind Entry
<Shift-1
> {%W select adjust
@%x
}
70 bind Entry
<Shift-B1-Motion
> {%W select to
@%x
}
71 bind Entry
<2> {%W
scan mark
%x
}
72 bind Entry
<B2-Motion
> {%W
scan dragto
%x
}
73 bind Entry
<Any-KeyPress
> {
80 bind Entry
<Delete
> {tk_entryDelPress
%W
}
81 bind Entry
<BackSpace
> {tk_entryDelPress
%W
}
82 bind Entry
<Control-h
> {tk_entryDelPress
%W
}
83 bind Entry
<Control-d
> {tk_entryCutPress
%W
}
84 bind Entry
<Control-u
> {tk_entryDelLine
%W
}
85 bind Entry
<Control-x
> {tk_entryCutPress
%W
}
86 bind Entry
<Control-y
> {tk_entryCopyPress
%W
}
87 bind Entry
<Control-v
> {tk_entryCopyPress
%W
}
88 bind Entry
<Control-w
> {tk_entryBackword
%W
; tk_entrySeeCaret
%W
}
89 tk_bindForTraversal Entry
91 # ----------------------------------------------------------------------
92 # Class bindings for listbox widgets.
93 # ----------------------------------------------------------------------
95 bind Listbox
<1> {%W select from
[%W nearest
%y
]}
96 bind Listbox
<B1-Motion
> {%W select to
[%W nearest
%y
]}
97 bind Listbox
<Shift-1
> {%W select adjust
[%W nearest
%y
]}
98 bind Listbox
<Shift-B1-Motion
> {%W select to
[%W nearest
%y
]}
99 bind Listbox
<2> {%W
scan mark
%x
%y
}
100 bind Listbox
<B2-Motion
> {%W
scan dragto
%x
%y
}
101 bind Listbox
<3> {%W select from
[%W nearest
%y
]}
102 bind Listbox
<B3-Motion
> {%W select to
[%W nearest
%y
]}
103 bind Listbox
<Shift-3
> {%W select adjust
[%W nearest
%y
]}
104 bind Listbox
<Shift-B3-Motion
> {%W select to
[%W nearest
%y
]}
106 # ----------------------------------------------------------------------
107 # Class bindings for scrollbar widgets.
108 # ----------------------------------------------------------------------
110 # ----------------------------------------------------------------------
111 # Class bindings for scale widgets.
112 # ----------------------------------------------------------------------
114 # ----------------------------------------------------------------------
115 # Class bindings for menubutton widgets.
116 # ----------------------------------------------------------------------
118 bind Menubutton
<Enter
> {tk_mbButtonEnter
%W
%m
}
119 bind Menubutton
<Any-Leave
> {tk_mbButtonLeave
%W
}
120 bind Menubutton
<1> {tk_mbButtonDown
%W
%X
%Y
}
121 bind Menubutton
<Any-ButtonRelease-1
> {tk_mbButtonUp
%W
%X
%Y
}
122 bind Menubutton
<B1-Enter
> {tk_mbButton1Enter
%W
%m
}
123 bind Menubutton
<2> {tk_mbButtonDown
%W
%X
%Y
}
124 bind Menubutton
<ButtonRelease-2
> {tk_mbButtonUp
%W
%X
%Y
}
125 bind Menubutton
<3> {tk_mbButtonDown
%W
%X
%Y
}
126 bind Menubutton
<ButtonRelease-3
> {tk_mbButtonUp
%W
%X
%Y
}
128 # ----------------------------------------------------------------------
129 # Class bindings for menu widgets.
130 # ----------------------------------------------------------------------
132 bind Menu
<Any-Enter
> {tk_menuEnter
%W
%y
}
133 bind Menu
<Any-Leave
> {tk_menuLeave
%W
}
134 bind Menu
<Any-Motion
> {tk_menuMotion
%W
%y
}
135 bind Menu
<ButtonRelease-1
> {tk_menuUp
%W
%y
}
136 bind Menu
<ButtonRelease-2
> {tk_menuUp
%W
%y
}
137 bind Menu
<ButtonRelease-3
> {tk_menuUp
%W
%y
}
139 bind Menu
<Escape
> {tk_mbUnpost
%W
}
140 bind Menu
<Any-KeyPress
> {tk_traverseWithinMenu
%W
%A
}
141 bind Menu
<Left
> {tk_nextMenu
%W
-1}
142 bind Menu
<Right
> {tk_nextMenu
%W
1}
143 bind Menu
<Up
> {tk_nextMenuEntry
%W
-1}
144 bind Menu
<Down
> {tk_nextMenuEntry
%W
1}
145 bind Menu
<Return
> {tk_invokeMenu
%W
}
147 # ----------------------------------------------------------------------
148 # Class bindings for text widgets.
149 # ----------------------------------------------------------------------
151 #bind Text <1> {tk_textDown %W %x %y}
152 #bind Text <Double-1> {tk_textDoubleDown %W %x %y}
153 #bind Text <Triple-1> {tk_textTripleDown %W %x %y}
154 #bind Text <B1-Motion> {tk_textSelectTo %W %x %y}
155 #bind Text <Shift-1> {tk_textAdjustTo %W %x %y}
156 #bind Text <Shift-B1-Motion> {tk_textSelectTo %W %x %y}
157 bind Text
<2> {%W
scan mark
%y
}
158 bind Text
<B2-Motion
> {%W
scan dragto
%y
}
159 bind Text
<Any-KeyPress
> {tk_textKeyPress
%W
%A
}
160 bind Text
<Return
> {tk_textReturnPress
%W
}
161 bind Text
<BackSpace
> {tk_textDelPress
%W
}
162 bind Text
<Delete
> {tk_textDelPress
%W
}
163 bind Text
<Control-h
> {tk_textDelPress
%W
}
164 bind Text
<Control-d
> {tk_textCutPress
%W
}
165 bind Text
<Control-v
> {tk_textCopyPress
%W
}
166 tk_bindForTraversal Text
168 # Initialize the elements of tk_priv that require initialization.