summaryrefslogtreecommitdiff
path: root/src/gui/login.cpp
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2005-09-13 01:08:06 +0000
committerBjörn Steinbrink <B.Steinbrink@gmx.de>2005-09-13 01:08:06 +0000
commit6a8f1f5914721d1e8b8f9688b1d6ab71c0ed9bce (patch)
tree1a846219c3fdf6b3a0b2f17f15c4da4fec406845 /src/gui/login.cpp
parent07b3632e605488221f34bff48f298b394af7083a (diff)
downloadmana-client-6a8f1f5914721d1e8b8f9688b1d6ab71c0ed9bce.tar.gz
mana-client-6a8f1f5914721d1e8b8f9688b1d6ab71c0ed9bce.tar.bz2
mana-client-6a8f1f5914721d1e8b8f9688b1d6ab71c0ed9bce.tar.xz
mana-client-6a8f1f5914721d1e8b8f9688b1d6ab71c0ed9bce.zip
Unified the loops for the various dialogs that are shown before the actual game starts.
Diffstat (limited to 'src/gui/login.cpp')
-rw-r--r--src/gui/login.cpp67
1 files changed, 23 insertions, 44 deletions
diff --git a/src/gui/login.cpp b/src/gui/login.cpp
index 8f26cf7d..a8ecf6a2 100644
--- a/src/gui/login.cpp
+++ b/src/gui/login.cpp
@@ -25,8 +25,7 @@
#include <string>
#include <sstream>
-
-#include <guichan/sdl/sdlinput.hpp>
+#include <SDL.h>
#include <guichan/widgets/label.hpp>
@@ -34,40 +33,47 @@
#include "button.h"
#include "checkbox.h"
-#include "gui.h"
#include "passwordfield.h"
#include "textfield.h"
#include "ok_dialog.h"
#include "../configuration.h"
-#include "../graphics.h"
#include "../log.h"
#include "../serverinfo.h"
#include "../net/network.h"
-extern Graphics *graphics;
-
OkDialog *wrongLoginNotice = NULL;
-LoginDialog *loginDialog = NULL;
WrongUsernameNoticeListener wrongUsernameNoticeListener;
WrongPasswordNoticeListener wrongPasswordNoticeListener;
+void WrongPasswordNoticeListener::setLoginDialog(
+ LoginDialog *loginDialog)
+{
+ mLoginDialog = loginDialog;
+}
+
void WrongPasswordNoticeListener::action(const std::string &eventId)
{
// Reset the password and put the caret ready to retype it.
- loginDialog->passField->setText("");
- loginDialog->passField->setCaretPosition(0);
- loginDialog->passField->requestFocus();
+ mLoginDialog->passField->setText("");
+ mLoginDialog->passField->setCaretPosition(0);
+ mLoginDialog->passField->requestFocus();
wrongLoginNotice = NULL;
}
+void WrongUsernameNoticeListener::setLoginDialog(
+ LoginDialog *loginDialog)
+{
+ mLoginDialog = loginDialog;
+}
+
void WrongUsernameNoticeListener::action(const std::string &eventId)
{
// Set the focus on the username Field
- loginDialog->userField->setCaretPosition(LEN_MAX_USERNAME - 1);
- loginDialog->userField->requestFocus();
+ mLoginDialog->userField->setCaretPosition(LEN_MAX_USERNAME - 1);
+ mLoginDialog->userField->requestFocus();
wrongLoginNotice = NULL;
}
@@ -148,6 +154,8 @@ LoginDialog::LoginDialog():
serverField->setText(config.getValue("host", ""));
+ wrongUsernameNoticeListener.setLoginDialog(this);
+ wrongPasswordNoticeListener.setLoginDialog(this);
}
LoginDialog::~LoginDialog()
@@ -277,43 +285,14 @@ void LoginDialog::action(const std::string& eventId)
}
}
-
-void login()
+void loginInputHandler(SDL_KeyboardEvent *keyEvent)
{
- loginDialog = new LoginDialog();
-
- while (state == LOGIN)
+ if (keyEvent->keysym.sym == SDLK_ESCAPE)
{
- // Handle SDL events
- SDL_Event event;
- while (SDL_PollEvent(&event)) {
- switch (event.type) {
- case SDL_QUIT:
- state = EXIT;
- break;
-
- case SDL_KEYDOWN:
- if (event.key.keysym.sym == SDLK_ESCAPE)
- {
- state = EXIT;
- }
- break;
- }
-
- guiInput->pushInput(event);
- }
-
- gui->logic();
-
- graphics->drawImage(login_wallpaper, 0, 0);
- gui->draw();
- graphics->updateScreen();
+ state = EXIT;
}
-
- delete loginDialog;
}
-
int attemptLogin(const std::string& user, const std::string& pass) {
username = user;
password = pass;