From 535ade0ec49e8dac4949547fbe312f61f9b03fae Mon Sep 17 00:00:00 2001 From: jacob1 Date: Thu, 31 Mar 2016 22:05:55 -0400 Subject: [PATCH] InformationMessage expands like the other dialogs, "numeric" textboxes now allow negative numbers --- src/gui/dialogues/InformationMessage.cpp | 19 +++++++++++++++---- src/gui/interface/Textbox.cpp | 4 +++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/gui/dialogues/InformationMessage.cpp b/src/gui/dialogues/InformationMessage.cpp index 23b92dc37..fd92736cd 100644 --- a/src/gui/dialogues/InformationMessage.cpp +++ b/src/gui/dialogues/InformationMessage.cpp @@ -5,12 +5,12 @@ #include "gui/interface/ScrollPanel.h" InformationMessage::InformationMessage(std::string title, std::string message, bool large): - ui::Window(ui::Point(-1, -1), ui::Point(200, 75)) + ui::Window(ui::Point(-1, -1), ui::Point(200, 35)) { if (large) //Maybe also use this large mode for changelogs eventually, or have it as a customizable size? { Size.X += 200; - Size.Y += 175; + Size.Y += 215; } if (large) @@ -28,10 +28,21 @@ InformationMessage::InformationMessage(std::string title, std::string message, b } else { - ui::Label * messageLabel = new ui::Label(ui::Point(4, 24), ui::Point(Size.X-8, 60), message); + ui::ScrollPanel *messagePanel = new ui::ScrollPanel(ui::Point(4, 24), ui::Point(Size.X-8, 206)); + AddComponent(messagePanel); + + ui::Label * messageLabel = new ui::Label(ui::Point(4, 0), ui::Point(Size.X-8, -1), message); messageLabel->Appearance.HorizontalAlign = ui::Appearance::AlignLeft; messageLabel->Appearance.VerticalAlign = ui::Appearance::AlignTop; - AddComponent(messageLabel); + messageLabel->SetMultiline(true); + messagePanel->AddChild(messageLabel); + + messagePanel->InnerSize = ui::Point(messagePanel->Size.X, messageLabel->Size.Y+4); + + if (messageLabel->Size.Y < messagePanel->Size.Y) + messagePanel->Size.Y = messageLabel->Size.Y+4; + Size.Y += messagePanel->Size.Y+12; + Position.Y = (ui::Engine::Ref().GetHeight()-Size.Y)/2; } ui::Label * titleLabel = new ui::Label(ui::Point(4, 5), ui::Point(Size.X-8, 16), title); diff --git a/src/gui/interface/Textbox.cpp b/src/gui/interface/Textbox.cpp index 452be8a59..ddc56ec96 100644 --- a/src/gui/interface/Textbox.cpp +++ b/src/gui/interface/Textbox.cpp @@ -256,8 +256,10 @@ bool Textbox::CharacterValid(Uint16 character) { switch(inputType) { - case Number: case Numeric: + if (character == '-' && cursor == 0 && backingText[0] != '-') + return true; + case Number: return (character >= '0' && character <= '9'); case Multiline: if (character == '\n')