nuclear@3: #ifndef THEME_H_ nuclear@3: #define THEME_H_ nuclear@3: nuclear@3: #include nuclear@3: #include nuclear@3: nuclear@3: namespace gameui { nuclear@3: nuclear@3: class Widget; nuclear@3: nuclear@3: typedef void (*widget_draw_func)(const Widget*); nuclear@3: nuclear@3: void default_draw_func(const Widget *w); nuclear@3: nuclear@3: class Theme { nuclear@3: private: nuclear@3: void *so; nuclear@3: std::map draw_func; nuclear@3: nuclear@3: public: nuclear@3: Theme(); nuclear@3: ~Theme(); nuclear@3: nuclear@3: bool load(const char *name); nuclear@3: nuclear@3: widget_draw_func get_draw_func(const char *type) const; nuclear@3: }; nuclear@3: nuclear@3: extern Theme *theme; // the current theme nuclear@3: nuclear@3: } // namespace gameui nuclear@3: nuclear@3: #endif // THEME_H_