Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/tkScrollbar.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 /* | |
2 * tkScrollbar.h -- | |
3 * | |
4 * Declarations of types and functions used to implement the scrollbar | |
5 * widget. | |
6 * | |
7 * Copyright (c) 1996 by Sun Microsystems, Inc. | |
8 * | |
9 * See the file "license.terms" for information on usage and redistribution of | |
10 * this file, and for a DISCLAIMER OF ALL WARRANTIES. | |
11 */ | |
12 | |
13 #ifndef _TKSCROLLBAR | |
14 #define _TKSCROLLBAR | |
15 | |
16 #ifndef _TKINT | |
17 #include "tkInt.h" | |
18 #endif | |
19 | |
20 /* | |
21 * A data structure of the following type is kept for each scrollbar widget. | |
22 */ | |
23 | |
24 typedef struct TkScrollbar { | |
25 Tk_Window tkwin; /* Window that embodies the scrollbar. NULL | |
26 * means that the window has been destroyed | |
27 * but the data structures haven't yet been | |
28 * cleaned up.*/ | |
29 Display *display; /* Display containing widget. Used, among | |
30 * other things, so that resources can be | |
31 * freed even after tkwin has gone away. */ | |
32 Tcl_Interp *interp; /* Interpreter associated with scrollbar. */ | |
33 Tcl_Command widgetCmd; /* Token for scrollbar's widget command. */ | |
34 int vertical; /* Non-zero means vertical orientation | |
35 * requested, zero means horizontal. */ | |
36 int width; /* Desired narrow dimension of scrollbar, in | |
37 * pixels. */ | |
38 char *command; /* Command prefix to use when invoking | |
39 * scrolling commands. NULL means don't invoke | |
40 * commands. Malloc'ed. */ | |
41 int commandSize; /* Number of non-NULL bytes in command. */ | |
42 int repeatDelay; /* How long to wait before auto-repeating on | |
43 * scrolling actions (in ms). */ | |
44 int repeatInterval; /* Interval between autorepeats (in ms). */ | |
45 int jump; /* Value of -jump option. */ | |
46 | |
47 /* | |
48 * Information used when displaying widget: | |
49 */ | |
50 | |
51 int borderWidth; /* Width of 3-D borders. */ | |
52 Tk_3DBorder bgBorder; /* Used for drawing background (all flat | |
53 * surfaces except for trough). */ | |
54 Tk_3DBorder activeBorder; /* For drawing backgrounds when active (i.e. | |
55 * when mouse is positioned over element). */ | |
56 XColor *troughColorPtr; /* Color for drawing trough. */ | |
57 int relief; /* Indicates whether window as a whole is | |
58 * raised, sunken, or flat. */ | |
59 int highlightWidth; /* Width in pixels of highlight to draw around | |
60 * widget when it has the focus. <= 0 means | |
61 * don't draw a highlight. */ | |
62 XColor *highlightBgColorPtr; | |
63 /* Color for drawing traversal highlight area | |
64 * when highlight is off. */ | |
65 XColor *highlightColorPtr; /* Color for drawing traversal highlight. */ | |
66 int inset; /* Total width of all borders, including | |
67 * traversal highlight and 3-D border. | |
68 * Indicates how much interior stuff must be | |
69 * offset from outside edges to leave room for | |
70 * borders. */ | |
71 int elementBorderWidth; /* Width of border to draw around elements | |
72 * inside scrollbar (arrows and slider). -1 | |
73 * means use borderWidth. */ | |
74 int arrowLength; /* Length of arrows along long dimension of | |
75 * scrollbar, including space for a small gap | |
76 * between the arrow and the slider. | |
77 * Recomputed on window size changes. */ | |
78 int sliderFirst; /* Pixel coordinate of top or left edge of | |
79 * slider area, including border. */ | |
80 int sliderLast; /* Coordinate of pixel just after bottom or | |
81 * right edge of slider area, including | |
82 * border. */ | |
83 int activeField; /* Names field to be displayed in active | |
84 * colors, such as TOP_ARROW, or 0 for no | |
85 * field. */ | |
86 int activeRelief; /* Value of -activeRelief option: relief to | |
87 * use for active element. */ | |
88 | |
89 /* | |
90 * Information describing the application related to the scrollbar. This | |
91 * information is provided by the application by invoking the "set" widget | |
92 * command. This information can now be provided in two ways: the "old" | |
93 * form (totalUnits, windowUnits, firstUnit, and lastUnit), or the "new" | |
94 * form (firstFraction and lastFraction). FirstFraction and lastFraction | |
95 * will always be valid, but the old-style information is only valid if | |
96 * the NEW_STYLE_COMMANDS flag is 0. | |
97 */ | |
98 | |
99 int totalUnits; /* Total dimension of application, in units. | |
100 * Valid only if the NEW_STYLE_COMMANDS flag | |
101 * isn't set. */ | |
102 int windowUnits; /* Maximum number of units that can be | |
103 * displayed in the window at once. Valid only | |
104 * if the NEW_STYLE_COMMANDS flag isn't set. */ | |
105 int firstUnit; /* Number of last unit visible in | |
106 * application's window. Valid only if the | |
107 * NEW_STYLE_COMMANDS flag isn't set. */ | |
108 int lastUnit; /* Index of last unit visible in window. | |
109 * Valid only if the NEW_STYLE_COMMANDS flag | |
110 * isn't set. */ | |
111 double firstFraction; /* Position of first visible thing in window, | |
112 * specified as a fraction between 0 and | |
113 * 1.0. */ | |
114 double lastFraction; /* Position of last visible thing in window, | |
115 * specified as a fraction between 0 and | |
116 * 1.0. */ | |
117 | |
118 /* | |
119 * Miscellaneous information: | |
120 */ | |
121 | |
122 Tk_Cursor cursor; /* Current cursor for window, or NULL. */ | |
123 char *takeFocus; /* Value of -takefocus option; not used in the | |
124 * C code, but used by keyboard traversal | |
125 * scripts. Malloc'ed, but may be NULL. */ | |
126 int flags; /* Various flags; see below for | |
127 * definitions. */ | |
128 } TkScrollbar; | |
129 | |
130 /* | |
131 * Legal values for "activeField" field of Scrollbar structures. These are | |
132 * also the return values from the ScrollbarPosition function. | |
133 */ | |
134 | |
135 #define OUTSIDE 0 | |
136 #define TOP_ARROW 1 | |
137 #define TOP_GAP 2 | |
138 #define SLIDER 3 | |
139 #define BOTTOM_GAP 4 | |
140 #define BOTTOM_ARROW 5 | |
141 | |
142 /* | |
143 * Flag bits for scrollbars: | |
144 * | |
145 * REDRAW_PENDING: Non-zero means a DoWhenIdle handler has | |
146 * already been queued to redraw this window. | |
147 * NEW_STYLE_COMMANDS: Non-zero means the new style of commands | |
148 * should be used to communicate with the widget: | |
149 * ".t yview scroll 2 lines", instead of | |
150 * ".t yview 40", for example. | |
151 * GOT_FOCUS: Non-zero means this window has the input | |
152 * focus. | |
153 */ | |
154 | |
155 #define REDRAW_PENDING 1 | |
156 #define NEW_STYLE_COMMANDS 2 | |
157 #define GOT_FOCUS 4 | |
158 | |
159 /* | |
160 * Declaration of scrollbar class functions structure | |
161 * and default scrollbar width, for use in configSpec. | |
162 */ | |
163 | |
164 MODULE_SCOPE const Tk_ClassProcs tkpScrollbarProcs; | |
165 MODULE_SCOPE char tkDefScrollbarWidth[TCL_INTEGER_SPACE]; | |
166 | |
167 /* | |
168 * Declaration of functions used in the implementation of the scrollbar | |
169 * widget. | |
170 */ | |
171 | |
172 MODULE_SCOPE void TkScrollbarEventProc(ClientData clientData, | |
173 XEvent *eventPtr); | |
174 MODULE_SCOPE void TkScrollbarEventuallyRedraw(TkScrollbar *scrollPtr); | |
175 MODULE_SCOPE void TkpComputeScrollbarGeometry(TkScrollbar *scrollPtr); | |
176 MODULE_SCOPE TkScrollbar *TkpCreateScrollbar(Tk_Window tkwin); | |
177 MODULE_SCOPE void TkpDestroyScrollbar(TkScrollbar *scrollPtr); | |
178 MODULE_SCOPE void TkpDisplayScrollbar(ClientData clientData); | |
179 MODULE_SCOPE void TkpConfigureScrollbar(TkScrollbar *scrollPtr); | |
180 MODULE_SCOPE int TkpScrollbarPosition(TkScrollbar *scrollPtr, | |
181 int x, int y); | |
182 | |
183 #endif /* _TKSCROLLBAR */ |