diff options
Diffstat (limited to 'src/gui/setup.cpp')
-rw-r--r-- | src/gui/setup.cpp | 65 |
1 files changed, 46 insertions, 19 deletions
diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp index 59b54be0..c8b7f900 100644 --- a/src/gui/setup.cpp +++ b/src/gui/setup.cpp @@ -1,71 +1,80 @@ /* * The Mana World - * Copyright 2004 The Mana World Development Team + * Copyright (C) 2004 The Mana World Development Team * * This file is part of The Mana World. * - * The Mana World is free software; you can redistribute it and/or modify + * 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. * - * The Mana World is distributed in the hope that it will be useful, + * 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 The Mana World; if not, write to the Free Software + * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include <algorithm> - -#include "setup.h" - #include "button.h" +#include "setup.h" #include "setup_audio.h" +#include "setup_colors.h" #include "setup_joystick.h" -#include "setup_video.h" #include "setup_keyboard.h" +#include "setup_players.h" +#include "setup_video.h" #include "widgets/tabbedarea.h" #include "../utils/dtor.h" #include "../utils/gettext.h" -extern Window *statusWindow; -extern Window *minimap; extern Window *chatWindow; -extern Window *inventoryWindow; extern Window *equipmentWindow; extern Window *helpWindow; +extern Window *inventoryWindow; +extern Window *minimap; extern Window *skillDialog; +extern Window *statusWindow; +extern Window *itemShortcutWindow; +extern Window *emoteShortcutWindow; +extern Window *emoteWindow; +extern Window *tradeWindow; +#ifdef TMWSERV_SUPPORT extern Window *magicDialog; extern Window *guildWindow; -extern Window *itemShortcutWindow; +#endif Setup::Setup(): Window(_("Setup")) { setCloseButton(true); - int width = 260; - int height = 265; + int width = 340; + int height = 340; setContentSize(width, height); static const char *buttonNames[] = { N_("Apply"), N_("Cancel"), N_("Reset Windows"), 0 }; int x = width; - for (const char **curBtn = buttonNames; *curBtn; ++curBtn) { + for (const char **curBtn = buttonNames; *curBtn; ++curBtn) + { Button *btn = new Button(gettext(*curBtn), *curBtn, this); x -= btn->getWidth() + 5; btn->setPosition(x, height - btn->getHeight() - 5); add(btn); + + // Disable this button when the windows aren't created yet + if (!strcmp(*curBtn, "Reset Windows")) + btn->setEnabled(statusWindow != NULL); } - TabbedArea *panel = new TabbedArea(); - panel->setDimension(gcn::Rectangle(5, 5, 260, 225)); + TabbedArea *panel = new TabbedArea; + panel->setDimension(gcn::Rectangle(5, 5, width - 10, height - 40)); SetupTab *tab; @@ -85,6 +94,14 @@ Setup::Setup(): panel->addTab(_("Keyboard"), tab); mTabs.push_back(tab); + tab = new Setup_Colors(); + panel->addTab(_("Colors"), tab); + mTabs.push_back(tab); + + tab = new Setup_Players(); + panel->addTab(_("Players"), tab); + mTabs.push_back(tab); + add(panel); setLocationRelativeTo(getParent()); @@ -109,6 +126,11 @@ void Setup::action(const gcn::ActionEvent &event) } else if (event.getId() == "Reset Windows") { + // Bail out if this action happens to be activated before the windows + // are created (though it should be disabled then) + if (!statusWindow) + return; + statusWindow->resetToDefaultSize(); minimap->resetToDefaultSize(); chatWindow->resetToDefaultSize(); @@ -116,8 +138,13 @@ void Setup::action(const gcn::ActionEvent &event) equipmentWindow->resetToDefaultSize(); helpWindow->resetToDefaultSize(); skillDialog->resetToDefaultSize(); + itemShortcutWindow->resetToDefaultSize(); + emoteShortcutWindow->resetToDefaultSize(); + emoteWindow->resetToDefaultSize(); + tradeWindow->resetToDefaultSize(); +#ifdef TMWSERV_SUPPORT magicDialog->resetToDefaultSize(); guildWindow->resetToDefaultSize(); - itemShortcutWindow->resetToDefaultSize(); +#endif } } |