aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-07-05 18:13:10 +0800
committercrupest <crupest@outlook.com>2020-07-05 18:13:10 +0800
commitce56ab59a6d68c220fcc47c6977c618eaa43de7a (patch)
treed6775d0ffa6f4fde00e69ed82192bc6c5b25d45b /include/cru/ui
parente10ef322e5f6268aec5d7717a82fceb42607a000 (diff)
downloadcru-ce56ab59a6d68c220fcc47c6977c618eaa43de7a.tar.gz
cru-ce56ab59a6d68c220fcc47c6977c618eaa43de7a.tar.bz2
cru-ce56ab59a6d68c220fcc47c6977c618eaa43de7a.zip
...
Diffstat (limited to 'include/cru/ui')
-rw-r--r--include/cru/ui/UiEvent.hpp4
-rw-r--r--include/cru/ui/controls/TextBlock.hpp3
-rw-r--r--include/cru/ui/controls/TextBox.hpp4
-rw-r--r--include/cru/ui/render/Base.hpp1
4 files changed, 9 insertions, 3 deletions
diff --git a/include/cru/ui/UiEvent.hpp b/include/cru/ui/UiEvent.hpp
index 29292d75..79d0f7e3 100644
--- a/include/cru/ui/UiEvent.hpp
+++ b/include/cru/ui/UiEvent.hpp
@@ -52,7 +52,9 @@ class RoutedEvent {
static_assert(!std::is_reference_v<TEventArgs>,
"TEventArgs must not be reference.");
- using EventArgs = TEventArgs;
+ using RawEventArgs = TEventArgs;
+ using IEventType = IEvent<TEventArgs&>;
+ using EventArgs = typename IEventType::EventArgs;
RoutedEvent() = default;
RoutedEvent(const RoutedEvent& other) = delete;
diff --git a/include/cru/ui/controls/TextBlock.hpp b/include/cru/ui/controls/TextBlock.hpp
index dd8b40b4..1b1b4a5c 100644
--- a/include/cru/ui/controls/TextBlock.hpp
+++ b/include/cru/ui/controls/TextBlock.hpp
@@ -28,7 +28,8 @@ class TextBlock : public NoChildControl {
std::string GetText() const;
void SetText(std::string text);
- render::TextRenderObject* GetTextRenderObject();
+ gsl::not_null<render::TextRenderObject*> GetTextRenderObject();
+ render::ScrollRenderObject* GetScrollRenderObject() { return nullptr; }
private:
std::unique_ptr<render::TextRenderObject> text_render_object_;
diff --git a/include/cru/ui/controls/TextBox.hpp b/include/cru/ui/controls/TextBox.hpp
index 2f7a12b6..3d4de7c0 100644
--- a/include/cru/ui/controls/TextBox.hpp
+++ b/include/cru/ui/controls/TextBox.hpp
@@ -27,7 +27,8 @@ class TextBox : public NoChildControl {
render::RenderObject* GetRenderObject() const override;
- render::TextRenderObject* GetTextRenderObject();
+ gsl::not_null<render::TextRenderObject*> GetTextRenderObject();
+ render::ScrollRenderObject* GetScrollRenderObject();
const TextBoxBorderStyle& GetBorderStyle();
void SetBorderStyle(TextBoxBorderStyle border_style);
@@ -40,6 +41,7 @@ class TextBox : public NoChildControl {
private:
std::unique_ptr<render::BorderRenderObject> border_render_object_;
+ std::unique_ptr<render::ScrollRenderObject> scroll_render_object_;
std::unique_ptr<render::TextRenderObject> text_render_object_;
TextBoxBorderStyle border_style_;
diff --git a/include/cru/ui/render/Base.hpp b/include/cru/ui/render/Base.hpp
index c2af5e99..801d58bd 100644
--- a/include/cru/ui/render/Base.hpp
+++ b/include/cru/ui/render/Base.hpp
@@ -6,6 +6,7 @@ class RenderObject;
class BorderRenderObject;
class CanvasRenderObject;
class FlexLayoutRenderObject;
+class ScrollRenderObject;
class StackLayoutRenderObject;
class TextRenderObject;
class WindowRenderObject;