Check if volumes are bootable by checking whether C/Shell is compatible with
[cake.git] / rom / intuition / inputhandler.h
blobeb383fb3196cf787e15f2fea43a4a19bcbdc967d
1 #ifndef INPUTHANDLER_H
2 #define INPUTHANDLER_H
4 /*
5 Copyright 1995-2003, The AROS Development Team. All rights reserved.
6 Copyright 2001-2003, The MorphOS Development Team. All Rights Reserved.
7 $Id$
8 */
10 #ifndef AROS_ASMCALL_H
11 # include <aros/asmcall.h>
12 #endif
14 #ifndef INTUITION_CGHOOKS_H
15 # include <intuition/cghooks.h>
16 #endif
18 // FIXME: cannot enable PROPHACK on AROS because of MOS-specific code
19 //#define PROPHACK
21 struct IIHData
23 struct IntuitionBase *IntuitionBase;
24 struct MsgPort *IntuiReplyPort;
25 struct MinList IntuiActionQueue;
26 /* Inputevents allocated from the input.device task but outside our
27 * handler are not sent in the input chain until the next time our
28 * handler exits. So they must not be freed at the start of our handler.
29 * Thus we maintain two lists of allocated input events. The 'New' list
30 * contains events that have not yet been propagated, and the other one
31 * contains those that have. At the beginning of our handler, the second
32 * list is freed. At the end, the first one is transfered in the second.
33 * When an event is allocated, it is put in the first list.
35 struct MinList NewAllocatedInputEventList;
36 struct MinList AllocatedInputEventList;
37 struct Gadget *ActiveGadget;
38 struct Gadget *ActiveSysGadget;
39 struct Gadget *MasterDragGadget;
40 struct Gadget *MasterSizeGadget;
41 struct GadgetInfo GadgetInfo;
42 struct GadgetInfo BoxGadgetInfo;
43 struct RastPort GadgetInfoRastPort;
44 struct InputEvent *FreeInputEvents;
45 struct InputEvent *ReturnInputEvent;
46 struct InputEvent **EndInputEventChain;
47 struct Task *InputDeviceTask;
48 struct Window *MenuWindow; /* The window for which the menus are actually active (on screen) */
49 struct Window *NewActWindow;
50 struct IENewTablet *ActEventTablet; /* not cacheable, valid when processing a single event */
51 #ifdef PROPHACK
52 struct Task *PropTask;
53 #endif
54 APTR InputEventMemPool;
55 APTR ActionsMemPool;
56 WORD LastMouseX;
57 WORD LastMouseY;
58 WORD DeltaMouseX;
59 WORD DeltaMouseY;
60 WORD DeltaMouseX_Correction;
61 WORD DeltaMouseY_Correction;
62 BOOL MouseBoundsActiveFlag;
63 WORD MouseBoundsKillTimer;
64 LONG MouseBoundsLeft;
65 LONG MouseBoundsTop;
66 LONG MouseBoundsRight;
67 LONG MouseBoundsBottom;
68 UWORD ActQualifier;
69 UWORD PrevKeyMouseState;
70 UWORD ActKeyMouseState;
71 struct Gadget *LastHelpGadget;
72 struct Window *LastHelpWindow;
73 UQUAD HelpGadgetFindTime;
74 UQUAD TitlebarAppearTime;
75 BOOL TitlebarOnTop;
76 BOOL MouseWasInsideBoolGadget;
80 struct GeneratedInputEvent
82 struct MinNode node;
83 struct InputEvent ie;
86 struct Interrupt *InitIIH(struct IntuitionBase *IntuitionBase);
87 VOID CleanupIIH(struct Interrupt *iihandler, struct IntuitionBase *IntuitionBase);
90 AROS_UFP2(struct InputEvent *, IntuiInputHandler,
91 AROS_UFPA(struct InputEvent *, oldchain, A0),
92 AROS_UFPA(struct IIHData *, iihdata, A1)
95 #endif /* INPUTHANDLER_H */