00001 /********************************************************************************/ 00002 /* */ 00003 /* Netrinjo-Engine - a library for game-development */ 00004 /* Copyright (C) 2005 by Tobias Nadler */ 00005 /* */ 00006 /* This library is free software; you can redistribute it and/or */ 00007 /* modify it under the terms of the GNU Lesser General Public */ 00008 /* License as published by the Free Software Foundation; either */ 00009 /* version 2.1 of the License, or (at your option) any later version. */ 00010 /* */ 00011 /* This library is distributed in the hope that it will be useful, */ 00012 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 00013 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ 00014 /* Lesser General Public License for more details. */ 00015 /* */ 00016 /* You should have received a copy of the GNU Lesser General Public */ 00017 /* License along with this library; if not, write to the Free Software */ 00018 /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 00019 /* */ 00020 /********************************************************************************/ 00021 00022 #ifndef THEMEMANAGER_H 00023 #define THEMEMANAGER_H 00024 00025 #include <list> 00026 00027 using namespace std; 00028 00029 #include "uitheme.h" 00030 00050 class DECLSPEC ThemeManager 00051 { 00052 public: 00057 enum LoadScheme{lsOnAppStart, lsOnActivate}; 00058 00063 DECLSPEC ThemeManager( LoadScheme ls ); 00064 virtual DECLSPEC ~ThemeManager(); 00065 00071 DECLSPEC bool setActiveTheme( UiTheme *t, bool hidden ); 00078 DECLSPEC void setLoadScheme( LoadScheme ls ); 00083 UiTheme *getActiveTheme() { return thActive; } 00088 DECLSPEC UiTheme *getThemeByName( const char *name ); 00089 00093 static ThemeManager *the; 00101 DECLSPEC static ThemeManager *getThe(); 00102 private: 00103 typedef list<UiTheme*>::iterator ThemeIter; 00104 list<UiTheme*> lThemes; 00105 00106 UiTheme *thActive; 00107 LoadScheme lsThemes; 00108 00109 friend class UiTheme; 00110 }; 00111 00112 #endif