diff options
author | Ira Rice <irarice@gmail.com> | 2009-03-11 14:38:26 -0600 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2009-03-11 14:38:26 -0600 |
commit | 2a6b52f6467bfb4babb2a33205752f58554b651b (patch) | |
tree | 62934e146a8cb5a9be2a786d1f45795ffea51731 /src/gui/skin.h | |
parent | bb45b6a8ca4ea751bceb5853060251a3eefcd4fc (diff) | |
download | mana-2a6b52f6467bfb4babb2a33205752f58554b651b.tar.gz mana-2a6b52f6467bfb4babb2a33205752f58554b651b.tar.bz2 mana-2a6b52f6467bfb4babb2a33205752f58554b651b.tar.xz mana-2a6b52f6467bfb4babb2a33205752f58554b651b.zip |
Moved the Skin class outside of the Window class, in order to allow
other widget containers to use skins as well, and to make it easier to
extend later.
Signed-off-by: Ira Rice <irarice@gmail.com>
Diffstat (limited to 'src/gui/skin.h')
-rw-r--r-- | src/gui/skin.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/gui/skin.h b/src/gui/skin.h new file mode 100644 index 00000000..6dddb4a8 --- /dev/null +++ b/src/gui/skin.h @@ -0,0 +1,67 @@ +/* + * Aethyra + * Copyright (C) 2009 Aethyra Development Team + * + * This file is part of Aethyra. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef SKIN_H +#define SKIN_H + +#include <map> +#include <string> + +#include "../graphics.h" + +class Image; + +class Skin +{ + public: + Skin(); + ~Skin(); + + std::string mName; /**< Name of the skin to use */ + ImageRect border; /**< The window border and background */ + Image *closeImage; /**< Close Button Image */ + int instances; +}; + +// Map containing all window skins +typedef std::map<std::string, Skin*> Skins; + +// Iterator for window skins +typedef Skins::iterator SkinIterator; + +class SkinLoader +{ + public: + SkinLoader(); + ~SkinLoader(); + + /** + * Loads a skin + */ + Skin* load(const std::string &filename); + + private: + Skins mSkins; +}; + +extern SkinLoader* skinLoader; + +#endif |