mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-08-05 16:07:27 +02:00
use a ScrollPanel in ConfirmPrompt (supports longer changelogs)
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
#include "gui/Style.h"
|
#include "gui/Style.h"
|
||||||
#include "gui/interface/Label.h"
|
#include "gui/interface/Label.h"
|
||||||
#include "gui/interface/Button.h"
|
#include "gui/interface/Button.h"
|
||||||
|
#include "gui/interface/ScrollPanel.h"
|
||||||
#include "PowderToy.h"
|
#include "PowderToy.h"
|
||||||
|
|
||||||
ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, ConfirmDialogueCallback * callback_):
|
ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, ConfirmDialogueCallback * callback_):
|
||||||
@@ -15,13 +16,20 @@ ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, ConfirmDial
|
|||||||
AddComponent(titleLabel);
|
AddComponent(titleLabel);
|
||||||
|
|
||||||
|
|
||||||
ui::Label * messageLabel = new ui::Label(ui::Point(4, 25), ui::Point(Size.X-8, -1), message);
|
ui::ScrollPanel *messagePanel = new ui::ScrollPanel(ui::Point(4, 24), ui::Point(Size.X-8, 206));
|
||||||
messageLabel->SetMultiline(true);
|
AddComponent(messagePanel);
|
||||||
|
|
||||||
|
ui::Label * messageLabel = new ui::Label(ui::Point(4, 0), ui::Point(Size.X-28, -1), message);
|
||||||
messageLabel->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
|
messageLabel->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
|
||||||
messageLabel->Appearance.VerticalAlign = ui::Appearance::AlignTop;
|
messageLabel->Appearance.VerticalAlign = ui::Appearance::AlignTop;
|
||||||
AddComponent(messageLabel);
|
messageLabel->SetMultiline(true);
|
||||||
|
messagePanel->AddChild(messageLabel);
|
||||||
|
|
||||||
Size.Y += messageLabel->Size.Y+12;
|
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;
|
Position.Y = (ui::Engine::Ref().GetHeight()-Size.Y)/2;
|
||||||
|
|
||||||
class CloseAction: public ui::ButtonAction
|
class CloseAction: public ui::ButtonAction
|
||||||
@@ -70,13 +78,20 @@ ConfirmPrompt::ConfirmPrompt(std::string title, std::string message, std::string
|
|||||||
AddComponent(titleLabel);
|
AddComponent(titleLabel);
|
||||||
|
|
||||||
|
|
||||||
ui::Label * messageLabel = new ui::Label(ui::Point(4, 25), ui::Point(Size.X-8, -1), message);
|
ui::ScrollPanel *messagePanel = new ui::ScrollPanel(ui::Point(4, 24), ui::Point(Size.X-8, 206));
|
||||||
messageLabel->SetMultiline(true);
|
AddComponent(messagePanel);
|
||||||
|
|
||||||
|
ui::Label * messageLabel = new ui::Label(ui::Point(4, 0), ui::Point(Size.X-28, -1), message);
|
||||||
messageLabel->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
|
messageLabel->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
|
||||||
messageLabel->Appearance.VerticalAlign = ui::Appearance::AlignTop;
|
messageLabel->Appearance.VerticalAlign = ui::Appearance::AlignTop;
|
||||||
AddComponent(messageLabel);
|
messageLabel->SetMultiline(true);
|
||||||
|
messagePanel->AddChild(messageLabel);
|
||||||
|
|
||||||
Size.Y += messageLabel->Size.Y+12;
|
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;
|
Position.Y = (ui::Engine::Ref().GetHeight()-Size.Y)/2;
|
||||||
|
|
||||||
class CloseAction: public ui::ButtonAction
|
class CloseAction: public ui::ButtonAction
|
||||||
|
Reference in New Issue
Block a user