#ifndef GUI_H #define GUI_H // TODO: Remove temporary workaround for CEGUI + GCC 4.6 #include #include class GUI { protected: CEGUI::Window *wnd; bool _showing; public: static CEGUI::Window *root; virtual ~GUI() {}; static void init(); static void pre_render(); static void render(); virtual void update() = 0; virtual void show(); virtual void hide(); bool showing(); }; class ConsoleWindow : public GUI { private: CEGUI::Window *editbox; CEGUI::Listbox *listbox; bool clicked(const CEGUI::EventArgs& e); bool keydown(const CEGUI::EventArgs& e); void erase_editbox_text(); void handle_input(); public: ConsoleWindow(); virtual ~ConsoleWindow(); virtual void update(); }; class RaiseWindow : public GUI { private: CEGUI::PushButton *btn; CEGUI::Scrollbar *radius_sb; CEGUI::Window *radius_sb_lbl; CEGUI::Scrollbar *focus_sb; CEGUI::Window *focus_sb_lbl; CEGUI::Scrollbar *strength_sb; CEGUI::Window *strength_sb_lbl; static float radius, focus, strength; public: RaiseWindow(); virtual ~RaiseWindow(); virtual void update(); float get_radius(); float get_focus(); float get_strength(); }; #endif