istereo2

annotate libs/goatkit/theme.h @ 8:661bf09db398

- replaced Quartz timer with cross-platform timer code - protected goatkit builtin theme function from being optimized out
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 24 Sep 2015 07:09:37 +0300
parents 3bccfc7d10fe
children 03cc3b1884d1
rev   line source
nuclear@6 1 /*
nuclear@6 2 GoatKit - a themable/animated widget toolkit for games
nuclear@6 3 Copyright (C) 2014 John Tsiombikas <nuclear@member.fsf.org>
nuclear@6 4
nuclear@6 5 This program is free software: you can redistribute it and/or modify
nuclear@6 6 it under the terms of the GNU Lesser General Public License as published by
nuclear@6 7 the Free Software Foundation, either version 3 of the License, or
nuclear@6 8 (at your option) any later version.
nuclear@6 9
nuclear@6 10 This program is distributed in the hope that it will be useful,
nuclear@6 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
nuclear@6 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nuclear@6 13 GNU Lesser General Public License for more details.
nuclear@6 14
nuclear@6 15 You should have received a copy of the GNU Lesser General Public License
nuclear@6 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
nuclear@6 17 */
nuclear@6 18 #ifndef THEME_H_
nuclear@6 19 #define THEME_H_
nuclear@6 20
nuclear@7 21 #define GOATKIT_THEME_BUILTIN "GOATKIT_THEME_BUILTIN"
nuclear@7 22
nuclear@6 23 namespace goatkit {
nuclear@6 24
nuclear@6 25 class Widget;
nuclear@6 26
nuclear@6 27 typedef void (*WidgetDrawFunc)(const Widget*);
nuclear@6 28
nuclear@6 29 void add_theme_path(const char *path);
nuclear@6 30 void default_draw_func(const Widget *w);
nuclear@6 31
nuclear@6 32 struct ThemeImpl;
nuclear@6 33
nuclear@6 34 class Theme {
nuclear@6 35 private:
nuclear@6 36 ThemeImpl *impl;
nuclear@6 37
nuclear@6 38 public:
nuclear@6 39 Theme();
nuclear@6 40 ~Theme();
nuclear@6 41
nuclear@6 42 bool load(const char *name);
nuclear@6 43 void unload();
nuclear@6 44
nuclear@6 45 WidgetDrawFunc get_draw_func(const char *type) const;
nuclear@6 46 };
nuclear@6 47
nuclear@6 48 extern Theme *theme; // the current theme
nuclear@6 49
nuclear@6 50 } // namespace goatkit
nuclear@6 51
nuclear@6 52 #endif // THEME_H_