LGI  1.0
Lliurex Graphic Interface
window.hpp
Go to the documentation of this file.
1 
2 #ifndef _LGI_WINDOW_
3 #define _LGI_WINDOW_
4 
5 #include "widget.hpp"
6 #include "events.hpp"
7 #include "layer.hpp"
8 #include "message.hpp"
9 #include "cursor.hpp"
10 
12 #define LGI_FLAG_RESIZABLE 0x01
13 #define LGI_FLAG_NO_BORDER 0x02
14 
16 #define LGI_DISPATCH_EVENTS_FULL 0x01
17 #define LGI_DISPATCH_EVENTS_WAIT 0x02
18 
19 
21 #define LGI_BUTTON_LEFT 0x01
22 #define LGI_BUTTON_MIDDLE 0x02
23 #define LGI_BUTTON_RIGHT 0x03
24 #define LGI_BUTTON_SCROLL_UP 0x04
25 #define LGI_BUTTON_SCROLL_DOWN 0x05
26 
28 #define LGI_CURSOR_MODE_NONE 0x00
29 #define LGI_CURSOR_MODE_SYSTEM 0x01
30 #define LGI_CURSOR_MODE_CUSTOM 0x02
31 
33 #define LGI_CURSOR_DEFAULT 0x00
34 #define LGI_CURSOR_BUSY 0x01
35 #define LGI_CURSOR_HALF_BUSY 0x02
36 #define LGI_CURSOR_OPEN_HAND 0x03
37 #define LGI_CURSOR_CLOSE_HAND 0x04
38 #define LGI_CURSOR_HAND 0x05
39 #define LGI_CURSOR_CROSS 0x06
40 #define LGI_CURSOR_FORBIDDEN 0x07
41 #define LGI_CURSOR_QUESTION_ARROW 0x08
42 #define LGI_CURSOR_FLEUR 0x09
43 
45 #define LGI_KEY_a 0x01
46 #define LGI_KEY_b 0x02
47 #define LGI_KEY_c 0x03
48 #define LGI_KEY_d 0x04
49 #define LGI_KEY_e 0x05
50 #define LGI_KEY_f 0x06
51 #define LGI_KEY_g 0x07
52 #define LGI_KEY_h 0x08
53 #define LGI_KEY_i 0x09
54 #define LGI_KEY_j 0x0a
55 #define LGI_KEY_k 0x0b
56 #define LGI_KEY_l 0x0c
57 #define LGI_KEY_m 0x0d
58 #define LGI_KEY_n 0x0e
59 #define LGI_KEY_o 0x0f
60 #define LGI_KEY_p 0x10
61 #define LGI_KEY_q 0x11
62 #define LGI_KEY_r 0x12
63 #define LGI_KEY_s 0x13
64 #define LGI_KEY_t 0x14
65 #define LGI_KEY_u 0x15
66 #define LGI_KEY_v 0x16
67 #define LGI_KEY_w 0x17
68 #define LGI_KEY_x 0x18
69 #define LGI_KEY_y 0x19
70 #define LGI_KEY_z 0x1a
71 
72 #define LGI_KEY_0 0x1b
73 #define LGI_KEY_1 0x1c
74 #define LGI_KEY_2 0x1d
75 #define LGI_KEY_3 0x1e
76 #define LGI_KEY_4 0x1f
77 #define LGI_KEY_5 0x20
78 #define LGI_KEY_6 0x21
79 #define LGI_KEY_7 0x22
80 #define LGI_KEY_8 0x23
81 #define LGI_KEY_9 0x24
82 
83 #define LGI_KEY_LEFT 0x25
84 #define LGI_KEY_RIGHT 0x26
85 #define LGI_KEY_UP 0x27
86 #define LGI_KEY_DOWN 0x28
87 
88 
89 #define LGI_KEY_F1 0x29
90 #define LGI_KEY_F2 0x2a
91 #define LGI_KEY_F3 0x2b
92 #define LGI_KEY_F4 0x2c
93 #define LGI_KEY_F5 0x2d
94 #define LGI_KEY_F6 0x2e
95 #define LGI_KEY_F7 0x2f
96 #define LGI_KEY_F8 0x30
97 #define LGI_KEY_F9 0x31
98 #define LGI_KEY_F10 0x32
99 #define LGI_KEY_F11 0x33
100 #define LGI_KEY_F12 0x34
101 
102 #define LGI_KEY_ENTER 0x35
103 #define LGI_KEY_SPACE 0x36
104 
105 #define LGI_KEY_PLUS 0x37
106 #define LGI_KEY_MINUS 0x38
107 
108 #define LGI_KEY_ESCAPE 0x39
109 
110 #define LGI_KEY_BACKSPACE 0x3a
111 
112 #define LGI_KEY_HOME 0x3b
113 #define LGI_KEY_END 0x3c
114 #define LGI_KEY_INSERT 0x3d
115 #define LGI_KEY_DELETE 0x3e
116 
117 #define LGI_KEY_LEFT_CTRL 0x3f
118 #define LGI_KEY_RIGHT_CTRL 0x40
119 #define LGI_KEY_LEFT_SHIFT 0x41
120 #define LGI_KEY_RIGHT_SHIFT 0x42
121 #define LGI_KEY_LEFT_SUPER 0x43
122 #define LGI_KEY_RIGHT_SUPER 0x44
123 #define LGI_KEY_LEFT_ALT 0x45
124 #define LGI_KEY_RIGHT_ALT 0x46
125 
126 #define LGI_KEY_PAGE_UP 0x47
127 #define LGI_KEY_PAGE_DOWN 0x48
128 
129 #define LGI_KEY_TAB 0x49
130 
131 namespace net
132 {
133  namespace lliurex
134  {
135  namespace lgi
136  {
137  class RawEvent
138  {
139  public:
143  };
144 
146  {
147 
148  public:
149 
150 
151 
155  virtual ~BaseWindow() {};
156 
157 
163  virtual void Destroy()=0;
164 
168  virtual void SetTitle(const char * title)=0;
169 
176  virtual void GetEvent()=0;
177 
184  virtual void DispatchEvents(int mode)=0;
185 
191  virtual void PushEvent(RawEvent * raw_event)=0;
192 
197  virtual RawEvent * PopEvent()=0;
198 
203  virtual void ProcessEvent(RawEvent * raw_event)=0;
204 
209  virtual void Flip()=0;
210 
211  virtual int GetWidth()=0;
212  virtual int GetHeight()=0;
213 
214 
215  virtual void SetSize(int width,int height)=0;
216 
217 
218  virtual void AddLayer(Layer * layer)=0;
219  virtual void RemoveLayer(Layer * layer)=0;
220  virtual void ShowLayer(Layer * layer)=0;
221  virtual void HideLayer(Layer * layer)=0;
222 
223  virtual void SetCursor(int type)=0;
224  virtual void SetCursorMode(int mode)=0;
225  virtual void SetCustomCursor(BaseCursor * cursor)=0;
226 
227  virtual void SetDoubleClickTime(int ms)=0;
228 
232  virtual void SendMessage(Layer * layer,Widget * widget,Message * msg)=0;
233 
238  virtual Widget * GetFocus()=0;
239 
244  virtual void NextFocus(Layer * layer=nullptr)=0;
245 
246 
247  };
248  }
249  }
250 }
251 
252 
253 
254 
255 #endif
virtual ~BaseWindow()
Definition: window.hpp:155
Definition: layer.hpp:23
Definition: window.hpp:145
BaseEvent * event
Definition: window.hpp:142
Widget * widget
Definition: window.hpp:140
Definition: application.hpp:9
Definition: cursor.hpp:13
Layer * layer
Definition: window.hpp:141
Definition: events.hpp:51
Definition: widget.hpp:18
Definition: message.hpp:83
Definition: window.hpp:137