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