summaryrefslogtreecommitdiff
path: root/src/gui/windows/setupwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows/setupwindow.cpp')
-rw-r--r--src/gui/windows/setupwindow.cpp335
1 files changed, 0 insertions, 335 deletions
diff --git a/src/gui/windows/setupwindow.cpp b/src/gui/windows/setupwindow.cpp
deleted file mode 100644
index eeb86ce7d..000000000
--- a/src/gui/windows/setupwindow.cpp
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2004-2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2017 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "gui/windows/setupwindow.h"
-
-#include "configuration.h"
-#include "game.h"
-#include "main.h"
-
-#include "gui/windows/chatwindow.h"
-#include "gui/windows/statuswindow.h"
-
-#include "gui/widgets/createwidget.h"
-
-#include "gui/widgets/tabs/setup_audio.h"
-#include "gui/widgets/tabs/setup_chat.h"
-#include "gui/widgets/tabs/setup_colors.h"
-#include "gui/widgets/tabs/setup_input.h"
-#include "gui/widgets/tabs/setup_joystick.h"
-#include "gui/widgets/tabs/setup_misc.h"
-#include "gui/widgets/tabs/setup_mods.h"
-#include "gui/widgets/tabs/setup_perfomance.h"
-#include "gui/widgets/tabs/setup_players.h"
-#include "gui/widgets/tabs/setup_quick.h"
-#include "gui/widgets/tabs/setup_relations.h"
-#include "gui/widgets/tabs/setup_theme.h"
-#include "gui/widgets/tabs/setup_touch.h"
-#include "gui/widgets/tabs/setup_video.h"
-#include "gui/widgets/tabs/setup_visual.h"
-
-#include "gui/widgets/button.h"
-#include "gui/widgets/label.h"
-#include "gui/widgets/tabbedarea.h"
-
-#include "input/touch/touchmanager.h"
-
-#include "utils/delete2.h"
-#include "utils/dtor.h"
-#include "utils/foreach.h"
-#include "utils/gettext.h"
-
-#include "debug.h"
-
-SetupWindow *setupWindow = nullptr;
-
-SetupWindow::SetupWindow() :
- // TRANSLATORS: setup window name
- Window(_("Setup"), Modal_false, nullptr, "setup.xml"),
- ActionListener(),
- mTabs(),
- mWindowsToReset(),
- mButtons(),
- mModsTab(nullptr),
- mQuickTab(nullptr),
- mResetWindows(nullptr),
- mPanel(CREATEWIDGETR(TabbedArea, this)),
- mVersion(new Label(this, FULL_VERSION)),
- mButtonPadding(5)
-{
- setCloseButton(true);
- setResizable(true);
- setStickyButtonLock(true);
-}
-
-void SetupWindow::postInit()
-{
- Window::postInit();
- int width = 620;
- const int height = 450;
-
- if (config.getIntValue("screenwidth") >= 730)
- width += 100;
-
- setContentSize(width, height);
- setMinWidth(310);
- setMinHeight(210);
-
- mPanel->setSelectable(false);
- mPanel->getTabContainer()->setSelectable(false);
- mPanel->getWidgetContainer()->setSelectable(false);
-
- static const char *const buttonNames[] =
- {
- // TRANSLATORS: setup button
- N_("Apply"),
- // TRANSLATORS: setup button
- N_("Cancel"),
- // TRANSLATORS: setup button
- N_("Store"),
- // TRANSLATORS: setup button
- N_("Reset Windows"),
- nullptr
- };
- int x = width;
- mButtonPadding = getOption("buttonPadding", 5);
- for (const char *const * curBtn = buttonNames;
- *curBtn != nullptr;
- ++ curBtn)
- {
- Button *const btn = new Button(this, gettext(*curBtn), *curBtn, this);
- mButtons.push_back(btn);
- x -= btn->getWidth() + mButtonPadding;
- btn->setPosition(x, height - btn->getHeight() - mButtonPadding);
- add(btn);
-
- // Store this button, as it needs to be enabled/disabled
- if (strcmp(*curBtn, "Reset Windows") == 0)
- mResetWindows = btn;
- }
-
- mPanel->setDimension(Rect(5, 5, width - 10, height - 40));
- mPanel->enableScrollButtons(true);
-
- mTabs.push_back(new Setup_Video(this));
- mTabs.push_back(new Setup_Visual(this));
- mTabs.push_back(new Setup_Audio(this));
- mTabs.push_back(new Setup_Perfomance(this));
- mTabs.push_back(new Setup_Touch(this));
- mTabs.push_back(new Setup_Input(this));
- mTabs.push_back(new Setup_Joystick(this));
- mTabs.push_back(new Setup_Colors(this));
- mTabs.push_back(new Setup_Chat(this));
- mTabs.push_back(new Setup_Players(this));
- mTabs.push_back(new Setup_Relations(this));
- mTabs.push_back(new Setup_Theme(this));
- mTabs.push_back(new Setup_Misc(this));
-
- FOR_EACH (std::list<SetupTab*>::const_iterator, i, mTabs)
- {
- SetupTab *const tab = *i;
- mPanel->addTab(tab->getName(), tab);
- }
- add(mPanel);
-
- if (mResetWindows != nullptr)
- {
- mVersion->setPosition(9,
- height - mVersion->getHeight() - mResetWindows->getHeight() - 9);
- }
- else
- {
- mVersion->setPosition(9, height - mVersion->getHeight() - 30);
- }
- add(mVersion);
-
- center();
-
- widgetResized(Event(nullptr));
- setInGame(false);
- enableVisibleSound(true);
-}
-
-SetupWindow::~SetupWindow()
-{
- delete_all(mTabs);
- mButtons.clear();
- setupWindow = nullptr;
-}
-
-void SetupWindow::action(const ActionEvent &event)
-{
- if (Game::instance() != nullptr)
- Game::instance()->resetAdjustLevel();
- const std::string &eventId = event.getId();
-
- if (eventId == "Apply")
- {
- setVisible(Visible_false);
- for_each(mTabs.begin(), mTabs.end(), std::mem_fun(&SetupTab::apply));
- }
- else if (eventId == "Cancel")
- {
- doCancel();
- }
- else if (eventId == "Store")
- {
- if (chatWindow != nullptr)
- chatWindow->saveState();
- config.write();
- serverConfig.write();
- }
- else if (eventId == "Reset Windows")
- {
- // Bail out if this action happens to be activated before the windows
- // are created (though it should be disabled then)
- if (statusWindow == nullptr)
- return;
-
- FOR_EACH (std::list<Window*>::const_iterator, it, mWindowsToReset)
- {
- if (*it != nullptr)
- (*it)->resetToDefaultSize();
- }
- }
-}
-
-void SetupWindow::setInGame(const bool inGame)
-{
- if (mResetWindows != nullptr)
- mResetWindows->setEnabled(inGame);
-}
-
-void SetupWindow::externalUpdate()
-{
- unloadAdditionalTabs();
- mModsTab = new Setup_Mods(this);
- mTabs.push_back(mModsTab);
- mPanel->addTab(mModsTab->getName(), mModsTab);
- mQuickTab = new Setup_Quick(this);
- mTabs.push_back(mQuickTab);
- mPanel->addTab(mQuickTab->getName(), mQuickTab);
- FOR_EACH (std::list<SetupTab*>::const_iterator, it, mTabs)
- {
- if (*it != nullptr)
- (*it)->externalUpdated();
- }
-}
-
-void SetupWindow::unloadTab(SetupTab *const page)
-{
- if (page != nullptr)
- {
- mTabs.remove(page);
- mPanel->removeTab(mPanel->getTab(page->getName()));
- }
-}
-
-void SetupWindow::unloadAdditionalTabs()
-{
- unloadTab(mModsTab);
- unloadTab(mQuickTab);
- delete2(mModsTab);
- delete2(mQuickTab);
-}
-
-void SetupWindow::externalUnload()
-{
- FOR_EACH (std::list<SetupTab*>::const_iterator, it, mTabs)
- {
- if (*it != nullptr)
- (*it)->externalUnloaded();
- }
- unloadAdditionalTabs();
-}
-
-void SetupWindow::registerWindowForReset(Window *const window)
-{
- mWindowsToReset.push_back(window);
-}
-
-void SetupWindow::unregisterWindowForReset(const Window *const window)
-{
- FOR_EACH (std::list<Window*>::iterator, it, mWindowsToReset)
- {
- if (*it == window)
- {
- mWindowsToReset.erase(it);
- return;
- }
- }
-}
-
-void SetupWindow::hideWindows()
-{
- FOR_EACH (std::list<Window*>::const_iterator, it, mWindowsToReset)
- {
- Window *const window = *it;
- if ((window != nullptr) && !window->isSticky())
- window->setVisible(Visible_false);
- }
- setVisible(Visible_false);
-}
-
-void SetupWindow::doCancel()
-{
- setVisible(Visible_false);
- for_each(mTabs.begin(), mTabs.end(), std::mem_fun(&SetupTab::cancel));
-}
-
-void SetupWindow::activateTab(const std::string &name)
-{
- std::string tmp = gettext(name.c_str());
- mPanel->setSelectedTabByName(tmp);
-}
-
-void SetupWindow::setVisible(Visible visible)
-{
- touchManager.setTempHide(visible == Visible_true);
- Window::setVisible(visible);
-}
-
-void SetupWindow::widgetResized(const Event &event)
-{
- Window::widgetResized(event);
-
- const Rect area = getChildrenArea();
- int x = area.width;
- const int height = area.height;
- const int width = area.width;
- mPanel->setDimension(Rect(5, 5, width - 10, height - 40));
- FOR_EACH (STD_VECTOR<Button*>::iterator, it, mButtons)
- {
- Button *const btn = *it;
- x -= btn->getWidth() + mButtonPadding;
- btn->setPosition(x, height - btn->getHeight() - mButtonPadding);
- }
- if (mResetWindows != nullptr)
- {
- mVersion->setPosition(9,
- height - mVersion->getHeight() - mResetWindows->getHeight() - 9);
- }
- else
- {
- mVersion->setPosition(9, height - mVersion->getHeight() - 30);
- }
-}