From b3858a91e0f6b2c4706ea7b4418a26d4ef14baa7 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Tue, 5 Jul 2011 00:23:22 +0200 Subject: Added textpopup on mouse hovering support to buttons. I added a use of it to the menu buttons. --- src/gui/widgets/button.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++- src/gui/widgets/button.h | 15 ++++++++++++ src/gui/windowmenu.cpp | 3 ++- 3 files changed, 74 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp index f072ef61..b2fa9e89 100644 --- a/src/gui/widgets/button.cpp +++ b/src/gui/widgets/button.cpp @@ -25,6 +25,7 @@ #include "graphics.h" #include "gui/palette.h" +#include "gui/textpopup.h" #include "resources/image.h" #include "resources/theme.h" @@ -36,7 +37,8 @@ int Button::mInstances = 0; float Button::mAlpha = 1.0; -ImageRect *Button::mButton; +ImageRect* Button::mButton; +TextPopup* Button::mTextPopup = 0; enum{ BUTTON_STANDARD, // 0 @@ -159,6 +161,10 @@ void Button::init() btn[mode]->decRef(); } updateAlpha(); + + // Load the popup + if (!mTextPopup) + mTextPopup = new TextPopup(); } mInstances++; } @@ -175,6 +181,9 @@ Button::~Button() dtor()); } delete[] mButton; + + // Remove the popup + delete mTextPopup; } removeButtonIcon(); } @@ -301,3 +310,50 @@ void Button::setCaption(const std::string& caption) mCaption = caption; adjustSize(); } + +void Button::logic() +{ + gcn::Button::logic(); + mTextPopup->logic(); +} + +void Button::mouseMoved(gcn::MouseEvent &event) +{ + gcn::Button::mouseMoved(event); + mTextPopup->mouseMoved(event); + + int x = event.getX(); + int y = event.getY(); + + if (event.getSource() == this && !mPopupText.empty()) + { + if (mParent) + { + x += mParent->getX(); + y += mParent->getY(); + } + + mTextPopup->show(x + getX(), y + getY(), mPopupText); + } + else + { + mTextPopup->setVisible(false); + } +} + +void Button::mouseExited(gcn::MouseEvent &event) +{ + gcn::Button::mouseExited(event); + mTextPopup->mouseExited(event); + + mTextPopup->setVisible(false); +} + +void Button::setButtonPopupText(const std::string& text) +{ + mPopupText = text; + if (!mPopupText.empty()) + mTextPopup->show(getX(), getY(), mPopupText); + else + mTextPopup->setVisible(false); +} diff --git a/src/gui/widgets/button.h b/src/gui/widgets/button.h index 6d8f773c..cfc5043e 100644 --- a/src/gui/widgets/button.h +++ b/src/gui/widgets/button.h @@ -26,6 +26,7 @@ class ImageRect; class Image; +class TextPopup; /** * Button widget. Same as the Guichan button but with custom look. @@ -74,6 +75,17 @@ class Button : public gcn::Button void setButtonIcon(const std::string& iconFile = std::string(), int frameHeight = 0, int frameWidth = 0); + /** + * Set the button popup text when hovering it for a few seconds. + * + * @note: An empty text will disable the popup. + */ + void setButtonPopupText(const std::string& text = ""); + + void logic(); + void mouseMoved(gcn::MouseEvent &event); + void mouseExited(gcn::MouseEvent &event); + private: void init(); @@ -84,6 +96,9 @@ class Button : public gcn::Button static float mAlpha; Image** mButtonIcon; /**< Button Icons graphics */ + + static TextPopup* mTextPopup; /**< The buttons popup */ + std::string mPopupText; /**< the current button text */ }; #endif diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 542ab4a0..7011c82a 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -158,7 +158,8 @@ void WindowMenu::valueChanged(const gcn::SelectionEvent &event) void WindowMenu::addButton(const char* text, int &x, int &h) { - gcn::Button *btn = new Button(gettext(text), text, this); + Button *btn = new Button(gettext(text), text, this); + btn->setButtonPopupText(gettext(text)); btn->setPosition(x, 0); add(btn); x += btn->getWidth() + 3; -- cgit v1.2.3-70-g09d2 From 2e61e1f8c47173b7440565c09b23cadc902ad76d Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Tue, 5 Jul 2011 00:52:39 +0200 Subject: Changed the Social button to an image one. I also made the client able to keep the old behaviour, and i changed the button api to not require the icon frames size as it could easily guess them. --- data/graphics/gui/CMakeLists.txt | 1 + data/graphics/gui/button-icon-social.png | Bin 0 -> 10159 bytes src/gui/widgets/button.cpp | 9 ++++++--- src/gui/widgets/button.h | 5 ++--- src/gui/windowmenu.cpp | 20 +++++++++++++++----- src/gui/windowmenu.h | 3 ++- 6 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 data/graphics/gui/button-icon-social.png (limited to 'src') diff --git a/data/graphics/gui/CMakeLists.txt b/data/graphics/gui/CMakeLists.txt index 92a1e3ef..d8adb10f 100644 --- a/data/graphics/gui/CMakeLists.txt +++ b/data/graphics/gui/CMakeLists.txt @@ -1,6 +1,7 @@ SET (FILES bubble.png button.png + button-icon-social.png button_disabled.png buttonhi.png buttonpress.png diff --git a/data/graphics/gui/button-icon-social.png b/data/graphics/gui/button-icon-social.png new file mode 100644 index 00000000..f12304c1 Binary files /dev/null and b/data/graphics/gui/button-icon-social.png differ diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp index b2fa9e89..6770c180 100644 --- a/src/gui/widgets/button.cpp +++ b/src/gui/widgets/button.cpp @@ -83,15 +83,14 @@ Button::Button(const std::string &caption, const std::string &actionEventId, adjustSize(); } -void Button::setButtonIcon(const std::string& iconFile, int frameHeight, - int frameWidth) +void Button::setButtonIcon(const std::string& iconFile) { // We clean up possible older references. if (mButtonIcon) removeButtonIcon(); // If nothing relevant was set, we can quit now. - if (iconFile.empty() || !frameWidth || !frameHeight) + if (iconFile.empty()) return; // Load the icon frames. @@ -99,6 +98,10 @@ void Button::setButtonIcon(const std::string& iconFile, int frameHeight, if (!btnIcons) return; + // Compute the sub images size. + int frameWidth = btnIcons->getWidth() / 4; + int frameHeight = btnIcons->getHeight(); + if (btnIcons->getWidth() > 0 && btnIcons->getHeight() > 0) { mButtonIcon = new Image*[BUTTON_COUNT]; diff --git a/src/gui/widgets/button.h b/src/gui/widgets/button.h index cfc5043e..39b3eb75 100644 --- a/src/gui/widgets/button.h +++ b/src/gui/widgets/button.h @@ -72,15 +72,14 @@ 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(), - int frameHeight = 0, int frameWidth = 0); + void setButtonIcon(const std::string& iconFile = std::string()); /** * Set the button popup text when hovering it for a few seconds. * * @note: An empty text will disable the popup. */ - void setButtonPopupText(const std::string& text = ""); + void setButtonPopupText(const std::string& text = std::string()); void logic(); void mouseMoved(gcn::MouseEvent &event); diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 7011c82a..5f7aefa7 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -61,7 +61,7 @@ WindowMenu::WindowMenu(): // if (specialsWindow->hasSpecials()) addButton(N_("Specials"), x, h); - addButton(N_("Social"), x, h); + addButton(N_("Social"), x, h, "button-icon-social.png"); addButton(N_("Shortcut"), x, h); addButton(N_("Setup"), x, h); @@ -156,12 +156,22 @@ void WindowMenu::valueChanged(const gcn::SelectionEvent &event) } } -void WindowMenu::addButton(const char* text, int &x, int &h) +void WindowMenu::addButton(const std::string& text, int &x, int &h, + const std::string& iconPath) { - Button *btn = new Button(gettext(text), text, this); - btn->setButtonPopupText(gettext(text)); + Button *btn = new Button("", text, this); + if (!iconPath.empty()) + { + btn->setButtonPopupText(gettext(text.c_str())); + btn->setButtonIcon(iconPath); + } + else + { + btn->setCaption(gettext(text.c_str())); + } + btn->setPosition(x, 0); add(btn); x += btn->getWidth() + 3; - h = btn->getHeight(); + h = std::max(h, btn->getHeight()); } diff --git a/src/gui/windowmenu.h b/src/gui/windowmenu.h index 2bb3e764..b4b0446d 100644 --- a/src/gui/windowmenu.h +++ b/src/gui/windowmenu.h @@ -48,7 +48,8 @@ class WindowMenu : public Container, void valueChanged(const gcn::SelectionEvent &event); private: - inline void addButton(const char* text, int &x, int &h); + inline void addButton(const std::string& text, int &x, int &h, + const std::string& iconPath = std::string()); EmotePopup *mEmotePopup; }; -- cgit v1.2.3-70-g09d2 From 8842689ccbfdef8da1f651e8493dc4dff7474433 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Tue, 5 Jul 2011 01:21:47 +0200 Subject: Added the setup button icon and optimized the image size. --- data/graphics/gui/button-icon-setup.png | Bin 0 -> 556 bytes data/graphics/gui/button-icon-social.png | Bin 10159 -> 822 bytes src/gui/windowmenu.cpp | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 data/graphics/gui/button-icon-setup.png (limited to 'src') diff --git a/data/graphics/gui/button-icon-setup.png b/data/graphics/gui/button-icon-setup.png new file mode 100644 index 00000000..7c2b2b86 Binary files /dev/null and b/data/graphics/gui/button-icon-setup.png differ diff --git a/data/graphics/gui/button-icon-social.png b/data/graphics/gui/button-icon-social.png index f12304c1..524510af 100644 Binary files a/data/graphics/gui/button-icon-social.png and b/data/graphics/gui/button-icon-social.png differ diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 5f7aefa7..a200427f 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -63,7 +63,7 @@ WindowMenu::WindowMenu(): addButton(N_("Social"), x, h, "button-icon-social.png"); addButton(N_("Shortcut"), x, h); - addButton(N_("Setup"), x, h); + addButton(N_("Setup"), x, h, "button-icon-setup.png"); setDimension(gcn::Rectangle(graphics->getWidth() - x - 3, 3, x - 3, h)); -- cgit v1.2.3-70-g09d2 From 7bdae3a386c07e553e1d5667709bb78acaf51223 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Sat, 9 Jul 2011 15:32:05 +0200 Subject: Made the button icon only shown when the icon file is valid. And falls back to the text based caption otherwise. --- src/gui/widgets/button.cpp | 13 +++++++------ src/gui/widgets/button.h | 2 +- src/gui/windowmenu.cpp | 3 +-- 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src') 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. diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index a200427f..2595c819 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -160,10 +160,9 @@ void WindowMenu::addButton(const std::string& text, int &x, int &h, const std::string& iconPath) { Button *btn = new Button("", text, this); - if (!iconPath.empty()) + if (!iconPath.empty() && btn->setButtonIcon(iconPath)) { btn->setButtonPopupText(gettext(text.c_str())); - btn->setButtonIcon(iconPath); } else { -- cgit v1.2.3-70-g09d2 From da18a5f411185d3a4d5aa3851e8c7f621d3e9718 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Fri, 15 Jul 2011 02:07:34 +0200 Subject: Reached the state where the menu bar is now using image buttons. I had to adapt a bit the images given by Enchilado to do that. --- data/graphics/gui/CMakeLists.txt | 8 ++++++++ data/graphics/gui/button-icon-equipment.png | Bin 0 -> 871 bytes data/graphics/gui/button-icon-inventory.png | Bin 0 -> 726 bytes data/graphics/gui/button-icon-setup.png | Bin 556 -> 775 bytes data/graphics/gui/button-icon-shortcut.png | Bin 0 -> 668 bytes data/graphics/gui/button-icon-skills.png | Bin 0 -> 680 bytes data/graphics/gui/button-icon-smilies.png | Bin 0 -> 814 bytes data/graphics/gui/button-icon-social.png | Bin 822 -> 615 bytes data/graphics/gui/button-icon-specials.png | Bin 0 -> 766 bytes data/graphics/gui/button-icon-status.png | Bin 0 -> 699 bytes src/gui/windowmenu.cpp | 14 +++++++------- 11 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 data/graphics/gui/button-icon-equipment.png create mode 100644 data/graphics/gui/button-icon-inventory.png create mode 100644 data/graphics/gui/button-icon-shortcut.png create mode 100644 data/graphics/gui/button-icon-skills.png create mode 100644 data/graphics/gui/button-icon-smilies.png create mode 100644 data/graphics/gui/button-icon-specials.png create mode 100644 data/graphics/gui/button-icon-status.png (limited to 'src') diff --git a/data/graphics/gui/CMakeLists.txt b/data/graphics/gui/CMakeLists.txt index d8adb10f..d3f29210 100644 --- a/data/graphics/gui/CMakeLists.txt +++ b/data/graphics/gui/CMakeLists.txt @@ -1,7 +1,15 @@ SET (FILES bubble.png button.png + button-icon-equipment.png + button-icon-inventory.png + button-icon-setup.png + button-icon-shortcut.png + button-icon-skills.png + button-icon-smilies.png button-icon-social.png + button-icon-specials.png + button-icon-status.png button_disabled.png buttonhi.png buttonpress.png diff --git a/data/graphics/gui/button-icon-equipment.png b/data/graphics/gui/button-icon-equipment.png new file mode 100644 index 00000000..4f40f3ad Binary files /dev/null and b/data/graphics/gui/button-icon-equipment.png differ diff --git a/data/graphics/gui/button-icon-inventory.png b/data/graphics/gui/button-icon-inventory.png new file mode 100644 index 00000000..c0fe5bf7 Binary files /dev/null and b/data/graphics/gui/button-icon-inventory.png differ diff --git a/data/graphics/gui/button-icon-setup.png b/data/graphics/gui/button-icon-setup.png index 7c2b2b86..8e028358 100644 Binary files a/data/graphics/gui/button-icon-setup.png and b/data/graphics/gui/button-icon-setup.png differ diff --git a/data/graphics/gui/button-icon-shortcut.png b/data/graphics/gui/button-icon-shortcut.png new file mode 100644 index 00000000..10b97577 Binary files /dev/null and b/data/graphics/gui/button-icon-shortcut.png differ diff --git a/data/graphics/gui/button-icon-skills.png b/data/graphics/gui/button-icon-skills.png new file mode 100644 index 00000000..3d68f42b Binary files /dev/null and b/data/graphics/gui/button-icon-skills.png differ diff --git a/data/graphics/gui/button-icon-smilies.png b/data/graphics/gui/button-icon-smilies.png new file mode 100644 index 00000000..dd2a00c4 Binary files /dev/null and b/data/graphics/gui/button-icon-smilies.png differ diff --git a/data/graphics/gui/button-icon-social.png b/data/graphics/gui/button-icon-social.png index 524510af..4c6b49f1 100644 Binary files a/data/graphics/gui/button-icon-social.png and b/data/graphics/gui/button-icon-social.png differ diff --git a/data/graphics/gui/button-icon-specials.png b/data/graphics/gui/button-icon-specials.png new file mode 100644 index 00000000..31c66e81 Binary files /dev/null and b/data/graphics/gui/button-icon-specials.png differ diff --git a/data/graphics/gui/button-icon-status.png b/data/graphics/gui/button-icon-status.png new file mode 100644 index 00000000..96c54d15 Binary files /dev/null and b/data/graphics/gui/button-icon-status.png differ diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 2595c819..1c5f2d77 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -50,19 +50,19 @@ WindowMenu::WindowMenu(): { int x = 0, h = 0; - addButton(":-)", x, h); - addButton(N_("Status"), x, h); - addButton(N_("Equipment"), x, h); - addButton(N_("Inventory"), x, h); + addButton(":-)", x, h, "button-icon-smilies.png"); + addButton(N_("Status"), x, h, "button-icon-status.png"); + addButton(N_("Equipment"), x, h, "button-icon-equipment.png"); + addButton(N_("Inventory"), x, h, "button-icon-inventory.png"); if (skillDialog->hasSkills()) - addButton(N_("Skills"), x, h); + addButton(N_("Skills"), x, h, "button-icon-skills.png"); // if (specialsWindow->hasSpecials()) - addButton(N_("Specials"), x, h); + addButton(N_("Specials"), x, h, "button-icon-specials.png"); addButton(N_("Social"), x, h, "button-icon-social.png"); - addButton(N_("Shortcut"), x, h); + addButton(N_("Shortcut"), x, h, "button-icon-shortcut.png"); addButton(N_("Setup"), x, h, "button-icon-setup.png"); setDimension(gcn::Rectangle(graphics->getWidth() - x - 3, 3, -- cgit v1.2.3-70-g09d2 From 095fe98b5a26276e15e0ed781d1ba051346e354f Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Fri, 15 Jul 2011 02:40:07 +0200 Subject: Added a naive way to display the window keyboard shortcut. This is not updated once the keys are reassigned but it will do the trick for now. --- src/gui/windowmenu.cpp | 35 ++++++++++++++++++++++++++--------- src/gui/windowmenu.h | 6 +++++- 2 files changed, 31 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 1c5f2d77..b40a171b 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -51,19 +51,26 @@ WindowMenu::WindowMenu(): int x = 0, h = 0; addButton(":-)", x, h, "button-icon-smilies.png"); - addButton(N_("Status"), x, h, "button-icon-status.png"); - addButton(N_("Equipment"), x, h, "button-icon-equipment.png"); - addButton(N_("Inventory"), x, h, "button-icon-inventory.png"); + addButton(N_("Status"), x, h, "button-icon-status.png", + KeyboardConfig::KEY_WINDOW_STATUS); + addButton(N_("Inventory"), x, h, "button-icon-inventory.png", + KeyboardConfig::KEY_WINDOW_INVENTORY); + addButton(N_("Equipment"), x, h, "button-icon-equipment.png", + KeyboardConfig::KEY_WINDOW_EQUIPMENT); if (skillDialog->hasSkills()) - addButton(N_("Skills"), x, h, "button-icon-skills.png"); + addButton(N_("Skills"), x, h, "button-icon-skills.png", + KeyboardConfig::KEY_WINDOW_SKILL); // if (specialsWindow->hasSpecials()) addButton(N_("Specials"), x, h, "button-icon-specials.png"); - addButton(N_("Social"), x, h, "button-icon-social.png"); - addButton(N_("Shortcut"), x, h, "button-icon-shortcut.png"); - addButton(N_("Setup"), x, h, "button-icon-setup.png"); + addButton(N_("Social"), x, h, "button-icon-social.png", + KeyboardConfig::KEY_WINDOW_SOCIAL); + addButton(N_("Shortcut"), x, h, "button-icon-shortcut.png", + KeyboardConfig::KEY_WINDOW_SHORTCUT); + addButton(N_("Setup"), x, h, "button-icon-setup.png", + KeyboardConfig::KEY_WINDOW_SETUP); setDimension(gcn::Rectangle(graphics->getWidth() - x - 3, 3, x - 3, h)); @@ -157,12 +164,22 @@ void WindowMenu::valueChanged(const gcn::SelectionEvent &event) } void WindowMenu::addButton(const std::string& text, int &x, int &h, - const std::string& iconPath) + const std::string& iconPath, + KeyboardConfig::KeyAction key) { Button *btn = new Button("", text, this); if (!iconPath.empty() && btn->setButtonIcon(iconPath)) { - btn->setButtonPopupText(gettext(text.c_str())); + // When in image button mode, we have room to show + // the keyboard shortcut. + std::string caption = gettext(text.c_str()); + if (key != KeyboardConfig::KEY_NO_VALUE) + { + caption += " ("; + caption += SDL_GetKeyName((SDLKey) keyboard.getKeyValue(key)); + caption += ")"; + } + btn->setButtonPopupText(caption); } else { diff --git a/src/gui/windowmenu.h b/src/gui/windowmenu.h index b4b0446d..09374943 100644 --- a/src/gui/windowmenu.h +++ b/src/gui/windowmenu.h @@ -22,6 +22,8 @@ #ifndef WINDOWMENU_H #define WINDOWMENU_H +#include "keyboardconfig.h" + #include "gui/widgets/container.h" #include @@ -49,7 +51,9 @@ class WindowMenu : public Container, private: inline void addButton(const std::string& text, int &x, int &h, - const std::string& iconPath = std::string()); + const std::string& iconPath = std::string(), + KeyboardConfig::KeyAction key = + KeyboardConfig::KEY_NO_VALUE); EmotePopup *mEmotePopup; }; -- cgit v1.2.3-70-g09d2 From eb5d34756588ca95003094bc910efcb5c832390f Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Fri, 15 Jul 2011 02:45:23 +0200 Subject: Fixed back the special window display in a basic but working way. This to avoid cluttering the gui until Crush has the time to fulfill his issue about those. --- src/gui/specialswindow.h | 3 +++ src/gui/windowmenu.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gui/specialswindow.h b/src/gui/specialswindow.h index dedeeffc..b440ce13 100644 --- a/src/gui/specialswindow.h +++ b/src/gui/specialswindow.h @@ -51,6 +51,9 @@ class SpecialsWindow : public Window, public gcn::ActionListener { void draw(gcn::Graphics *graphics); + bool hasSpecials() + { return !mEntries.empty(); } + private: // (re)constructs the list of specials void rebuild(const std::map &specialData); diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index b40a171b..a618ae8e 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -62,7 +62,7 @@ WindowMenu::WindowMenu(): addButton(N_("Skills"), x, h, "button-icon-skills.png", KeyboardConfig::KEY_WINDOW_SKILL); - // if (specialsWindow->hasSpecials()) + if (specialsWindow->hasSpecials()) addButton(N_("Specials"), x, h, "button-icon-specials.png"); addButton(N_("Social"), x, h, "button-icon-social.png", -- cgit v1.2.3-70-g09d2 From 1012c6edeffc4a220c7151a7a1a55f12abf2fa9c Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Fri, 15 Jul 2011 02:55:31 +0200 Subject: Added icons to the confirm and cancel button of the quit dialog. This a good example of use for the new graphics and button functionalities. --- data/graphics/gui/CMakeLists.txt | 2 ++ data/graphics/gui/button-icon-cancel.png | Bin 0 -> 641 bytes data/graphics/gui/button-icon-confirm.png | Bin 0 -> 540 bytes src/gui/quitdialog.cpp | 2 ++ src/gui/quitdialog.h | 6 ++++-- 5 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 data/graphics/gui/button-icon-cancel.png create mode 100644 data/graphics/gui/button-icon-confirm.png (limited to 'src') diff --git a/data/graphics/gui/CMakeLists.txt b/data/graphics/gui/CMakeLists.txt index d3f29210..d1a025f6 100644 --- a/data/graphics/gui/CMakeLists.txt +++ b/data/graphics/gui/CMakeLists.txt @@ -1,6 +1,8 @@ SET (FILES bubble.png button.png + button-icon-confirm.png + button-icon-cancel.png button-icon-equipment.png button-icon-inventory.png button-icon-setup.png diff --git a/data/graphics/gui/button-icon-cancel.png b/data/graphics/gui/button-icon-cancel.png new file mode 100644 index 00000000..f85a2c4e Binary files /dev/null and b/data/graphics/gui/button-icon-cancel.png differ diff --git a/data/graphics/gui/button-icon-confirm.png b/data/graphics/gui/button-icon-confirm.png new file mode 100644 index 00000000..c674662b Binary files /dev/null and b/data/graphics/gui/button-icon-confirm.png differ diff --git a/src/gui/quitdialog.cpp b/src/gui/quitdialog.cpp index 6ecc62a6..3da07206 100644 --- a/src/gui/quitdialog.cpp +++ b/src/gui/quitdialog.cpp @@ -44,7 +44,9 @@ QuitDialog::QuitDialog(QuitDialog** pointerToMe): mSwitchAccountServer = new RadioButton(_("Switch server"), "quitdialog"); mSwitchCharacter = new RadioButton(_("Switch character"), "quitdialog"); mOkButton = new Button(_("OK"), "ok", this); + mOkButton->setButtonIcon("button-icon-confirm.png"); mCancelButton = new Button(_("Cancel"), "cancel", this); + mCancelButton->setButtonIcon("button-icon-cancel.png"); addKeyListener(this); diff --git a/src/gui/quitdialog.h b/src/gui/quitdialog.h index 65a325b8..21fe2f8a 100644 --- a/src/gui/quitdialog.h +++ b/src/gui/quitdialog.h @@ -29,6 +29,8 @@ #include +class Button; + /** * The quit dialog. * @@ -62,8 +64,8 @@ class QuitDialog : public Window, public gcn::ActionListener, gcn::RadioButton *mForceQuit; gcn::RadioButton *mSwitchAccountServer; gcn::RadioButton *mSwitchCharacter; - gcn::Button *mOkButton; - gcn::Button *mCancelButton; + Button *mOkButton; + Button *mCancelButton; QuitDialog **mMyPointer; }; -- cgit v1.2.3-70-g09d2 From 12b2d53cb78db985da9d92230841be6570a7cfdc Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Fri, 15 Jul 2011 20:41:05 +0200 Subject: The shortcuts are now refreshed when reassigning keys. --- src/game.cpp | 1 - src/game.h | 9 +++++- src/gui/setup_keyboard.cpp | 3 ++ src/gui/windowmenu.cpp | 69 ++++++++++++++++++++++++++++++++++++++++------ src/gui/windowmenu.h | 5 ++++ 5 files changed, 77 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/game.cpp b/src/game.cpp index af9c2c39..1e4c4076 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -64,7 +64,6 @@ #include "gui/textdialog.h" #include "gui/trade.h" #include "gui/viewport.h" -#include "gui/windowmenu.h" #include "gui/widgets/chattab.h" #include "gui/widgets/emoteshortcutcontainer.h" diff --git a/src/game.h b/src/game.h index 22e242c9..9e38f928 100644 --- a/src/game.h +++ b/src/game.h @@ -24,8 +24,9 @@ #include +#include "gui/windowmenu.h" + class Map; -class WindowMenu; /** * The main class responsible for running the game. The game starts after you @@ -73,6 +74,12 @@ class Game int getCurrentTileWidth() const; int getCurrentTileHeight() const; + /** + * Update the key shortcuts in the window menu. + */ + void updateWindowMenuCaptions() + { mWindowMenu->updatePopUpCaptions(); } + private: int mLastTarget; bool mDisconnected; diff --git a/src/gui/setup_keyboard.cpp b/src/gui/setup_keyboard.cpp index d3ee3937..b8ce3e89 100644 --- a/src/gui/setup_keyboard.cpp +++ b/src/gui/setup_keyboard.cpp @@ -22,6 +22,7 @@ #include "gui/setup_keyboard.h" +#include "game.h" #include "keyboardconfig.h" #include "gui/gui.h" @@ -190,6 +191,8 @@ void Setup_Keyboard::refreshAssignedKey(int index) } mKeyListModel->setElementAt(index, caption); + if (Game *game = Game::instance()) + game->updateWindowMenuCaptions(); } void Setup_Keyboard::newKeyCallback(int index) diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index a618ae8e..20b6f00c 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -163,6 +163,19 @@ void WindowMenu::valueChanged(const gcn::SelectionEvent &event) } } +static std::string createShortcutCaption(const std::string& text, + KeyboardConfig::KeyAction key) +{ + std::string caption = gettext(text.c_str()); + if (key != KeyboardConfig::KEY_NO_VALUE) + { + caption += " ("; + caption += SDL_GetKeyName((SDLKey) keyboard.getKeyValue(key)); + caption += ")"; + } + return caption; +} + void WindowMenu::addButton(const std::string& text, int &x, int &h, const std::string& iconPath, KeyboardConfig::KeyAction key) @@ -172,14 +185,7 @@ void WindowMenu::addButton(const std::string& text, int &x, int &h, { // When in image button mode, we have room to show // the keyboard shortcut. - std::string caption = gettext(text.c_str()); - if (key != KeyboardConfig::KEY_NO_VALUE) - { - caption += " ("; - caption += SDL_GetKeyName((SDLKey) keyboard.getKeyValue(key)); - caption += ")"; - } - btn->setButtonPopupText(caption); + btn->setButtonPopupText(createShortcutCaption(text, key)); } else { @@ -191,3 +197,50 @@ void WindowMenu::addButton(const std::string& text, int &x, int &h, x += btn->getWidth() + 3; h = std::max(h, btn->getHeight()); } + +void WindowMenu::updatePopUpCaptions() +{ + for (WidgetList::iterator it = mWidgets.begin(); it != mWidgets.end(); ++it) + { + Button *button = dynamic_cast (*it); + if (button) + { + std::string eventId = button->getActionEventId(); + if (eventId == "Status") + { + button->setButtonPopupText(createShortcutCaption("Status", + KeyboardConfig::KEY_WINDOW_STATUS)); + } + else if (eventId == "Equipment") + { + button->setButtonPopupText(createShortcutCaption("Equipment", + KeyboardConfig::KEY_WINDOW_EQUIPMENT)); + } + else if (eventId == "Inventory") + { + button->setButtonPopupText(createShortcutCaption("Inventory", + KeyboardConfig::KEY_WINDOW_INVENTORY)); + } + else if (eventId == "Skills") + { + button->setButtonPopupText(createShortcutCaption("Skills", + KeyboardConfig::KEY_WINDOW_SKILL)); + } + else if (eventId == "Social") + { + button->setButtonPopupText(createShortcutCaption("Social", + KeyboardConfig::KEY_WINDOW_SOCIAL)); + } + else if (eventId == "Shortcut") + { + button->setButtonPopupText(createShortcutCaption("Shortcut", + KeyboardConfig::KEY_WINDOW_SHORTCUT)); + } + else if (eventId == "Setup") + { + button->setButtonPopupText(createShortcutCaption("Setup", + KeyboardConfig::KEY_WINDOW_SETUP)); + } + } + } +} diff --git a/src/gui/windowmenu.h b/src/gui/windowmenu.h index 09374943..962abaf5 100644 --- a/src/gui/windowmenu.h +++ b/src/gui/windowmenu.h @@ -49,6 +49,11 @@ class WindowMenu : public Container, void valueChanged(const gcn::SelectionEvent &event); + /** + * Update the pop-up captions with new key shortcuts. + */ + void updatePopUpCaptions(); + private: inline void addButton(const std::string& text, int &x, int &h, const std::string& iconPath = std::string(), -- cgit v1.2.3-70-g09d2 From 194614747b9b31e9ba1bb466e1b8ba60d01e0325 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Fri, 15 Jul 2011 20:43:20 +0200 Subject: Made the shortcuts link actually use the plural in its caption. --- src/gui/windowmenu.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 20b6f00c..2cac55b5 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -67,7 +67,7 @@ WindowMenu::WindowMenu(): addButton(N_("Social"), x, h, "button-icon-social.png", KeyboardConfig::KEY_WINDOW_SOCIAL); - addButton(N_("Shortcut"), x, h, "button-icon-shortcut.png", + addButton(N_("Shortcuts"), x, h, "button-icon-shortcut.png", KeyboardConfig::KEY_WINDOW_SHORTCUT); addButton(N_("Setup"), x, h, "button-icon-setup.png", KeyboardConfig::KEY_WINDOW_SETUP); @@ -131,7 +131,7 @@ void WindowMenu::action(const gcn::ActionEvent &event) { window = socialWindow; } - else if (event.getId() == "Shortcut") + else if (event.getId() == "Shortcuts") { window = itemShortcutWindow; } @@ -231,9 +231,9 @@ void WindowMenu::updatePopUpCaptions() button->setButtonPopupText(createShortcutCaption("Social", KeyboardConfig::KEY_WINDOW_SOCIAL)); } - else if (eventId == "Shortcut") + else if (eventId == "Shortcuts") { - button->setButtonPopupText(createShortcutCaption("Shortcut", + button->setButtonPopupText(createShortcutCaption("Shortcuts", KeyboardConfig::KEY_WINDOW_SHORTCUT)); } else if (eventId == "Setup") -- cgit v1.2.3-70-g09d2 From 8ab253762233e0526e1965aa4430c0860fc7a9cb Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Mon, 25 Jul 2011 23:36:00 +0200 Subject: Added true arrows graphics to tab area buttons. --- data/graphics/gui/CMakeLists.txt | 2 ++ data/graphics/gui/tab_arrows_left.png | Bin 0 -> 292 bytes data/graphics/gui/tab_arrows_right.png | Bin 0 -> 285 bytes src/gui/widgets/tabbedarea.cpp | 8 ++++++-- src/gui/widgets/tabbedarea.h | 2 +- 5 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 data/graphics/gui/tab_arrows_left.png create mode 100644 data/graphics/gui/tab_arrows_right.png (limited to 'src') diff --git a/data/graphics/gui/CMakeLists.txt b/data/graphics/gui/CMakeLists.txt index d1a025f6..cc257eee 100644 --- a/data/graphics/gui/CMakeLists.txt +++ b/data/graphics/gui/CMakeLists.txt @@ -41,6 +41,8 @@ SET (FILES speechbubble.xml sticky_button.png tab.png + tab_arrows_left.png + tab_arrows_right.png tab_hilight.png tabselected.png unknown-item.png diff --git a/data/graphics/gui/tab_arrows_left.png b/data/graphics/gui/tab_arrows_left.png new file mode 100644 index 00000000..c14590d8 Binary files /dev/null and b/data/graphics/gui/tab_arrows_left.png differ diff --git a/data/graphics/gui/tab_arrows_right.png b/data/graphics/gui/tab_arrows_right.png new file mode 100644 index 00000000..8309c68e Binary files /dev/null and b/data/graphics/gui/tab_arrows_right.png differ diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp index 412d3ddc..9b51b311 100644 --- a/src/gui/widgets/tabbedarea.cpp +++ b/src/gui/widgets/tabbedarea.cpp @@ -33,8 +33,12 @@ TabbedArea::TabbedArea() : gcn::TabbedArea(), mWidgetContainer->setOpaque(false); addWidgetListener(this); - mArrowButton[0] = new Button("<", "shift_left", this); - mArrowButton[1] = new Button(">", "shift_right", this); + mArrowButton[0] = new Button("", "shift_left", this); + mArrowButton[1] = new Button("", "shift_right", this); + if (!mArrowButton[0]->setButtonIcon("tab_arrows_left.png")) + mArrowButton[0]->setCaption("<"); + if (!mArrowButton[1]->setButtonIcon("tab_arrows_right.png")) + mArrowButton[1]->setCaption(">"); add(mArrowButton[0]); add(mArrowButton[1]); diff --git a/src/gui/widgets/tabbedarea.h b/src/gui/widgets/tabbedarea.h index d364eac5..cb29a756 100644 --- a/src/gui/widgets/tabbedarea.h +++ b/src/gui/widgets/tabbedarea.h @@ -117,7 +117,7 @@ class TabbedArea : public gcn::TabbedArea, public gcn::WidgetListener typedef std::vector< std::pair > TabContainer; /** The tab arrows */ - gcn::Button *mArrowButton[2]; + Button *mArrowButton[2]; /** Check whether the arrow should be clickable */ void updateArrowEnableState(); -- cgit v1.2.3-70-g09d2 From c82bb72ea54a15b47938c5cbe69459bbb8c47c40 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Wed, 28 Sep 2011 18:04:21 +0200 Subject: Small changes requested by o11c - part 1. --- src/gui/widgets/button.cpp | 5 +++-- src/gui/widgets/button.h | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp index 61ec28a2..f0d7e022 100644 --- a/src/gui/widgets/button.cpp +++ b/src/gui/widgets/button.cpp @@ -37,8 +37,8 @@ int Button::mInstances = 0; float Button::mAlpha = 1.0; -ImageRect* Button::mButton; -TextPopup* Button::mTextPopup = 0; +ImageRect *Button::mButton; +TextPopup *Button::mTextPopup = 0; enum{ BUTTON_STANDARD, // 0 @@ -188,6 +188,7 @@ Button::~Button() // Remove the popup delete mTextPopup; + mTextPopup = 0; } removeButtonIcon(); } diff --git a/src/gui/widgets/button.h b/src/gui/widgets/button.h index 7463d2ad..94d550e9 100644 --- a/src/gui/widgets/button.h +++ b/src/gui/widgets/button.h @@ -96,7 +96,11 @@ class Button : public gcn::Button Image** mButtonIcon; /**< Button Icons graphics */ - static TextPopup* mTextPopup; /**< The buttons popup */ + /** + * The buttons popup + * @note: This is a global object. One for all the buttons. + */ + static TextPopup* mTextPopup; std::string mPopupText; /**< the current button text */ }; -- cgit v1.2.3-70-g09d2 From b912a0c991cb0b1e02009d6bb2c9dffd2fa84d3a Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Wed, 28 Sep 2011 18:23:23 +0200 Subject: Small changes requested by o11c - part 2. Most noticeably I added the shortcut in a popup, even when there are no images to the image buttons in the windowmenu. --- src/gui/windowmenu.cpp | 77 +++++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 39 deletions(-) (limited to 'src') diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 2cac55b5..1c4e8bec 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -183,13 +183,12 @@ void WindowMenu::addButton(const std::string& text, int &x, int &h, Button *btn = new Button("", text, this); if (!iconPath.empty() && btn->setButtonIcon(iconPath)) { - // When in image button mode, we have room to show - // the keyboard shortcut. btn->setButtonPopupText(createShortcutCaption(text, key)); } else { btn->setCaption(gettext(text.c_str())); + btn->setButtonPopupText(createShortcutCaption("", key)); } btn->setPosition(x, 0); @@ -203,44 +202,44 @@ void WindowMenu::updatePopUpCaptions() for (WidgetList::iterator it = mWidgets.begin(); it != mWidgets.end(); ++it) { Button *button = dynamic_cast (*it); - if (button) + if (!button) + continue; + + std::string eventId = button->getActionEventId(); + if (eventId == "Status") + { + button->setButtonPopupText(createShortcutCaption("Status", + KeyboardConfig::KEY_WINDOW_STATUS)); + } + else if (eventId == "Equipment") + { + button->setButtonPopupText(createShortcutCaption("Equipment", + KeyboardConfig::KEY_WINDOW_EQUIPMENT)); + } + else if (eventId == "Inventory") + { + button->setButtonPopupText(createShortcutCaption("Inventory", + KeyboardConfig::KEY_WINDOW_INVENTORY)); + } + else if (eventId == "Skills") + { + button->setButtonPopupText(createShortcutCaption("Skills", + KeyboardConfig::KEY_WINDOW_SKILL)); + } + else if (eventId == "Social") + { + button->setButtonPopupText(createShortcutCaption("Social", + KeyboardConfig::KEY_WINDOW_SOCIAL)); + } + else if (eventId == "Shortcuts") + { + button->setButtonPopupText(createShortcutCaption("Shortcuts", + KeyboardConfig::KEY_WINDOW_SHORTCUT)); + } + else if (eventId == "Setup") { - std::string eventId = button->getActionEventId(); - if (eventId == "Status") - { - button->setButtonPopupText(createShortcutCaption("Status", - KeyboardConfig::KEY_WINDOW_STATUS)); - } - else if (eventId == "Equipment") - { - button->setButtonPopupText(createShortcutCaption("Equipment", - KeyboardConfig::KEY_WINDOW_EQUIPMENT)); - } - else if (eventId == "Inventory") - { - button->setButtonPopupText(createShortcutCaption("Inventory", - KeyboardConfig::KEY_WINDOW_INVENTORY)); - } - else if (eventId == "Skills") - { - button->setButtonPopupText(createShortcutCaption("Skills", - KeyboardConfig::KEY_WINDOW_SKILL)); - } - else if (eventId == "Social") - { - button->setButtonPopupText(createShortcutCaption("Social", - KeyboardConfig::KEY_WINDOW_SOCIAL)); - } - else if (eventId == "Shortcuts") - { - button->setButtonPopupText(createShortcutCaption("Shortcuts", - KeyboardConfig::KEY_WINDOW_SHORTCUT)); - } - else if (eventId == "Setup") - { - button->setButtonPopupText(createShortcutCaption("Setup", - KeyboardConfig::KEY_WINDOW_SETUP)); - } + button->setButtonPopupText(createShortcutCaption("Setup", + KeyboardConfig::KEY_WINDOW_SETUP)); } } } -- cgit v1.2.3-70-g09d2 From 48fb6a6a345ae091c78a119795f7716102126241 Mon Sep 17 00:00:00 2001 From: Erik Schilling Date: Sun, 18 Sep 2011 02:39:48 +0800 Subject: Fixed item popup still visible after closing inventory window. Reviewed-by: Bertram. --- src/gui/inventorywindow.cpp | 6 ++++++ src/gui/inventorywindow.h | 5 +++++ src/gui/widgets/itemcontainer.cpp | 5 +++++ src/gui/widgets/itemcontainer.h | 2 ++ src/gui/widgets/window.h | 2 +- 5 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 0dbeb352..2a899fe2 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -237,6 +237,12 @@ Item *InventoryWindow::getSelectedItem() const return mItems->getSelectedItem(); } +void InventoryWindow::widgetHidden(const gcn::Event &event) +{ + Window::widgetHidden(event); + mItems->hidePopup(); +} + void InventoryWindow::mouseClicked(gcn::MouseEvent &event) { Window::mouseClicked(event); diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index ebd2be22..2a6131a2 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -66,6 +66,11 @@ class InventoryWindow : public Window, */ Item* getSelectedItem() const; + /** + * Handles closing of the window + */ + virtual void widgetHidden(const gcn::Event &event); + /** * Handles the mouse clicks. */ diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 2cd0fa23..546a16d2 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -228,6 +228,11 @@ void ItemContainer::distributeValueChangedEvent() } } +void ItemContainer::hidePopup() +{ + mItemPopup->setVisible(false); +} + void ItemContainer::keyPressed(gcn::KeyEvent &event) { /*switch (event.getKey().getValue()) diff --git a/src/gui/widgets/itemcontainer.h b/src/gui/widgets/itemcontainer.h index ca21ad3f..4d5afde2 100644 --- a/src/gui/widgets/itemcontainer.h +++ b/src/gui/widgets/itemcontainer.h @@ -62,6 +62,8 @@ class ItemContainer : public gcn::Widget, virtual ~ItemContainer(); + void hidePopup(); + /** * Necessary for checking how full the inventory is. */ diff --git a/src/gui/widgets/window.h b/src/gui/widgets/window.h index e62f4d92..64631287 100644 --- a/src/gui/widgets/window.h +++ b/src/gui/widgets/window.h @@ -105,7 +105,7 @@ class Window : public gcn::Window, gcn::WidgetListener /** * Called whenever the widget is hidden. */ - virtual void widgetHidden(const gcn::Event& event); + virtual void widgetHidden(const gcn::Event &event); /** * Sets whether or not the window has a close button. -- cgit v1.2.3-70-g09d2