diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-07-09 15:32:05 +0200 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-09-28 18:32:51 +0200 |
commit | 7bdae3a386c07e553e1d5667709bb78acaf51223 (patch) | |
tree | df2b64e1551f2bfa2a20ab90c80f3606a6a0ee43 /src/gui/widgets | |
parent | 8842689ccbfdef8da1f651e8493dc4dff7474433 (diff) | |
download | mana-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.cpp | 13 | ||||
-rw-r--r-- | src/gui/widgets/button.h | 2 |
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. |