diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-03-28 22:42:38 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-03-28 22:42:38 +0300 |
commit | f474ad785704a904fd2b95d56fa67cccf69c876f (patch) | |
tree | 5972ee1355919021f332194cd3ea28d13437e00e /src/gui/windowmenu.cpp | |
parent | 930eeae09a3a7dc31c047d199c77ef9e284d37ba (diff) | |
download | manaplus-f474ad785704a904fd2b95d56fa67cccf69c876f.tar.gz manaplus-f474ad785704a904fd2b95d56fa67cccf69c876f.tar.bz2 manaplus-f474ad785704a904fd2b95d56fa67cccf69c876f.tar.xz manaplus-f474ad785704a904fd2b95d56fa67cccf69c876f.zip |
Add option to autohide buttons on top right corner.
By default buttons hidden.
Diffstat (limited to 'src/gui/windowmenu.cpp')
-rw-r--r-- | src/gui/windowmenu.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 138090075..c57cd8974 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -58,7 +58,9 @@ extern Window *botCheckerWindow; extern Window *socialWindow; WindowMenu::WindowMenu(): - mEmotePopup(nullptr) + mEmotePopup(nullptr), + mHaveMouse(false), + mAutoHide(true) { int x = 0, h = 0; @@ -110,10 +112,15 @@ WindowMenu::WindowMenu(): addMouseListener(this); setVisible(true); + + config.addListener("autohideButtons", this); + mAutoHide = config.getBoolValue("autohideButtons"); } WindowMenu::~WindowMenu() { + config.removeListener("autohideButtons", this); + delete mTextPopup; mTextPopup = nullptr; mButtonNames.clear(); @@ -276,6 +283,8 @@ void WindowMenu::mousePressed(gcn::MouseEvent &event) void WindowMenu::mouseMoved(gcn::MouseEvent &event) { + mHaveMouse = true; + if (!mTextPopup) return; @@ -309,6 +318,7 @@ void WindowMenu::mouseMoved(gcn::MouseEvent &event) void WindowMenu::mouseExited(gcn::MouseEvent& mouseEvent A_UNUSED) { + mHaveMouse = false; if (!mTextPopup) return; @@ -388,3 +398,15 @@ void WindowMenu::saveButtons() for (int f = i; f < 15; f ++) config.deleteKey("windowmenu" + toString(f)); } + +void WindowMenu::drawChildren(gcn::Graphics* graphics) +{ + if (!mAutoHide || mHaveMouse) + Container::drawChildren(graphics); +} + +void WindowMenu::optionChanged(const std::string &name) +{ + if (name == "autohideButtons") + mAutoHide = config.getBoolValue("autohideButtons"); +} |