summaryrefslogtreecommitdiff
path: root/src/gui/theme.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/theme.cpp')
-rw-r--r--src/gui/theme.cpp24
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;
+}