diff options
Diffstat (limited to 'src/gui/charselectdialog.h')
-rw-r--r-- | src/gui/charselectdialog.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/src/gui/charselectdialog.h b/src/gui/charselectdialog.h new file mode 100644 index 00000000..75a98465 --- /dev/null +++ b/src/gui/charselectdialog.h @@ -0,0 +1,112 @@ +/* + * 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_SELECT_H +#define CHAR_SELECT_H + +#include "gui/widgets/window.h" + +#include "being.h" +#include "guichanfwd.h" +#include "lockedarray.h" + +#include <guichan/actionlistener.hpp> + +#ifdef TMWSERV_SUPPORT +#include "../logindata.h" +#endif + +class LocalPlayer; +class Player; +class PlayerBox; + +/** + * Character selection dialog. + * + * \ingroup Interface + */ +class CharSelectDialog : public Window, public gcn::ActionListener +{ + public: + friend class CharDeleteConfirm; + /** + * Constructor. + */ +#ifdef TMWSERV_SUPPORT + CharSelectDialog(LockedArray<LocalPlayer*> *charInfo, + LoginData *loginData); +#else + CharSelectDialog(LockedArray<LocalPlayer*> *charInfo, + Gender gender); +#endif + + void action(const gcn::ActionEvent &event); + + void updatePlayerInfo(); + + void logic(); + + bool selectByName(const std::string &name); + + private: + LockedArray<LocalPlayer*> *mCharInfo; + + gcn::Button *mSelectButton; + gcn::Button *mCancelButton; + gcn::Button *mPreviousButton; + gcn::Button *mNextButton; + + gcn::Label *mNameLabel; + gcn::Label *mLevelLabel; + gcn::Label *mMoneyLabel; + std::string mMoney; + + PlayerBox *mPlayerBox; + + bool mCharSelected; + +#ifdef TMWSERV_SUPPORT + gcn::Button *mNewCharButton; + gcn::Button *mDelCharButton; + gcn::Button *mUnRegisterButton; + gcn::Button *mChangePasswordButton; + gcn::Button *mChangeEmailButton; + gcn::Label *mAccountNameLabel; + + LoginData *mLoginData; +#else + gcn::Button *mNewDelCharButton; + gcn::Label *mJobLevelLabel; + Gender mGender; +#endif + + /** + * Communicate character deletion to the server. + */ + void attemptCharDelete(); + + /** + * Communicate character selection to the server. + */ + void attemptCharSelect(); +}; + +#endif |