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/theme.cpp | |
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/theme.cpp')
-rw-r--r-- | src/gui/theme.cpp | 24 |
1 files changed, 24 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; +} |