summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/window.cpp9
-rw-r--r--src/gui/widgets/window.h4
2 files changed, 13 insertions, 0 deletions
diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp
index 7680600ff..a975f2db1 100644
--- a/src/gui/widgets/window.cpp
+++ b/src/gui/widgets/window.cpp
@@ -26,6 +26,7 @@
#include "configuration.h"
#include "graphicsvertexes.h"
#include "logger.h"
+#include "sound.h"
#include "gui/gui.h"
#include "gui/palette.h"
@@ -79,6 +80,7 @@ Window::Window(const std::string &caption, const bool modal,
mGripPadding(2),
mResizeHandles(-1),
mRedraw(true),
+ mPlayVisibleSound(false),
mCaptionFont(getFont())
{
logger->log("Window::Window(\"%s\")", caption.c_str());
@@ -504,6 +506,8 @@ void Window::setVisible(bool visible, bool forceSticky)
gcn::Window::setVisible((!forceSticky && isSticky()) || visible);
if (visible)
{
+ if (mPlayVisibleSound)
+ sound.playGuiSound(SOUND_SHOW_WINDOW);
if (gui)
{
gcn::MouseEvent *event = reinterpret_cast<gcn::MouseEvent*>(
@@ -521,6 +525,11 @@ void Window::setVisible(bool visible, bool forceSticky)
}
}
}
+ else
+ {
+ if (mPlayVisibleSound)
+ sound.playGuiSound(SOUND_HIDE_WINDOW);
+ }
}
void Window::scheduleDelete()
diff --git a/src/gui/widgets/window.h b/src/gui/widgets/window.h
index c8b8fb080..6739b5186 100644
--- a/src/gui/widgets/window.h
+++ b/src/gui/widgets/window.h
@@ -405,6 +405,9 @@ class Window : public gcn::Window, private gcn::WidgetListener
void setCaptionFont(gcn::Font *font)
{ mCaptionFont = font; }
+ void enableVisibleSound(bool b)
+ { mPlayVisibleSound = b; }
+
protected:
bool canMove() const;
@@ -488,6 +491,7 @@ class Window : public gcn::Window, private gcn::WidgetListener
int mGripPadding;
int mResizeHandles;
bool mRedraw;
+ bool mPlayVisibleSound;
gcn::Font *mCaptionFont;
};