diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-02-01 04:15:19 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-02-01 04:15:19 +0300 |
commit | 292968544ed758ae58c29b613cb89a7b67e551fa (patch) | |
tree | 710b40f187592a1f3efb44b308a457f002f096f8 /src/gui/customserverdialog.cpp | |
parent | d90303a19147d679f46759aba8b8711962b6e176 (diff) | |
download | manaverse-292968544ed758ae58c29b613cb89a7b67e551fa.tar.gz manaverse-292968544ed758ae58c29b613cb89a7b67e551fa.tar.bz2 manaverse-292968544ed758ae58c29b613cb89a7b67e551fa.tar.xz manaverse-292968544ed758ae58c29b613cb89a7b67e551fa.zip |
Rename CustomServerDialog to EditServerDialog.
Use EditServerDialog for adding new servers to ServerDialog.
Diffstat (limited to 'src/gui/customserverdialog.cpp')
-rw-r--r-- | src/gui/customserverdialog.cpp | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/src/gui/customserverdialog.cpp b/src/gui/customserverdialog.cpp deleted file mode 100644 index b84595d0d..000000000 --- a/src/gui/customserverdialog.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/* - * The Mana Client - * Copyright (C) 2011-2012 The Mana Developers - * - * This file is part of The Mana 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/customserverdialog.h" - -#include "configuration.h" - -#include "gui/okdialog.h" -#include "gui/sdlinput.h" -#include "gui/serverdialog.h" - -#include "gui/widgets/button.h" -#include "gui/widgets/dropdown.h" -#include "gui/widgets/label.h" -#include "gui/widgets/layout.h" -#include "gui/widgets/textfield.h" - -#include "utils/gettext.h" - -std::string TypeListModel::getElementAt(int elementIndex) -{ - if (elementIndex == 0) - return "TmwAthena"; - else if (elementIndex == 1) - return "ManaServ"; - else - return "Unknown"; -} - -CustomServerDialog::CustomServerDialog(ServerDialog *parent, int index): - Window(_("Custom Server"), true, parent), - mServerDialog(parent), - mIndex(index) -{ - setWindowName("CustomServerDialog"); - - Label *nameLabel = new Label(_("Name:")); - Label *serverAdressLabel = new Label(_("Address:")); - Label *portLabel = new Label(_("Port:")); - Label *typeLabel = new Label(_("Server type:")); - Label *descriptionLabel = new Label(_("Description:")); - mServerAddressField = new TextField(std::string()); - mPortField = new TextField(std::string()); - - mTypeListModel = new TypeListModel(); - mTypeField = new DropDown(mTypeListModel); - mTypeField->setSelected(0); // TmwAthena by default for now. - - mNameField = new TextField(std::string()); - mDescriptionField = new TextField(std::string()); - - mOkButton = new Button(_("Ok"), "addServer", this); - mCancelButton = new Button(_("Cancel"), "cancel", this); - - mServerAddressField->addActionListener(this); - mPortField->addActionListener(this); - - place(0, 0, nameLabel); - place(1, 0, mNameField, 4).setPadding(3); - place(0, 1, serverAdressLabel); - place(1, 1, mServerAddressField, 4).setPadding(3); - place(0, 2, portLabel); - place(1, 2, mPortField, 4).setPadding(3); - place(0, 3, typeLabel); - place(1, 3, mTypeField).setPadding(3); - place(0, 4, descriptionLabel); - place(1, 4, mDescriptionField, 4).setPadding(3); - place(4, 5, mOkButton); - place(3, 5, mCancelButton); - - // Do this manually instead of calling reflowLayout so we can enforce a - // minimum width. - int width = 0, height = 0; - getLayout().reflow(width, height); - if (width < 300) - { - width = 300; - getLayout().reflow(width, height); - } - if (height < 120) - { - height = 120; - getLayout().reflow(width, height); - } - - setContentSize(width, height); - - setMinWidth(getWidth()); - setMinHeight(getHeight()); - setDefaultSize(getWidth(), getHeight(), ImageRect::CENTER); - - setResizable(false); - addKeyListener(this); - - loadWindowState(); - - // Add the entry's info when in modify mode. - if (index > -1) - { - const ServerInfo &serverInfo = mServerDialog->mServers[index]; - mNameField->setText(serverInfo.name); - mDescriptionField->setText(serverInfo.description); - mServerAddressField->setText(serverInfo.hostname); - mPortField->setText(toString(serverInfo.port)); - mTypeField->setSelected(serverInfo.type ? ServerInfo::MANASERV : - ServerInfo::TMWATHENA); - } - - setLocationRelativeTo(getParentWindow()); - setVisible(true); - - mNameField->requestFocus(); -} - -CustomServerDialog::~CustomServerDialog() -{ - delete mTypeListModel; -} - -void CustomServerDialog::logic() -{ - Window::logic(); -} - -void CustomServerDialog::action(const gcn::ActionEvent &event) -{ - if (event.getId() == "ok") - { - // Give focus back to the server dialog. - mServerAddressField->requestFocus(); - } - if (event.getId() == "addServer") - { - // Check the given information - if (mServerAddressField->getText().empty() - || mPortField->getText().empty()) - { - OkDialog *dlg = new OkDialog(_("Error"), - _("Please at least type both the address and the port " - "of the server.")); - dlg->addActionListener(this); - } - else - { - mCancelButton->setEnabled(false); - mOkButton->setEnabled(false); - - ServerInfo serverInfo; - serverInfo.name = mNameField->getText(); - serverInfo.description = mDescriptionField->getText(); - serverInfo.hostname = mServerAddressField->getText(); - serverInfo.port = (short) atoi(mPortField->getText().c_str()); - switch (mTypeField->getSelected()) - { - case 0: - serverInfo.type = ServerInfo::TMWATHENA; - break; - case 1: - serverInfo.type = ServerInfo::MANASERV; - break; - default: - serverInfo.type = ServerInfo::UNKNOWN; - } - - // Tell the server has to be saved - serverInfo.save = true; - - //Add server - mServerDialog->saveCustomServers(serverInfo, mIndex); - scheduleDelete(); - } - } - else if (event.getId() == "cancel") - { - scheduleDelete(); - } -} - -void CustomServerDialog::keyPressed(gcn::KeyEvent &keyEvent) -{ - gcn::Key key = keyEvent.getKey(); - - if (key.getValue() == Key::ESCAPE) - { - scheduleDelete(); - } - else if (key.getValue() == Key::ENTER) - { - action(gcn::ActionEvent(NULL, mOkButton->getActionEventId())); - } -} |