gameui
annotate src/theme.h @ 5:5a84873185ff
rudimentary theme plugin system and other minor fixes
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 22 Mar 2014 01:50:01 +0200 |
parents | e0916bb20b7f |
children |
rev | line source |
---|---|
nuclear@3 | 1 #ifndef THEME_H_ |
nuclear@3 | 2 #define THEME_H_ |
nuclear@3 | 3 |
nuclear@3 | 4 #include <string> |
nuclear@3 | 5 #include <map> |
nuclear@5 | 6 #include "goatkit.h" |
nuclear@3 | 7 |
nuclear@4 | 8 namespace goatkit { |
nuclear@3 | 9 |
nuclear@3 | 10 class Widget; |
nuclear@3 | 11 |
nuclear@5 | 12 void add_theme_path(const char *path); |
nuclear@3 | 13 void default_draw_func(const Widget *w); |
nuclear@3 | 14 |
nuclear@3 | 15 class Theme { |
nuclear@3 | 16 private: |
nuclear@3 | 17 void *so; |
nuclear@5 | 18 WidgetDrawFunc (*lookup_theme_draw_func)(const char*); |
nuclear@5 | 19 mutable std::map<std::string, WidgetDrawFunc> func_cache; |
nuclear@3 | 20 |
nuclear@3 | 21 public: |
nuclear@3 | 22 Theme(); |
nuclear@3 | 23 ~Theme(); |
nuclear@3 | 24 |
nuclear@3 | 25 bool load(const char *name); |
nuclear@5 | 26 void unload(); |
nuclear@3 | 27 |
nuclear@5 | 28 WidgetDrawFunc get_draw_func(const char *type) const; |
nuclear@3 | 29 }; |
nuclear@3 | 30 |
nuclear@3 | 31 extern Theme *theme; // the current theme |
nuclear@3 | 32 |
nuclear@4 | 33 } // namespace goatkit |
nuclear@3 | 34 |
nuclear@3 | 35 #endif // THEME_H_ |