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_