try to make sure compiler/include/mmakefile is always refreshed correctly.
[AROS.git] / rom / intuition / inputhandler.h
blob5cc072db22a01174a911624ce6432387d6b46b31
1 #ifndef INPUTHANDLER_H
2 #define INPUTHANDLER_H
4 /*
5 Copyright © 1995-2011, 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 DeltaMouseX;
57 WORD DeltaMouseY;
58 WORD DeltaMouseX_Correction;
59 WORD DeltaMouseY_Correction;
60 BOOL MouseBoundsActiveFlag;
61 WORD MouseBoundsKillTimer;
62 LONG MouseBoundsLeft;
63 LONG MouseBoundsTop;
64 LONG MouseBoundsRight;
65 LONG MouseBoundsBottom;
66 UWORD ActQualifier;
67 UWORD PrevKeyMouseState;
68 UWORD ActKeyMouseState;
69 struct Gadget *LastHelpGadget;
70 struct Window *LastHelpWindow;
71 UQUAD HelpGadgetFindTime;
72 UQUAD TitlebarAppearTime;
73 BOOL TitlebarOnTop;
74 BOOL MouseWasInsideBoolGadget;
75 struct Screen *ScreenDrag;
76 WORD ScreenDragPointX;
77 WORD ScreenDragPointY;
78 BOOL SwitchedMonitor;
81 struct GeneratedInputEvent
83 struct MinNode node;
84 struct InputEvent ie;
87 struct Interrupt *InitIIH(struct IntuitionBase *IntuitionBase);
88 VOID CleanupIIH(struct Interrupt *iihandler, struct IntuitionBase *IntuitionBase);
91 AROS_UFP2(struct InputEvent *, IntuiInputHandler,
92 AROS_UFPA(struct InputEvent *, oldchain, A0),
93 AROS_UFPA(struct IIHData *, iihdata, A1)
96 #endif /* INPUTHANDLER_H */