1 #ifndef _GWEN_USER_INTERFACE_H
2 #define _GWEN_USER_INTERFACE_H
3 
4 struct GwenInternalData;
5 
6 typedef void (*b3ComboBoxCallback)(int combobox, const char* item);
7 typedef void (*b3ToggleButtonCallback)(int button, int state);
8 typedef void (*b3FileOpenCallback)();
9 typedef void (*b3QuitCallback)();
10 
11 namespace Gwen
12 {
13 namespace Renderer
14 {
15 class Base;
16 };
17 };  // namespace Gwen
18 class GwenUserInterface
19 {
20 	GwenInternalData* m_data;
21 
22 public:
23 	GwenUserInterface();
24 
25 	virtual ~GwenUserInterface();
26 
27 	void init(int width, int height, Gwen::Renderer::Base* gwenRenderer, float retinaScale);
28 	void exit();
29 	void setFocus();
30 	void forceUpdateScrollBars();
31 
32 	void draw(int width, int height);
33 
34 	void resize(int width, int height);
35 
36 	bool mouseMoveCallback(float x, float y);
37 	bool mouseButtonCallback(int button, int state, float x, float y);
38 	bool keyboardCallback(int key, int state);
39 
40 	void setToggleButtonCallback(b3ToggleButtonCallback callback);
41 	b3ToggleButtonCallback getToggleButtonCallback();
42 
43 	void registerToggleButton2(int buttonId, const char* name);
44 
45 	void setComboBoxCallback(b3ComboBoxCallback callback);
46 	b3ComboBoxCallback getComboBoxCallback();
47 	void registerComboBox2(int buttonId, int numItems, const char** items, int startItem = 0);
48 
49 	void setStatusBarMessage(const char* message, bool isLeft = true);
50 
51 	void textOutput(const char* msg);
52 	void setExampleDescription(const char* msg);
53 
54 	void registerFileOpenCallback(b3FileOpenCallback callback);
55 	void registerQuitCallback(b3QuitCallback callback);
56 
getInternalData()57 	GwenInternalData* getInternalData()
58 	{
59 		return m_data;
60 	}
61 };
62 
63 #endif  //_GWEN_USER_INTERFACE_H
64