]> icculus.org git repositories - divverent/nexuiz.git/blob - data/qcsrc/menu/item.c
support for pointer warping
[divverent/nexuiz.git] / data / qcsrc / menu / item.c
1 #ifdef INTERFACE
2 CLASS(Item) EXTENDS(Object)
3         METHOD(Item, draw, void(entity))
4         METHOD(Item, keyDown, float(entity, float, float, float))
5         METHOD(Item, keyUp, float(entity, float, float, float))
6         METHOD(Item, mouseMove, float(entity, vector))
7         METHOD(Item, mousePress, float(entity, vector))
8         METHOD(Item, mouseDrag, float(entity, vector))
9         METHOD(Item, mouseRelease, float(entity, vector))
10         METHOD(Item, focusEnter, void(entity))
11         METHOD(Item, focusLeave, void(entity))
12         METHOD(Item, resizeNotify, void(entity, vector, vector, vector, vector))
13         METHOD(Item, relinquishFocus, void(entity))
14         METHOD(Item, showNotify, void(entity))
15         METHOD(Item, hideNotify, void(entity))
16         METHOD(Item, toString, string(entity))
17         METHOD(Item, destroy, void(entity))
18         ATTRIB(Item, focused, float, 0)
19         ATTRIB(Item, focusable, float, 0)
20         ATTRIB(Item, parent, entity, NULL)
21         ATTRIB(Item, preferredFocusPriority, float, 0)
22         ATTRIB(Item, origin, vector, '0 0 0')
23         ATTRIB(Item, size, vector, '0 0 0')
24 ENDCLASS(Item)
25 #endif
26
27 #ifdef IMPLEMENTATION
28 void destroyItem(entity me)
29 {
30         // free memory associated with me
31 }
32
33 void relinquishFocusItem(entity me)
34 {
35         if(me.parent)
36                 if(me.parent.instanceOfContainer)
37                         me.parent.setFocus(me.parent, NULL);
38 }
39
40 void resizeNotifyItem(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
41 {
42         me.origin = absOrigin;
43         me.size = absSize;
44 }
45
46 void drawItem(entity me)
47 {
48 }
49
50 void showNotifyItem(entity me)
51 {
52 }
53
54 void hideNotifyItem(entity me)
55 {
56 }
57
58 float keyDownItem(entity me, float scan, float ascii, float shift)
59 {
60         return 0; // unhandled
61 }
62
63 float keyUpItem(entity me, float scan, float ascii, float shift)
64 {
65         return 0; // unhandled
66 }
67
68 float mouseMoveItem(entity me, vector pos)
69 {
70         return 0; // unhandled
71 }
72
73 float mousePressItem(entity me, vector pos)
74 {
75         return 0; // unhandled
76 }
77
78 float mouseDragItem(entity me, vector pos)
79 {
80         return 0; // unhandled
81 }
82
83 float mouseReleaseItem(entity me, vector pos)
84 {
85         return 0; // unhandled
86 }
87
88 void focusEnterItem(entity me)
89 {
90 }
91
92 void focusLeaveItem(entity me)
93 {
94 }
95
96 string toStringItem(entity me)
97 {
98         return string_null;
99 }
100 #endif