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 UITHEME_H 00023 #define UITHEME_H 00024 00025 #include "SDL/SDL.h" 00026 00027 class ThemeManager; 00028 00045 class DECLSPEC UiTheme 00046 { 00047 public: 00053 DECLSPEC UiTheme( const char *name ); 00054 virtual DECLSPEC ~UiTheme(); 00055 00063 virtual const char *getString( const char *usage, int *length = 0 ) = 0; 00071 virtual Uint32 getUint32( const char *usage, bool *found = 0 ) = 0; 00079 virtual bool getBool( const char *usage, bool *found = 0 ) = 0; 00085 virtual SDL_Rect getRect( const char *usage ) = 0; 00093 virtual const char *translate( const char *text ) = 0; 00094 00099 const char *getName() const { return chName; } 00100 protected: 00107 virtual Uint32 onLoad(bool hidden) = 0; 00108 // virtual Uint32 onSave() = 0; 00113 virtual Uint32 onActivate() = 0; 00118 virtual Uint32 onDeactivate() = 0; 00122 virtual bool isLoaded() = 0; 00123 private: 00124 char *chName; 00125 00126 friend class ThemeManager; 00127 }; 00128 00129 #endif