diff options
Diffstat (limited to 'src/guiVolumeChange.cpp')
-rw-r--r-- | src/guiVolumeChange.cpp | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/src/guiVolumeChange.cpp b/src/guiVolumeChange.cpp index 8425bc04f..c7868ad35 100644 --- a/src/guiVolumeChange.cpp +++ b/src/guiVolumeChange.cpp @@ -30,10 +30,9 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "gettext.h" -const int ID_soundText1 = 263; -const int ID_soundText2 = 264; -const int ID_soundExitButton = 265; -const int ID_soundSlider = 266; +const int ID_soundText = 263; +const int ID_soundExitButton = 264; +const int ID_soundSlider = 265; GUIVolumeChange::GUIVolumeChange(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, @@ -50,10 +49,7 @@ GUIVolumeChange::~GUIVolumeChange() void GUIVolumeChange::removeChildren() { - if (gui::IGUIElement *e = getElementFromId(ID_soundText1)) - e->remove(); - - if (gui::IGUIElement *e = getElementFromId(ID_soundText2)) + if (gui::IGUIElement *e = getElementFromId(ID_soundText)) e->remove(); if (gui::IGUIElement *e = getElementFromId(ID_soundExitButton)) @@ -69,39 +65,35 @@ void GUIVolumeChange::regenerateGui(v2u32 screensize) Remove stuff */ removeChildren(); - + /* Calculate new sizes and positions */ - core::rect<s32> rect( - screensize.X/2 - 380/2, - screensize.Y/2 - 200/2, - screensize.X/2 + 380/2, - screensize.Y/2 + 200/2 + DesiredRect = core::rect<s32>( + screensize.X/2 - 380/2, + screensize.Y/2 - 200/2, + screensize.X/2 + 380/2, + screensize.Y/2 + 200/2 ); - - DesiredRect = rect; recalculateAbsolutePosition(false); - v2s32 size = rect.getSize(); - v2s32 topleft_client(40, 0); - int volume = (int)(g_settings->getFloat("sound_volume")*100); + v2s32 size = DesiredRect.getSize(); + int volume = (int)(g_settings->getFloat("sound_volume") * 100); + /* Add stuff */ { - core::rect<s32> rect(0, 0, 120, 20); - rect = rect + v2s32(size.X/2-60, size.Y/2-35); + core::rect<s32> rect(0, 0, 160, 20); + rect = rect + v2s32(size.X / 2 - 80, size.Y / 2 - 35); + const wchar_t *text = wgettext("Sound Volume: "); - Environment->addStaticText(text, rect, false, - true, this, ID_soundText1); - delete[] text; - } - { - core::rect<s32> rect(0, 0, 30, 20); - rect = rect + v2s32(size.X/2+40, size.Y/2-35); - Environment->addStaticText(core::stringw(volume).c_str(), rect, false, - true, this, ID_soundText2); + core::stringw volume_text = text; + delete [] text; + + volume_text += core::stringw(volume) + core::stringw("%"); + Environment->addStaticText(volume_text.c_str(), rect, false, + true, this, ID_soundText); } { core::rect<s32> rect(0, 0, 80, 30); @@ -156,10 +148,15 @@ bool GUIVolumeChange::OnEvent(const SEvent& event) if (event.GUIEvent.EventType == gui::EGET_SCROLL_BAR_CHANGED) { if (event.GUIEvent.Caller->getID() == ID_soundSlider) { s32 pos = ((gui::IGUIScrollBar*)event.GUIEvent.Caller)->getPos(); - g_settings->setFloat("sound_volume", (float)pos/100); + g_settings->setFloat("sound_volume", (float) pos / 100); + + gui::IGUIElement *e = getElementFromId(ID_soundText); + const wchar_t *text = wgettext("Sound Volume: "); + core::stringw volume_text = text; + delete [] text; - gui::IGUIElement *e = getElementFromId(ID_soundText2); - e->setText(core::stringw(pos).c_str()); + volume_text += core::stringw(pos) + core::stringw("%"); + e->setText(volume_text.c_str()); return true; } } |