497d1cf661699974a640bcf86e28a22b8d840e57
[xonotic/xonotic-data.pk3dir.git] / 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         ATTRIB(Item, tooltip, string, string_null)
25 ENDCLASS(Item)
26 #endif
27
28 #ifdef IMPLEMENTATION
29 void Item_destroy(entity me)
30 {
31         // free memory associated with me
32 }
33
34 void Item_relinquishFocus(entity me)
35 {
36         if(me.parent)
37                 if(me.parent.instanceOfContainer)
38                         me.parent.setFocus(me.parent, NULL);
39 }
40
41 void Item_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
42 {
43         me.origin = absOrigin;
44         me.size = absSize;
45         // me.tooltip = "The quick brown fox jumped over the lazy sleeping dog's back then sat on a tack. Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.";
46 }
47
48 void Item_draw(entity me)
49 {
50 }
51
52 void Item_showNotify(entity me)
53 {
54 }
55
56 void Item_hideNotify(entity me)
57 {
58 }
59
60 float Item_keyDown(entity me, float scan, float ascii, float shift)
61 {
62         return 0; // unhandled
63 }
64
65 float Item_keyUp(entity me, float scan, float ascii, float shift)
66 {
67         return 0; // unhandled
68 }
69
70 float Item_mouseMove(entity me, vector pos)
71 {
72         return 0; // unhandled
73 }
74
75 float Item_mousePress(entity me, vector pos)
76 {
77         return 0; // unhandled
78 }
79
80 float Item_mouseDrag(entity me, vector pos)
81 {
82         return 0; // unhandled
83 }
84
85 float Item_mouseRelease(entity me, vector pos)
86 {
87         return 0; // unhandled
88 }
89
90 void Item_focusEnter(entity me)
91 {
92 }
93
94 void Item_focusLeave(entity me)
95 {
96 }
97
98 string Item_toString(entity me)
99 {
100         return string_null;
101 }
102 #endif