From 170b471c8e43c3c3ed07d0ff15f9165ae57efe4a Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 28 Oct 2012 02:49:12 +0300 Subject: Extend window theming. New theme options: stickyPadding - padding for sticky button from top. stickySpacing - space between sticky button and close button. By default both parameters is 3. --- src/gui/theme.cpp | 12 ++++++++++++ src/gui/widgets/window.cpp | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src/gui') diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index 54946984c..7331724d1 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -450,6 +450,8 @@ Skin *Theme::readSkin(const std::string &filename, const bool full) int titlePadding = 4; int titlebarHeight = 20; int closePadding = 3; + int stickySpacing = 3; + int stickyPadding = 3; int resizePadding = 2; std::map *const mOptions = new std::map(); @@ -507,6 +509,14 @@ Skin *Theme::readSkin(const std::string &filename, const bool full) { closePadding = XML::getProperty(partNode, "value", 3); } + else if (name == "stickySpacing") + { + stickySpacing = XML::getProperty(partNode, "value", 3); + } + else if (name == "stickyPadding") + { + stickyPadding = XML::getProperty(partNode, "value", 3); + } else if (name == "titlebarHeight") { titlebarHeight = XML::getProperty( @@ -536,6 +546,8 @@ Skin *Theme::readSkin(const std::string &filename, const bool full) dBorders->decRef(); (*mOptions)["closePadding"] = closePadding; + (*mOptions)["stickyPadding"] = stickyPadding; + (*mOptions)["stickySpacing"] = stickySpacing; (*mOptions)["titlebarHeight"] = titlebarHeight; (*mOptions)["resizePadding"] = resizePadding; diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index 1a6eb334c..01d2bb923 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -421,12 +421,13 @@ void Window::widgetResized(const gcn::Event &event A_UNUSED) const Image *const button = mSkin->getStickyImage(mSticky); if (button) { - int x = mDimension.width - button->getWidth() - closePadding; + int x = mDimension.width - button->getWidth() + - getOption("stickySpacing"); if (showClose) x -= mSkin->getCloseImage(false)->getWidth() + closePadding; mStickyRect.x = x; - mStickyRect.y = closePadding; + mStickyRect.y = getOption("stickyPadding"); mStickyRect.width = button->getWidth(); mStickyRect.height = button->getHeight(); } -- cgit v1.2.3-70-g09d2