summaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-24 23:33:32 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-24 23:33:32 (GMT)
commit35858ef6073092f8447bbec8b18b768061cf8bd0 (patch)
tree1ad7e7e9272f6a640289bc422ebe7d34fe025bf0 /src/login
parent04e4a2346d3d7ef6e0f0b38d8eafc928dc6e30bd (diff)
downloadpowder-35858ef6073092f8447bbec8b18b768061cf8bd0.zip
powder-35858ef6073092f8447bbec8b18b768061cf8bd0.tar.gz
Fix textbox
Diffstat (limited to 'src/login')
-rw-r--r--src/login/LoginController.cpp13
-rw-r--r--src/login/LoginController.h1
-rw-r--r--src/login/LoginView.cpp12
-rw-r--r--src/login/LoginView.h1
4 files changed, 26 insertions, 1 deletions
diff --git a/src/login/LoginController.cpp b/src/login/LoginController.cpp
index 3172398..64c8221 100644
--- a/src/login/LoginController.cpp
+++ b/src/login/LoginController.cpp
@@ -22,7 +22,18 @@ void LoginController::Login(string username, string password)
loginModel->Login(username, password);
}
+void LoginController::Exit()
+{
+ if(ui::Engine::Ref().GetWindow() == loginView)
+ {
+ ui::Engine::Ref().CloseWindow();
+ loginView = NULL;
+ }
+}
+
LoginController::~LoginController() {
- // TODO Auto-generated destructor stub
+ if(loginView)
+ delete loginView;
+ delete loginModel;
}
diff --git a/src/login/LoginController.h b/src/login/LoginController.h
index ecd30a3..2df28ab 100644
--- a/src/login/LoginController.h
+++ b/src/login/LoginController.h
@@ -22,6 +22,7 @@ class LoginController {
public:
LoginController();
void Login(string username, string password);
+ void Exit();
LoginView * GetView() { return loginView; }
virtual ~LoginController();
diff --git a/src/login/LoginView.cpp b/src/login/LoginView.cpp
index bb88c15..9becd17 100644
--- a/src/login/LoginView.cpp
+++ b/src/login/LoginView.cpp
@@ -18,6 +18,17 @@ public:
}
};
+class LoginView::CancelAction : public ui::ButtonAction
+{
+ LoginView * v;
+public:
+ CancelAction(LoginView * _v) { v = _v; }
+ void ActionCallback(ui::Button * sender)
+ {
+ v->c->Exit();
+ }
+};
+
LoginView::LoginView():
ui::Window(ui::Point(-1, -1), ui::Point(200, 100)),
loginButton(new ui::Button(ui::Point(200-50, 100-16), ui::Point(50, 16), "Login")),
@@ -32,6 +43,7 @@ LoginView::LoginView():
loginButton->SetActionCallback(new LoginAction(this));
AddComponent(cancelButton);
cancelButton->SetAlignment(AlignCentre, AlignBottom);
+ cancelButton->SetActionCallback(new CancelAction(this));
AddComponent(titleLabel);
titleLabel->SetAlignment(AlignLeft, AlignBottom);
AddComponent(usernameField);
diff --git a/src/login/LoginView.h b/src/login/LoginView.h
index 2646e99..1099278 100644
--- a/src/login/LoginView.h
+++ b/src/login/LoginView.h
@@ -27,6 +27,7 @@ class LoginView: public ui::Window {
ui::Textbox * passwordField;
public:
class LoginAction;
+ class CancelAction;
LoginView();
void AttachController(LoginController * c_) { c = c_; }
void NotifyStatusChanged(LoginModel * sender);