diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-24 20:19:19 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-24 20:19:19 (GMT) |
| commit | 97b35bc47059315d4138c8e0827842d2c03de152 (patch) | |
| tree | feaf7a8c018982ba9d7ca1b8e6e15294abfdfc84 /src/login/LoginView.cpp | |
| parent | 04488081d3fa0cd3dfb2939e5d902bc894df150d (diff) | |
| download | powder-97b35bc47059315d4138c8e0827842d2c03de152.zip powder-97b35bc47059315d4138c8e0827842d2c03de152.tar.gz | |
Various
Diffstat (limited to 'src/login/LoginView.cpp')
| -rw-r--r-- | src/login/LoginView.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/login/LoginView.cpp b/src/login/LoginView.cpp new file mode 100644 index 0000000..bb88c15 --- /dev/null +++ b/src/login/LoginView.cpp @@ -0,0 +1,72 @@ +/* + * LoginView.cpp + * + * Created on: Jan 24, 2012 + * Author: Simon + */ + +#include "LoginView.h" + +class LoginView::LoginAction : public ui::ButtonAction +{ + LoginView * v; +public: + LoginAction(LoginView * _v) { v = _v; } + void ActionCallback(ui::Button * sender) + { + v->c->Login(v->usernameField->GetText(), v->passwordField->GetText()); + } +}; + +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")), + cancelButton(new ui::Button(ui::Point(0, 100-16), ui::Point(50, 16), "Cancel")), + titleLabel(new ui::Label(ui::Point(4, 2), ui::Point(200-16, 16), "Server login")), + usernameField(new ui::Textbox(ui::Point(8, 20), ui::Point(200-16, 16), "")), + passwordField(new ui::Textbox(ui::Point(8, 40), ui::Point(200-16, 16), "")), + infoLabel(new ui::Label(ui::Point(8, 60), ui::Point(200-16, 16), "")) +{ + AddComponent(loginButton); + loginButton->SetAlignment(AlignCentre, AlignBottom); + loginButton->SetActionCallback(new LoginAction(this)); + AddComponent(cancelButton); + cancelButton->SetAlignment(AlignCentre, AlignBottom); + AddComponent(titleLabel); + titleLabel->SetAlignment(AlignLeft, AlignBottom); + AddComponent(usernameField); + usernameField->SetAlignment(AlignLeft, AlignBottom); + AddComponent(passwordField); + passwordField->SetAlignment(AlignLeft, AlignBottom); + passwordField->SetHidden(true); + infoLabel->SetAlignment(AlignCentre, AlignBottom); + AddComponent(infoLabel); +} + +void LoginView::NotifyStatusChanged(LoginModel * sender) +{ + infoLabel->SetText(sender->GetStatusText()); +} + +void LoginView::OnDraw() +{ + Graphics * g = ui::Engine::Ref().g; + g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3); + g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); +} + +LoginView::~LoginView() { + RemoveComponent(titleLabel); + RemoveComponent(loginButton); + RemoveComponent(cancelButton); + RemoveComponent(usernameField); + RemoveComponent(passwordField); + RemoveComponent(infoLabel); + delete cancelButton; + delete loginButton; + delete titleLabel; + delete usernameField; + delete passwordField; + delete infoLabel; +} + |
