From f2a0fe945ac44814b271bf3fb6e9df1464d6ccc5 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Wed, 8 Apr 2009 07:06:50 -0600 Subject: Make some more file build for both servers Also some cleanup in main.cpp --- src/gui/char_server.cpp | 123 ----------------------------------------- src/gui/char_server.h | 65 ---------------------- src/gui/serverselectdialog.cpp | 123 +++++++++++++++++++++++++++++++++++++++++ src/gui/serverselectdialog.h | 65 ++++++++++++++++++++++ 4 files changed, 188 insertions(+), 188 deletions(-) delete mode 100644 src/gui/char_server.cpp delete mode 100644 src/gui/char_server.h create mode 100644 src/gui/serverselectdialog.cpp create mode 100644 src/gui/serverselectdialog.h (limited to 'src/gui') diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp deleted file mode 100644 index 48f8dedc..00000000 --- a/src/gui/char_server.cpp +++ /dev/null @@ -1,123 +0,0 @@ -/* - * The Mana World - * Copyright (C) 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "gui/char_server.h" - -#include "gui/widgets/button.h" -#include "gui/widgets/listbox.h" -#include "gui/widgets/scrollarea.h" - -#include "logindata.h" -#include "main.h" -#include "serverinfo.h" - -#include "utils/gettext.h" -#include "utils/stringutils.h" - -extern SERVER_INFO **server_info; - -/** - * The list model for the server list. - */ -class ServerListModel : public gcn::ListModel -{ - public: - virtual ~ServerListModel() {}; - - int getNumberOfElements(); - std::string getElementAt(int i); -}; - -ServerSelectDialog::ServerSelectDialog(LoginData *loginData, int nextState): - Window(_("Select Server")), - mLoginData(loginData), - mNextState(nextState) -{ - mServerListModel = new ServerListModel; - mServerList = new ListBox(mServerListModel); - ScrollArea *mScrollArea = new ScrollArea(mServerList); - mOkButton = new Button(_("OK"), "ok", this); - Button *mCancelButton = new Button(_("Cancel"), "cancel", this); - - setContentSize(200, 100); - - mCancelButton->setPosition( - 200 - mCancelButton->getWidth() - 5, - 100 - mCancelButton->getHeight() - 5); - mOkButton->setPosition( - mCancelButton->getX() - mOkButton->getWidth() - 5, - 100 - mOkButton->getHeight() - 5); - mScrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); - mScrollArea->setDimension(gcn::Rectangle( - 5, 5, 200 - 2 * 5, - 100 - 3 * 5 - mCancelButton->getHeight() - - mScrollArea->getFrameSize())); - - mServerList->setActionEventId("ok"); - - //mServerList->addActionListener(this); - - add(mScrollArea); - add(mOkButton); - add(mCancelButton); - - if (n_server == 0) - // Disable Ok button - mOkButton->setEnabled(false); - else - // Select first server - mServerList->setSelected(1); - - center(); - setVisible(true); - mOkButton->requestFocus(); -} - -ServerSelectDialog::~ServerSelectDialog() -{ - delete mServerListModel; -} - -void ServerSelectDialog::action(const gcn::ActionEvent &event) -{ - if (event.getId() == "ok") - { - mOkButton->setEnabled(false); - const SERVER_INFO *si = server_info[mServerList->getSelected()]; - mLoginData->hostname = ipToString(si->address); - mLoginData->port = si->port; - mLoginData->updateHost = si->updateHost; - state = mNextState; - } - else if (event.getId() == "cancel") - state = STATE_LOGIN; -} - -int ServerListModel::getNumberOfElements() -{ - return n_server; -} - -std::string ServerListModel::getElementAt(int i) -{ - const SERVER_INFO *si = server_info[i]; - return si->name + " (" + toString(si->online_users) + ")"; -} diff --git a/src/gui/char_server.h b/src/gui/char_server.h deleted file mode 100644 index b80ad286..00000000 --- a/src/gui/char_server.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * The Mana World - * Copyright (C) 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef _CHAR_SEL_SERVER_H -#define _CHAR_SEL_SERVER_H - -#include "gui/widgets/window.h" - -#include -#include - -class LoginData; -class ServerListModel; - -/** - * The server select dialog. - * - * \ingroup Interface - */ -class ServerSelectDialog : public Window, public gcn::ActionListener { - public: - /** - * Constructor - * - * @see Window::Window - */ - ServerSelectDialog(LoginData *loginData, int nextState); - - /** - * Destructor. - */ - ~ServerSelectDialog(); - - /** - * Called when receiving actions from the widgets. - */ - void action(const gcn::ActionEvent &event); - - private: - LoginData *mLoginData; - ServerListModel *mServerListModel; - gcn::ListBox *mServerList; - gcn::Button *mOkButton; - int mNextState; -}; - -#endif diff --git a/src/gui/serverselectdialog.cpp b/src/gui/serverselectdialog.cpp new file mode 100644 index 00000000..bcc756b7 --- /dev/null +++ b/src/gui/serverselectdialog.cpp @@ -0,0 +1,123 @@ +/* + * The Mana World + * Copyright (C) 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "gui/serverselectdialog.h" + +#include "gui/widgets/button.h" +#include "gui/widgets/listbox.h" +#include "gui/widgets/scrollarea.h" + +#include "logindata.h" +#include "main.h" +#include "serverinfo.h" + +#include "utils/gettext.h" +#include "utils/stringutils.h" + +extern SERVER_INFO **server_info; + +/** + * The list model for the server list. + */ +class ServerListModel : public gcn::ListModel +{ + public: + virtual ~ServerListModel() {} + + int getNumberOfElements(); + std::string getElementAt(int i); +}; + +ServerSelectDialog::ServerSelectDialog(LoginData *loginData, int nextState): + Window(_("Select Server")), + mLoginData(loginData), + mNextState(nextState) +{ + mServerListModel = new ServerListModel; + mServerList = new ListBox(mServerListModel); + ScrollArea *mScrollArea = new ScrollArea(mServerList); + mOkButton = new Button(_("OK"), "ok", this); + Button *mCancelButton = new Button(_("Cancel"), "cancel", this); + + setContentSize(200, 100); + + mCancelButton->setPosition( + 200 - mCancelButton->getWidth() - 5, + 100 - mCancelButton->getHeight() - 5); + mOkButton->setPosition( + mCancelButton->getX() - mOkButton->getWidth() - 5, + 100 - mOkButton->getHeight() - 5); + mScrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); + mScrollArea->setDimension(gcn::Rectangle( + 5, 5, 200 - 2 * 5, + 100 - 3 * 5 - mCancelButton->getHeight() - + mScrollArea->getFrameSize())); + + mServerList->setActionEventId("ok"); + + //mServerList->addActionListener(this); + + add(mScrollArea); + add(mOkButton); + add(mCancelButton); + + if (n_server == 0) + // Disable Ok button + mOkButton->setEnabled(false); + else + // Select first server + mServerList->setSelected(1); + + center(); + setVisible(true); + mOkButton->requestFocus(); +} + +ServerSelectDialog::~ServerSelectDialog() +{ + delete mServerListModel; +} + +void ServerSelectDialog::action(const gcn::ActionEvent &event) +{ + if (event.getId() == "ok") + { + mOkButton->setEnabled(false); + const SERVER_INFO *si = server_info[mServerList->getSelected()]; + mLoginData->hostname = ipToString(si->address); + mLoginData->port = si->port; + mLoginData->updateHost = si->updateHost; + state = mNextState; + } + else if (event.getId() == "cancel") + state = STATE_LOGIN; +} + +int ServerListModel::getNumberOfElements() +{ + return n_server; +} + +std::string ServerListModel::getElementAt(int i) +{ + const SERVER_INFO *si = server_info[i]; + return si->name + " (" + toString(si->online_users) + ")"; +} diff --git a/src/gui/serverselectdialog.h b/src/gui/serverselectdialog.h new file mode 100644 index 00000000..b80ad286 --- /dev/null +++ b/src/gui/serverselectdialog.h @@ -0,0 +1,65 @@ +/* + * The Mana World + * Copyright (C) 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _CHAR_SEL_SERVER_H +#define _CHAR_SEL_SERVER_H + +#include "gui/widgets/window.h" + +#include +#include + +class LoginData; +class ServerListModel; + +/** + * The server select dialog. + * + * \ingroup Interface + */ +class ServerSelectDialog : public Window, public gcn::ActionListener { + public: + /** + * Constructor + * + * @see Window::Window + */ + ServerSelectDialog(LoginData *loginData, int nextState); + + /** + * Destructor. + */ + ~ServerSelectDialog(); + + /** + * Called when receiving actions from the widgets. + */ + void action(const gcn::ActionEvent &event); + + private: + LoginData *mLoginData; + ServerListModel *mServerListModel; + gcn::ListBox *mServerList; + gcn::Button *mOkButton; + int mNextState; +}; + +#endif -- cgit v1.2.3-70-g09d2