summaryrefslogtreecommitdiff
path: root/src/gui/windowmenu.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-03-28 22:42:38 +0300
committerAndrei Karas <akaras@inbox.ru>2012-03-28 22:42:38 +0300
commitf474ad785704a904fd2b95d56fa67cccf69c876f (patch)
tree5972ee1355919021f332194cd3ea28d13437e00e /src/gui/windowmenu.cpp
parent930eeae09a3a7dc31c047d199c77ef9e284d37ba (diff)
downloadplus-f474ad785704a904fd2b95d56fa67cccf69c876f.tar.gz
plus-f474ad785704a904fd2b95d56fa67cccf69c876f.tar.bz2
plus-f474ad785704a904fd2b95d56fa67cccf69c876f.tar.xz
plus-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.cpp24
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");
+}