diff options
author | Jared Adams <jaxad0127@gmail.com> | 2010-03-05 07:39:43 -0700 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2010-03-05 07:58:02 -0700 |
commit | 78ab7c7a2877efd245293ad00cd36bcaa8646507 (patch) | |
tree | 28ea749d784a3dbee334f6a076a7ac77bc0333e1 /src/gui/skin.h | |
parent | b60e6d82d6e843f9e65c81555ec281d237c3ce41 (diff) | |
download | mana-78ab7c7a2877efd245293ad00cd36bcaa8646507.tar.gz mana-78ab7c7a2877efd245293ad00cd36bcaa8646507.tar.bz2 mana-78ab7c7a2877efd245293ad00cd36bcaa8646507.tar.xz mana-78ab7c7a2877efd245293ad00cd36bcaa8646507.zip |
Rename SkinLoader to Theme
Also merge the guialpha ConfigListener into Theme.
Reviewed-by: Thorbjørn Lindeijer
Diffstat (limited to 'src/gui/skin.h')
-rw-r--r-- | src/gui/skin.h | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/src/gui/skin.h b/src/gui/skin.h deleted file mode 100644 index 091d3001..00000000 --- a/src/gui/skin.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Gui Skinning - * Copyright (C) 2008 The Legend of Mazzeroth Development Team - * Copyright (C) 2009 Aethyra Development Team - * Copyright (C) 2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * - * This file is part of The Mana Client. - * - * 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, see <http://www.gnu.org/licenses/>. - */ - -#ifndef SKIN_H -#define SKIN_H - -#include "graphics.h" - -#include <map> -#include <string> - -class ConfigListener; -class Image; -class ImageSet; - -class Skin -{ - public: - Skin(ImageRect skin, Image *close, Image *stickyUp, Image *stickyDown, - const std::string &filePath, - const std::string &name = ""); - - ~Skin(); - - /** - * Returns the skin's name. Useful for giving a human friendly skin - * name if a dialog for skin selection for a specific window type is - * done. - */ - const std::string &getName() const { return mName; } - - /** - * Returns the skin's xml file path. - */ - const std::string &getFilePath() const { return mFilePath; } - - /** - * Returns the background skin. - */ - const ImageRect &getBorder() const { return mBorder; } - - /** - * Returns the image used by a close button for this skin. - */ - Image *getCloseImage() const { return mCloseImage; } - - /** - * Returns the image used by a sticky button for this skin. - */ - Image *getStickyImage(bool state) const - { return state ? mStickyImageDown : mStickyImageUp; } - - /** - * Returns the minimum width which can be used with this skin. - */ - int getMinWidth() const; - - /** - * Returns the minimum height which can be used with this skin. - */ - int getMinHeight() const; - - /** - * Updates the alpha value of the skin - */ - void updateAlpha(float minimumOpacityAllowed = 0.0f); - - int instances; - - private: - std::string mFilePath; /**< File name path for the skin */ - std::string mName; /**< Name of the skin to use */ - ImageRect mBorder; /**< The window border and background */ - Image *mCloseImage; /**< Close Button Image */ - Image *mStickyImageUp; /**< Sticky Button Image */ - Image *mStickyImageDown; /**< Sticky Button Image */ -}; - -class SkinLoader -{ - public: - static SkinLoader *instance(); - static void deleteInstance(); - - static void prepareThemePath(); - static std::string getThemePath() { return mThemePath; } - - /** - * Returns the patch to the given gui resource relative to the theme - * or, if it isn't in the theme, relative to 'graphics/gui'. - */ - static std::string resolveThemePath(const std::string &path); - - static Image *getImageFromTheme(const std::string &path); - static ImageSet *getImageSetFromTheme(const std::string &path, - int w, int h); - - /** - * Loads a skin. - */ - Skin *load(const std::string &filename, - const std::string &defaultPath = getThemePath()); - - /** - * Updates the alpha values of all of the skins. - */ - void updateAlpha(); - - /** - * Get the minimum opacity allowed to skins. - */ - float getMinimumOpacity() - { return mMinimumOpacity; } - - /** - * Set the minimum opacity allowed to skins. - * Set a negative value to free the minimum allowed. - */ - void setMinimumOpacity(float minimumOpacity); - - private: - SkinLoader(); - ~SkinLoader(); - - Skin *readSkin(const std::string &filename); - - // Map containing all window skins - typedef std::map<std::string, Skin*> Skins; - typedef Skins::iterator SkinIterator; - - Skins mSkins; - - /** - * The config listener that listens to changes relevant to all skins. - */ - ConfigListener *mSkinConfigListener; - - static std::string mThemePath; - static SkinLoader *mInstance; - - static bool tryThemePath(std::string themePath); - - /** - * Tells if the current skins opacity - * should not get less than the given value - */ - float mMinimumOpacity; -}; - -#endif |