fix pressing esc in login prompt logging you out, fix possible sign bug crash

This commit is contained in:
jacob1 2013-03-04 14:57:40 -05:00
parent 6bea8f5235
commit 0f5b4a9ec8
3 changed files with 8 additions and 3 deletions

View File

@ -38,7 +38,7 @@ public:
LoginView::LoginView():
ui::Window(ui::Point(-1, -1), ui::Point(200, 87)),
loginButton(new ui::Button(ui::Point(200-100, 87-17), ui::Point(100, 17), "Sign in")),
cancelButton(new ui::Button(ui::Point(0, 87-17), ui::Point(101, 17), "Cancel")),
cancelButton(new ui::Button(ui::Point(0, 87-17), ui::Point(101, 17), "Sign Out")),
titleLabel(new ui::Label(ui::Point(4, 5), ui::Point(200-16, 16), "Server login")),
usernameField(new ui::Textbox(ui::Point(8, 25), ui::Point(200-16, 17), Client::Ref().GetAuthUser().Username, "[username]")),
passwordField(new ui::Textbox(ui::Point(8, 46), ui::Point(200-16, 17), "", "[password]")),
@ -59,7 +59,6 @@ LoginView::LoginView():
loginButton->Appearance.TextInactive = style::Colour::ConfirmButton;
loginButton->SetActionCallback(new LoginAction(this));
AddComponent(cancelButton);
SetCancelButton(cancelButton);
cancelButton->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
cancelButton->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
cancelButton->SetActionCallback(new CancelAction(this));
@ -88,6 +87,11 @@ void LoginView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, boo
}
}
void LoginView::OnTryExit(ExitMethod method)
{
ui::Engine::Ref().CloseWindow();
}
void LoginView::NotifyStatusChanged(LoginModel * sender)
{
if(!infoLabel->GetText().length() && sender->GetStatusText().length())

View File

@ -35,6 +35,7 @@ public:
class CancelAction;
LoginView();
virtual void OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt);
virtual void OnTryExit(ExitMethod method);
void AttachController(LoginController * c_) { c = c_; }
void NotifyStatusChanged(LoginModel * sender);
virtual void OnDraw();

View File

@ -22,7 +22,7 @@ std::string sign::getText(Simulation *sim)
{
char buff[256];
char signText[256];
sprintf(signText, "%s", text.c_str());
sprintf(signText, "%s", text.substr(0, 255).c_str());
if (!strcmp(signText,"{p}"))
{