diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-07-14 12:39:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-07-14 12:39:24 +0300 |
commit | 8ba9dc8011a3b17d97828f9a8b800f8ad56459bf (patch) | |
tree | 08ed78a8911c288d7984af662f93836c9b8a6cf7 /src/gui | |
parent | a42faf3f01378c00b2410905c7fb78f3b5270790 (diff) | |
download | plus-8ba9dc8011a3b17d97828f9a8b800f8ad56459bf.tar.gz plus-8ba9dc8011a3b17d97828f9a8b800f8ad56459bf.tar.bz2 plus-8ba9dc8011a3b17d97828f9a8b800f8ad56459bf.tar.xz plus-8ba9dc8011a3b17d97828f9a8b800f8ad56459bf.zip |
Add to resourcemanager method to load imageset from image.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/theme.cpp | 24 | ||||
-rw-r--r-- | src/gui/theme.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index 4d22612fb..77fe24d51 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -895,3 +895,27 @@ Image *Theme::getImageFromThemeXml(const std::string &name) } return nullptr; } + +ImageSet *Theme::getImageSetFromThemeXml(const std::string &name, + int w, int h) +{ + Theme *theme = Theme::instance(); + Skin *skin = theme->load(name); + if (skin) + { + const ImageRect &rect = skin->getBorder(); + if (rect.grid[0]) + { + Image *image = rect.grid[0]; + + ResourceManager *resman = ResourceManager::getInstance(); + ImageSet *imageSet = resman->getSubImageSet(image, w, h); + +// image->incRef(); + theme->unload(skin); + return imageSet; + } + theme->unload(skin); + } + return nullptr; +} diff --git a/src/gui/theme.h b/src/gui/theme.h index e2be8a232..56c0c57c7 100644 --- a/src/gui/theme.h +++ b/src/gui/theme.h @@ -148,6 +148,8 @@ class Theme : public Palette, public ConfigListener static ImageSet *getImageSetFromTheme(const std::string &path, int w, int h); + ImageSet *getImageSetFromThemeXml(const std::string &name, + int w, int h); enum ThemePalette { TEXT = 0, |