config: fix build with external compiler by passing the sysroot where needed
[AROS.git] / arch / .unmaintained / morphos / Include / intuition / gadgetclass.h
blob1761998187863d69b6c0e02d63177acdd67d13f5
1 #ifndef INTUITION_GADGETCLASS_H
2 #define INTUITION_GADGETCLASS_H
4 /*
5 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Headerfile for Intuitions' gadget classes.
9 Lang: english
12 #ifndef EXEC_TYPES_H
13 # include <exec/types.h>
14 #endif
15 #ifndef INTUITION_INTUITION_H
16 # include <intuition/intuition.h>
17 #endif
18 #ifndef UTILITY_TAGITEM_H
19 # include <utility/tagitem.h>
20 #endif
22 /**********************************************************************
23 ***************************** GadgetClass ****************************
24 **********************************************************************/
26 /* GadgetClass is the topmost class for all other gadget classes. In the
27 current implementation it subclasses RootClass directly, but this may change
28 in the future.
30 GadgetClass does not perform any rendering or input handling itself, its
31 subclasses are responsible for doing that. The only thing GadgetClass does,
32 is preparing the structure Gadget (see <intuition/intuition.h>), which is
33 supplied as immediate data at the address, the object pointer points to. In
34 other words, objects of GadgetClass are struct Gadget pointers. */
36 /* *************************** Attributes *****************************/
38 /* Most subclasses of GadgetClass implement a subset of these attributes. Note
39 also that even if an attribute is signed as settable, some subclasses may
40 ignore this or even behave strange, if such an attribute is set, after they
41 were added to a window. Read the class documentation of the subclasses to
42 learn about such caveats.
44 Many of these attributes correspond directly to a field of the Gadget
45 structure or to one flag for this structure. See <intuition/intuition.h> for
46 more information. */
48 #define GA_Dummy (TAG_USER + 0x30000)
50 /* Gadget placing (in pixels). Of course, all GA_Rel attributes are mutually
51 exclusive with their non relative equivalents. */
52 /* [ISG] (LONG) Left edge of gadget. */
53 #define GA_Left (GA_Dummy + 1)
54 /* [ISG] (LONG) Left edge of gadget, depending on right window border:
55 Left=Win->Width-this-1 */
56 #define GA_RelRight (GA_Dummy + 2)
57 /* [ISG] (LONG) Top edge of gadget. */
58 #define GA_Top (GA_Dummy + 3)
59 /* [ISG] (LONG) Top edge of gadget, depending on bottom window border:
60 Top=Win->Height-this-1 */
61 #define GA_RelBottom (GA_Dummy + 4)
62 /* [ISG] (LONG) Width of gadget. */
63 #define GA_Width (GA_Dummy + 5)
64 /* [ISG] (LONG) Width of gadget, depending on window width:
65 Width=Win->Width-this */
66 #define GA_RelWidth (GA_Dummy + 6)
67 /* [ISG] (LONG) Height of gadget. */
68 #define GA_Height (GA_Dummy + 7)
69 /* [ISG] (LONG) Height of gadget, depending on window height:
70 Height=Win->Height-this */
71 #define GA_RelHeight (GA_Dummy + 8)
73 /* Gadget rendering. */
74 /* [IS.] (UBYTE *) Label text. This is mutually exclusive with GA_IntuiText
75 and GA_LabelImage. */
76 #define GA_Text (GA_Dummy + 9)
77 /* The next two attributes are mutually exclusive. */
78 /* [IS.] (struct Image *) Gadgets' image. */
79 #define GA_Image (GA_Dummy + 10)
80 /* [IS.] (struct Border *) Gadgets' border. */
81 #define GA_Border (GA_Dummy + 11)
82 /* [IS.] (struct Image *) Gadgets' image in selected state. Note that if
83 this is NULL and GA_Image is in fact an image object, GA_Image may be
84 tried to be drawn with IDS_SELECTED. So you do not need to fill this in,
85 if you wish to have a special selected image and GA_Image is an image
86 object that supports the selected state. */
87 #define GA_SelectRender (GA_Dummy + 12)
88 /* [IS.] (ULONG) Takes GFLG_GADGH* flags (see <intuition/intuition.h>) as
89 argument. Used to specify the highlighting technique. */
90 #define GA_Highlight (GA_Dummy + 13)
91 /* [ISG] (BOOL) If this is set to true, the gadget is not selectable. Often
92 this is visually represented by using a special disabled pattern. */
93 #define GA_Disabled (GA_Dummy + 14)
95 /* Additional information. */
96 /* [IS.] (BOOL) The Gadget is a GimmeZeroZero gadget. */
97 #define GA_GZZGadget (GA_Dummy + 15)
98 /* [ISG] (LONG) The gadget ID to identify that gadget. Choose whatever number
99 you want, but try to avoid to use the same number twice in an application.
100 If you are sending an OM_UPDATE method from a gadget dispatcher, you
101 should fill in your own gadget ID here. */
102 #define GA_ID (GA_Dummy + 16)
103 /* [ISG] (IPTR) Fill with whatever you want to. This field is ignored by
104 the system. */
105 #define GA_UserData (GA_Dummy + 17)
106 /* [IS.] (APTR) Pointer to additional information, needed by some gadgets
107 (like string or integer gadgets). This field should generally only be set
108 by subclasses of GadgetClass. Applications should keep their hands off it.
110 #define GA_SpecialInfo (GA_Dummy + 18)
111 /* [ISG] (BOOL) Determines the selected state of a gadget. */
113 /* Gadget activation. */
114 #define GA_Selected (GA_Dummy + 19)
115 /* [IS.] (BOOL) Only used for requester gadgets. This tells intuition that
116 the requester is to be closed, when the gadget is released. */
117 #define GA_EndGadget (GA_Dummy + 20)
118 /* [IS.] (BOOL) If set the gadget responds immediatly, when the gadget is
119 selected. */
120 #define GA_Immediate (GA_Dummy + 21)
121 /* [IS.] (BOOL) If set the gadget responds, when it is released from selected
122 state. */
123 #define GA_RelVerify (GA_Dummy + 22)
124 /* [IS.] (BOOL) If this is set, the gadget receives information about the
125 movement of the mouse as long as it is activated. */
126 #define GA_FollowMouse (GA_Dummy + 23)
128 /* The (boolean) border attributes mean that the gadget is to be included in a
129 window border, when the window containing it is opened. */
130 #define GA_RightBorder (GA_Dummy + 24) /* [IS.] (BOOL) */
131 #define GA_LeftBorder (GA_Dummy + 25) /* [IS.] (BOOL) */
132 #define GA_TopBorder (GA_Dummy + 26) /* [IS.] (BOOL) */
133 #define GA_BottomBorder (GA_Dummy + 27) /* [IS.] (BOOL) */
135 /* [IS.] (BOOL) Set this to turn on the toggle-select mode. */
136 #define GA_ToggleSelect (GA_Dummy + 28)
138 /* The following two attributes are PRIVATE! */
139 /* [IS.] (BOOL) Set, if gadget is a system-gadget (eg a standard window
140 border gadget. */
141 #define GA_SysGadget (GA_Dummy + 29)
142 /* [I..] (ULONG) Flag to indicate, which kind of system gadget this is (see
143 <intuition/intuition.h> for more information). */
144 #define GA_SysGType (GA_Dummy + 30)
146 /* Gadget linking. */
147 /* [I..] (struct Gadget *) Pointer to previous gadget. This is used to link
148 the current gadget into a gadget list, before this list is used. It can
149 not be used to add a gadget to a list of an open window or requester! */
150 #define GA_Previous (GA_Dummy + 31)
151 /* [I..] (struct Gadget *) Currently not implemented. */
152 #define GA_Next (GA_Dummy + 32)
154 /* [I..] Some gadgets need a DrawInfo structure (see <intuition/screens.h>)
155 to be able to perform correct rendering. Read the documentation of the
156 subclasses to learn, which need this attribute. To be on the safe side,
157 you can always supply it. */
158 #define GA_DrawInfo (GA_Dummy + 33)
160 /* You should use at most ONE of GA_Text, GA_IntuiText, and GA_LabelImage! */
161 /* [IS.] (struct IntuiText *) The label of the gadget expressed as IntuiText
162 structure (see <intuition/intuition.h>). */
163 #define GA_IntuiText (GA_Dummy + 34)
164 /* [IS.] (struct Object *) Use this image object as label. */
165 #define GA_LabelImage (GA_Dummy + 35)
167 /* [IS.] (BOOL) If set to true that gadget participates in TAB handling, ie
168 if tab is pressed, the next gadget is activated. */
169 #define GA_TabCycle (GA_Dummy + 36)
170 /* [..G] (BOOL) If this is set by the gadget, the sends GADGETHELP messages.
172 #define GA_GadgetHelp (GA_Dummy + 37)
173 /* [IS.] (struct IBox *) Bounds to be copied into the ExtGadget structure.
174 (see <intuition/intuition.h> for more information). */
175 #define GA_Bounds (GA_Dummy + 38)
176 /* [IS.] (BOOL) This attribute should only be set by subclasses of
177 GadgetClass. Applications should keep their hands away!
178 If set this means, that GM_LAYOUT is called, when the window it is in is
179 opened or its size changes. This allows gadgets to make their own size
180 dependent on the size of the window. */
181 #define GA_RelSpecial (GA_Dummy + 39)
183 #define GA_TextAttr (GA_Dummy + 40)
184 /* [] (BOOL) */
185 #define GA_ReadOnly (GA_Dummy + 41)
186 #define GA_Underscore (GA_Dummy + 42)
187 #define GA_ActivateKey (GA_Dummy + 43)
188 #define GA_BackFill (GA_Dummy + 44)
189 #define GA_GadgetHelpText (GA_Dummy + 45)
190 #define GA_UserInput (GA_Dummy + 46)
192 /* The following attributes are AROS specific. */
193 /* [IS.] (struct TextAttr *) TextAttr structure (see <graphics/text.h>) to
194 use for gadget rendering. This attribute is not directly supported by
195 GadgetClass. */
197 /* [I..] (LONG) Choose the placing of the label. GadgetClass does not support
198 this directly. Its subclasses have to take care of that. For possible
199 values see below. */
200 #define GA_LabelPlace (GA_Dummy + 100)
203 /* Placetext values for GA_LabelPlace. */
204 #define GV_LabelPlace_In 1
205 #define GV_LabelPlace_Left 2
206 #define GV_LabelPlace_Right 3
207 #define GV_LabelPlace_Above 4
208 #define GV_LabelPlace_Below 5
211 /************* Methods for GadgetClass and its subclasses. ************/
213 /* This method is used to test, if a mouse-click hit the gadget. You return
214 GMR_GADGETHIT (see below), if you were hit and 0UL otherwise. Note that you
215 have to test, if you were hit, no matter if you are disabled or not. */
216 #define GM_HITTEST 0UL
217 struct gpHitTest
219 STACKULONG MethodID; /* GM_HITEST or GM_HELPTEST */
220 struct GadgetInfo *gpht_GInfo; /* see <intuition/cghooks.h> */
222 /* These values are relative to the gadget select box for GM_HITTEST. For
223 GM_HELPTEST they are relative to the bounding box (which is often
224 equal to the select box). */
225 struct
227 STACKWORD X;
228 STACKWORD Y;
229 } gpht_Mouse;
231 #define GMR_GADGETHIT 0x00000004
234 /* This method is invoked to draw the gadget into a rastport. */
235 #define GM_RENDER 1 /* draw yourself in the right state */
236 struct gpRender
238 STACKULONG MethodID; /* GM_RENDER */
239 struct GadgetInfo *gpr_GInfo; /* see <intuition/cghooks.h> */
240 struct RastPort *gpr_RPort; /* RastPort (see <graphics/rastport.h>) to
241 render into. */
242 STACKLONG gpr_Redraw; /* see below */
244 /* gpr_Redraw. Not all of these values make sense for all gadgets. */
245 #define GREDRAW_TOGGLE 0 /* Just toggle the status. */
246 #define GREDRAW_REDRAW 1 /* Redraw the whole gadget. */
247 #define GREDRAW_UPDATE 2 /* Some data (eg the level of a slider) was updated.
248 Just redraw the necessary parts. */
251 /* GM_GOACTIVE tells the gadget that it has become active and will receive
252 input from now on from the method GM_HANDLEINPUT. This is stopped by using
253 GM_GOINACTIVE (see below).
254 GM_GOACTIVE and GM_HANDLEINPUT both use the same structure and return the
255 same values, as defined below. */
256 #define GM_GOACTIVE 2
257 #define GM_HANDLEINPUT 3
258 struct gpInput
260 STACKULONG MethodID; /* GM_GOACTIVE or GM_HANDLEINPUT */
261 struct GadgetInfo * gpi_GInfo; /* see <intuition/cghooks.h> */
262 /* Pointer to the InputEvent (see <devices/inputevent.h>) that caused
263 the method to be invoked. */
264 struct InputEvent * gpi_IEvent;
265 /* Pointer to a variable that is to be set by the gadget class, if
266 GMR_VERIFY is returned. The lower 16 bits of this value are returned
267 in the Code field of the IntuiMessage (see <intuition/intuition.h>)
268 passed back to the application. */
269 LONG * gpi_Termination;
271 /* This struct defines the current mouse position, relative to the
272 gadgets' bounding box. */
273 struct
275 STACKWORD X;
276 STACKWORD Y;
277 } gpi_Mouse;
278 /* Pointer to TabletData structure (see <intuition/intuition.h>) or NULL,
279 if this input event did not originate from a tablet that is capable of
280 sending IESUBCLASS_NEWTABLET events. */
281 struct TabletData * gpi_TabletData;
284 /* Return codes for GM_GOACTIVE and GM_HANDLEINPUT. These are actually flags
285 and may be or'ed. */
286 /* Gadget is still alive. */
287 #define GMR_MEACTIVE 0
288 /* Gadget has become inactive, but the input event may not be used again. */
289 #define GMR_NOREUSE (1L<<1)
290 /* Gadget has become inactive, and the input event may be reused by
291 intuition. */
292 #define GMR_REUSE (1L<<2)
293 /* Gadget was selected. Generate IDCMP_GADGETUP message. gpi_Termination must
294 be set. */
295 #define GMR_VERIFY (1L<<3)
297 /* If one of the following two flags is returned, the gadget has become
298 inactive, but the next or previous gadget, which has the GFLG_TABCYCLE flag
299 set is to be activated. */
300 #define GMR_NEXTACTIVE (1L<<4) /* Activate next gadget. */
301 #define GMR_PREVACTIVE (1L<<5) /* Activate previous gadget. */
303 /* See GM_GOACTIVE for explanation. */
304 #define GM_GOINACTIVE 4
305 struct gpGoInactive
307 STACKULONG MethodID; /* GM_GOINACTIVE */
308 struct GadgetInfo *gpgi_GInfo; /* see <intuition/cghooks.h> */
309 /* Boolean field to indicate, who wanted the gadget to go inactive. If
310 this is 1 this method was sent, because intution wants the gadget to
311 go inactive, if it is 0, it was the gadget itself that wanted it. */
312 STACKULONG gpgi_Abort;
316 /* This method is used to determine, if the gadget sends gadget help, if the
317 mouse is at the coordinates specified in the message. Uses gpHitTest (see
318 above) as message structure. Returns one of the value below. */
319 #define GM_HELPTEST 5
321 /* Return codes. */
322 /* The gadget was not hit. */
323 #define GMR_NOHELPHIT ((ULONG)0UL)
324 /* The gadget was hit. The lower word of the Code field of the IntuiMessage
325 (see <intuition/intuition.h>) will be set to -1. */
326 #define GMR_HELPHIT ((ULONG)0xFFFFFFFF)
327 /* The gadget was hit. Pass the lower word, returned by this method to the
328 application by using the Code field of the IntuiMessage. */
329 #define GMR_HELPCODE ((ULONG)0x00010000)
332 /* This method is called by intuition, if on of the GFLG_REL flags or one of
333 the GA_Rel attributes is set and the window size changes or you are added to
334 a window. In this method you should re-evaluate the size of yourself. You
335 are not allowed to do any rendering operation during this method! */
336 #define GM_LAYOUT 6
337 struct gpLayout
339 STACKULONG MethodID; /* GM_LAYOUT */
340 struct GadgetInfo * gpl_GInfo; /* see <intuition/cghooks.h> */
341 /* Boolean that indicated, if this method was invoked, when you are added
342 to a window (TRUE) or if it is called, because the window was resized
343 (FALSE). */
344 STACKULONG gpl_Initial;
348 /* This method is invoked to learn about the sizing requirements of your class,
349 before an object is created. This is AROS specific. */
350 #define GM_DOMAIN 7
351 struct gpDomain
353 STACKULONG MethodID; /* GM_DOMAIN */
354 struct GadgetInfo * gpd_GInfo; /* see <intuition/cghooks.h> */
355 struct RastPort * gpd_RPort; /* RastPort to calculate dimensions for. */
356 STACKLONG gpd_Which; /* see below */
357 struct IBox gpd_Domain; /* Resulting domain. */
358 struct TagItem * gpd_Attrs; /* Additional attributes. None defined,
359 yet. */
362 /* gpd_Which */
363 #define GDOMAIN_MINIMUM 0 /* Calculate minimum size. */
364 #define GDOMAIN_NOMINAL 1 /* Calculate nominal size. */
365 #define GDOMAIN_MAXIMUM 2 /* Calculate maximum size. */
367 /**********************************************************************
368 **************************** ButtonGClass ****************************
369 **********************************************************************/
371 /* ButtonGClass is a subclass of GadgetClass that renders itself as a standard
372 "button" gadget. You may either supply a label attribute (GA_Text,
373 GA_IntuiText or GA_LabelImage) or use the image attributes, but not both
374 kind of attributes together. To use that kind of rendering, use the
375 FrButtonClass instead.
377 This class requires a DrawInfo structure to be passed in with GA_DrawInfo!
380 /**********************************************************************
381 **************************** FrButtonClass ***************************
382 **********************************************************************/
384 /* FrButtonClass is a subclass of ButtonGClass. It can be used to render both,
385 a label and an image. This is normally used to display a standard "bevelled
386 button". To do this, you pass in your label text either as GA_Text or as
387 GA_IntuiText and additionally an image object of FrameIClass (see
388 <intuition/imageclass.h>) as GA_Image. Note that the supplied image must not
389 render at the place the label is rendered in. To accomplish this with
390 FrameIClass, supply the attribute IA_EdgesOnly with the value TRUE to
391 FrameIClass.
393 Note that all images that are passed in actually have to be image objects!
395 This class requires a DrawInfo structure to be passed in with GA_DrawInfo!
398 /**********************************************************************
399 ***************************** PropGClass *****************************
400 **********************************************************************/
402 /* This class defines a standard proportional gadget. */
404 /* Attributes. */
405 #define PGA_Dummy (TAG_USER + 0x31000)
407 /* [IS.] (ULONG) Define in which the direction gadget should stretch.
408 Possible values are FREEVERT and FREEHORIZ (see <intuition/intuition.h>).
410 #define PGA_Freedom (PGA_Dummy + 1)
411 /* [IS.] (BOOL) If set, no border will be rendered. */
412 #define PGA_Borderless (PGA_Dummy + 2)
414 /* The following four attributes should not be used with PGA_Total, PGA_Visible
415 and PGA_Top. */
416 /* [ISG] (UWORD) */
417 #define PGA_HorizPot (PGA_Dummy + 3)
418 /* [ISG] (UWORD) */
419 #define PGA_HorizBody (PGA_Dummy + 4)
420 /* [ISG] (UWORD) */
421 #define PGA_VertPot (PGA_Dummy + 5)
422 /* [ISG] (UWORD) */
423 #define PGA_VertBody (PGA_Dummy + 6)
425 /* The following three attributes should not be used with the PGA_*Pot and
426 PGA_*Body attributes. */
427 /* [IS.] (UWORD) The total number of positions in the gadget. */
428 #define PGA_Total (PGA_Dummy + 7)
429 /* [IS.] (UWORD) The number of visible positions in the gadget. */
430 #define PGA_Visible (PGA_Dummy + 8)
431 /* [ISG] (UWORD) The first visible position. */
432 #define PGA_Top (PGA_Dummy + 9)
434 /* [IS.] (BOOL) If set, this indicated that the new look should be used for
435 rendering. */
436 #define PGA_NewLook (PGA_Dummy + 10)
438 /**********************************************************************
439 ****************************** StrGClass *****************************
440 **********************************************************************/
442 /* StringGClass is just a normal "string" gadget. */
444 /* Attributes. */
445 #define STRINGA_Dummy (TAG_USER + 0x32000)
447 /* [I..] (WORD) Maximum number of characters the string gadget accepts.
448 Default defined below. */
449 #define STRINGA_MaxChars (STRINGA_Dummy + 1)
450 /* [I..] (STRPTR) Buffer for storing the current string of the gadget. */
451 #define STRINGA_Buffer (STRINGA_Dummy + 2)
452 /* [I..] (STRPTR) Buffer for storing the old (undo) string of the gadget. */
453 #define STRINGA_UndoBuffer (STRINGA_Dummy + 3)
454 /* [I..] (STRPTR) Buffer for the class to work with. */
455 #define STRINGA_WorkBuffer (STRINGA_Dummy + 4)
456 /* [IS.] (WORD) Current position of cursor (relative to the beginning of the
457 buffer). */
458 #define STRINGA_BufferPos (STRINGA_Dummy + 5)
459 /* [IS.] (WORD) FIXME */
460 #define STRINGA_DispPos (STRINGA_Dummy + 6)
461 /* [IS.] (struct KeyMap *) KeyMap to use (see <devices/keymaps.h>). */
462 #define STRINGA_AltKeyMap (STRINGA_Dummy + 7)
463 /* [IS.] (struct TextFont *) Font to use for displaying the string (see
464 <graphics/text.h>). */
465 #define STRINGA_Font (STRINGA_Dummy + 8)
466 /* [IS.] (LONG) The lower 16 bits specify the background-pen, the upper 16
467 bits the foreground-pen. The gadget is rendered, using these pens, if the
468 gadget is inactive */
469 #define STRINGA_Pens (STRINGA_Dummy + 9)
470 /* [IS.] (LONG) Like STRINGA_Pens. These pens are used, if the gadget is
471 active. */
472 #define STRINGA_ActivePens (STRINGA_Dummy + 10)
473 /* [I..] (struct Hook *) FIXME */
474 #define STRINGA_EditHook (STRINGA_Dummy + 11)
475 /* [IS.] (ULONG) FIXME */
476 #define STRINGA_EditModes (STRINGA_Dummy + 12)
477 /* [IS.] (BOOL) If this is TRUE, the current character is overwritten, if the
478 use presses a key. Otherwise, the new character is inserted. */
479 #define STRINGA_ReplaceMode (STRINGA_Dummy + 13)
480 /* [IS.] (BOOL) FIXME */
481 #define STRINGA_FixedFieldMode (STRINGA_Dummy + 14)
482 /* [IS.] (BOOL) FIXME */
483 #define STRINGA_NoFilterMode (STRINGA_Dummy + 15)
484 /* [IS.] (UWORD) Where should the text be justified? Use one of
485 GACT_STRINGCENTER, GACT_STRINGLEFT and GACT_STRINGRIGHT (defined in
486 <intuition/intuition.h>). */
487 #define STRINGA_Justification (STRINGA_Dummy + 16)
488 /* [ISG] (LONG) If this is set, the string gadget will only accept numeric
489 values. Argument is the number, the string gadget is to be set to. When
490 getting this attribute, this number is returned. */
491 #define STRINGA_LongVal (STRINGA_Dummy + 17)
492 /* [ISG] (STRPTR) If this is set, the string gadget will accept strings.
493 Argument is a string that is to be copied into the string gadget and its
494 buffer. */
495 #define STRINGA_TextVal (STRINGA_Dummy + 18)
496 /* [IS.] (BOOL) If this is set, pressing the "Help" key, while the gadget is
497 active, will unselect the gadget. */
498 #define STRINGA_ExitHelp (STRINGA_Dummy + 19) /* Exit on "Help" */
500 /* Default, if STRINGA_MaxChars is not set. */
501 #define SG_DEFAULTMAXCHARS (128)
503 /* Gadget layout related attributes. */
504 #define LAYOUTA_Dummy (TAG_USER + 0x38000)
505 /* FIXME */
506 #define LAYOUTA_LayoutObj (LAYOUTA_Dummy + 1)
507 /* FIXME */
508 #define LAYOUTA_Spacing (LAYOUTA_Dummy + 2)
509 /* FIXME (see below) */
510 #define LAYOUTA_Orientation (LAYOUTA_Dummy + 3)
511 /* FIXME */
512 #define LAYOUTA_ChildMaxWidth (LAYOUTA_Dummy + 4)
513 /* FIXME */
514 #define LAYOUTA_ChildMaxHeight (LAYOUTA_Dummy + 5)
516 /* Orientation values. */
517 #define LORIENT_NONE 0
518 #define LORIENT_HORIZ 1
519 #define LORIENT_VERT 2
521 #endif /* INTUITION_GADGETCLASS_H */