summaryrefslogtreecommitdiff
path: root/src/gui/login.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/login.h')
-rw-r--r--src/gui/login.h58
1 files changed, 57 insertions, 1 deletions
diff --git a/src/gui/login.h b/src/gui/login.h
index e08120cb..8a228b5f 100644
--- a/src/gui/login.h
+++ b/src/gui/login.h
@@ -18,18 +18,23 @@
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Id$
+ * $Id: login.h 3234 2007-03-24 13:05:27Z b_lindeijer $
*/
#ifndef _TMW_LOGIN_H
#define _TMW_LOGIN_H
#include <iosfwd>
+#include <vector>
+#include <string>
+
#include <guichan/actionlistener.hpp>
#include <guichan/keylistener.hpp>
#include "window.h"
#include "../guichanfwd.h"
+#include "widgets/dropdown.h"
+#include "scrollarea.h"
class LoginData;
@@ -72,15 +77,66 @@ class LoginDialog : public Window, public gcn::ActionListener,
bool
canSubmit();
+ /**
+ * Function to decide whether string is an unsigned short or not
+ *
+ * @param str the string to parse
+ *
+ * @return true is str is an unsigned short, false otherwise
+ */
+ static bool
+ isUShort(const std::string &str);
+
+ /**
+ * Converts string to an unsigned short (undefined if invalid)
+ *
+ * @param str the string to parse
+ *
+ * @return the value str represents
+ */
+ static unsigned short
+ getUShort(const std::string &str);
+
+ DropDown *mServerDropDown;
gcn::TextField *mUserField;
gcn::TextField *mPassField;
gcn::TextField *mServerField;
+ gcn::TextField *mPortField;
gcn::CheckBox *mKeepCheck;
gcn::Button *mOkButton;
gcn::Button *mCancelButton;
gcn::Button *mRegisterButton;
LoginData *mLoginData;
+
+ /**
+ * Helper class to keep a list of all the recent entries for the
+ * dropdown
+ */
+ class DropDownList : public gcn::ListModel
+ {
+ private:
+ std::vector<std::string> mServers;
+ std::vector<std::string> mPorts;
+ std::string mConfigPrefix;
+ int mMaxEntries;
+ void saveEntry(const std::string &server,
+ const std::string &port, int &saved);
+ public:
+ DropDownList(std::string prefix,
+ std::string dfltServer,
+ std::string dfltPort,
+ int maxEntries);
+ void save(const std::string &server, const std::string &port);
+ int getNumberOfElements();
+ std::string getElementAt(int i);
+ std::string getServerAt(int i);
+ std::string getPortAt(int i);
+ };
+ DropDownList *mServerList;
+ gcn::ListBox *mServerListBox;
+ ScrollArea *mServerScrollArea;
+
};
#endif