diff options
| author | Simon 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) |
| commit | 35858ef6073092f8447bbec8b18b768061cf8bd0 (patch) | |
| tree | 1ad7e7e9272f6a640289bc422ebe7d34fe025bf0 /src/login | |
| parent | 04e4a2346d3d7ef6e0f0b38d8eafc928dc6e30bd (diff) | |
| download | powder-35858ef6073092f8447bbec8b18b768061cf8bd0.zip powder-35858ef6073092f8447bbec8b18b768061cf8bd0.tar.gz | |
Fix textbox
Diffstat (limited to 'src/login')
| -rw-r--r-- | src/login/LoginController.cpp | 13 | ||||
| -rw-r--r-- | src/login/LoginController.h | 1 | ||||
| -rw-r--r-- | src/login/LoginView.cpp | 12 | ||||
| -rw-r--r-- | src/login/LoginView.h | 1 |
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); |
