22 #ifndef FIFE_VIDEO_GUI_GUICHANMANAGER_H
23 #define FIFE_VIDEO_GUI_GUICHANMANAGER_H
29 #include <guichan.hpp>
35 #include "util/base/fife_stdint.h"
36 #include "util/base/singleton.h"
37 #include "eventchannel/sdl/ec_isdleventlistener.h"
39 #include "gui/guimanager.h"
66 class GUIChanManager :
68 public DynamicSingleton<GUIChanManager>
76 virtual ~GUIChanManager();
82 gcn::Gui* getGuichanGUI()
const;
95 void init(
const std::string& backend, int32_t screenWidth, int32_t screenHeight);
104 void resizeTopContainer(uint32_t x, uint32_t y, uint32_t width, uint32_t height);
110 void add(gcn::Widget* widget);
115 void remove(gcn::Widget* widget);
120 gcn::Container* getTopContainer()
const {
return m_gcn_topcontainer; }
126 Console* getConsole()
const {
return m_console; };
130 GuiFont* setDefaultFont(
const std::string& path, uint32_t size,
const std::string& glyphs);
134 GuiFont* getDefaultFont() {
return m_defaultfont; };
138 GuiFont* createFont(
const std::string& path =
"", uint32_t size = 0,
const std::string& glyphs =
"");
142 void releaseFont(GuiFont* font);
144 void invalidateFonts();
146 virtual bool onSdlEvent(SDL_Event& evt);
148 KeyEvent translateKeyEvent(
const gcn::KeyEvent& evt);
149 MouseEvent translateMouseEvent(
const gcn::MouseEvent& evt);
152 static int32_t convertGuichanKeyToFifeKey(int32_t value);
158 gcn::Graphics* m_gui_graphics;
160 gcn::FocusHandler* m_focushandler;
162 gcn::Container* m_gcn_topcontainer;
164 GuiImageLoader* m_imgloader;
166 gcn::SDLInput *m_input;
170 GuiFont* m_defaultfont;
172 std::vector<GuiFont*> m_fonts;
174 std::set<gcn::Widget*> m_widgets;
181 std::string m_fontpath;
182 std::string m_fontglyphs;
186 bool m_logic_executed;
credit to phoku for his NodeDisplay example which the visitor code is adapted from ( he coded the qua...