New bitmap method SetRGBConversionFunction which can be used to
[tangerine.git] / rom / intuition / inputhandler.h
blob51fed21dd5f027d0dd3f992ecc4f522a6abd9948
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 RastPort GadgetInfoRastPort;
43 struct InputEvent *FreeInputEvents;
44 struct InputEvent *ReturnInputEvent;
45 struct InputEvent **EndInputEventChain;
46 struct Task *InputDeviceTask;
47 struct Window *MenuWindow; /* The window for which the menus are actually active (on screen) */
48 struct Window *NewActWindow;
49 struct IENewTablet *ActEventTablet; /* not cacheable, valid when processing a single event */
50 #ifdef PROPHACK
51 struct Task *PropTask;
52 #endif
53 APTR InputEventMemPool;
54 APTR ActionsMemPool;
55 WORD LastMouseX;
56 WORD LastMouseY;
57 WORD DeltaMouseX;
58 WORD DeltaMouseY;
59 WORD DeltaMouseX_Correction;
60 WORD DeltaMouseY_Correction;
61 BOOL MouseBoundsActiveFlag;
62 WORD MouseBoundsKillTimer;
63 LONG MouseBoundsLeft;
64 LONG MouseBoundsTop;
65 LONG MouseBoundsRight;
66 LONG MouseBoundsBottom;
67 UWORD ActQualifier;
68 UWORD PrevKeyMouseState;
69 UWORD ActKeyMouseState;
70 struct Gadget *LastHelpGadget;
71 struct Window *LastHelpWindow;
72 UQUAD HelpGadgetFindTime;
73 UQUAD TitlebarAppearTime;
74 BOOL TitlebarOnTop;
75 BOOL MouseWasInsideBoolGadget;
79 struct GeneratedInputEvent
81 struct MinNode node;
82 struct InputEvent ie;
85 struct Interrupt *InitIIH(struct IntuitionBase *IntuitionBase);
86 VOID CleanupIIH(struct Interrupt *iihandler, struct IntuitionBase *IntuitionBase);
89 AROS_UFP2(struct InputEvent *, IntuiInputHandler,
90 AROS_UFPA(struct InputEvent *, oldchain, A0),
91 AROS_UFPA(struct IIHData *, iihdata, A1)
94 #endif /* INPUTHANDLER_H */