summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-07-09 15:32:05 +0200
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-09-28 18:32:51 +0200
commit7bdae3a386c07e553e1d5667709bb78acaf51223 (patch)
treedf2b64e1551f2bfa2a20ab90c80f3606a6a0ee43 /src/gui/widgets
parent8842689ccbfdef8da1f651e8493dc4dff7474433 (diff)
downloadmana-7bdae3a386c07e553e1d5667709bb78acaf51223.tar.gz
mana-7bdae3a386c07e553e1d5667709bb78acaf51223.tar.bz2
mana-7bdae3a386c07e553e1d5667709bb78acaf51223.tar.xz
mana-7bdae3a386c07e553e1d5667709bb78acaf51223.zip
Made the button icon only shown when the icon file is valid.
And falls back to the text based caption otherwise.
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/button.cpp13
-rw-r--r--src/gui/widgets/button.h2
2 files changed, 8 insertions, 7 deletions
diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp
index 6770c180..61ec28a2 100644
--- a/src/gui/widgets/button.cpp
+++ b/src/gui/widgets/button.cpp
@@ -83,7 +83,7 @@ Button::Button(const std::string &caption, const std::string &actionEventId,
adjustSize();
}
-void Button::setButtonIcon(const std::string& iconFile)
+bool Button::setButtonIcon(const std::string& iconFile)
{
// We clean up possible older references.
if (mButtonIcon)
@@ -91,18 +91,18 @@ void Button::setButtonIcon(const std::string& iconFile)
// If nothing relevant was set, we can quit now.
if (iconFile.empty())
- return;
+ return false;
// Load the icon frames.
Image *btnIcons = Theme::getImageFromTheme(iconFile);
if (!btnIcons)
- return;
+ return false;
// Compute the sub images size.
- int frameWidth = btnIcons->getWidth() / 4;
- int frameHeight = btnIcons->getHeight();
+ const int frameWidth = btnIcons->getWidth() / 4;
+ const int frameHeight = btnIcons->getHeight();
- if (btnIcons->getWidth() > 0 && btnIcons->getHeight() > 0)
+ if (frameWidth > 0 && frameHeight > 0)
{
mButtonIcon = new Image*[BUTTON_COUNT];
for (int mode = 0; mode < BUTTON_COUNT; ++mode)
@@ -115,6 +115,7 @@ void Button::setButtonIcon(const std::string& iconFile)
}
btnIcons->decRef();
+ return (mButtonIcon);
}
void Button::removeButtonIcon()
diff --git a/src/gui/widgets/button.h b/src/gui/widgets/button.h
index 39b3eb75..7463d2ad 100644
--- a/src/gui/widgets/button.h
+++ b/src/gui/widgets/button.h
@@ -72,7 +72,7 @@ class Button : public gcn::Button
* Standard, Highlighted, Pressed, and Disabled.
* If the image is too short, the missing states won't be loaded.
*/
- void setButtonIcon(const std::string& iconFile = std::string());
+ bool setButtonIcon(const std::string& iconFile = std::string());
/**
* Set the button popup text when hovering it for a few seconds.