aboutsummaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/controls/Window.cpp2
-rw-r--r--src/ui/render/BorderRenderObject.cpp17
-rw-r--r--src/ui/render/CanvasRenderObject.cpp5
-rw-r--r--src/ui/render/FlexLayoutRenderObject.cpp5
-rw-r--r--src/ui/render/GeometryRenderObject.cpp17
-rw-r--r--src/ui/render/LayoutHelper.cpp2
-rw-r--r--src/ui/render/RenderObject.cpp27
-rw-r--r--src/ui/render/ScrollRenderObject.cpp3
-rw-r--r--src/ui/render/SingleChildRenderObject.cpp10
-rw-r--r--src/ui/render/StackLayoutRenderObject.cpp7
-rw-r--r--src/ui/render/TextRenderObject.cpp11
-rw-r--r--src/ui/render/TreeRenderObject.cpp2
12 files changed, 53 insertions, 55 deletions
diff --git a/src/ui/controls/Window.cpp b/src/ui/controls/Window.cpp
index 9722a3c6..8f06013e 100644
--- a/src/ui/controls/Window.cpp
+++ b/src/ui/controls/Window.cpp
@@ -12,7 +12,7 @@ Window::Window()
control_host_(new ControlHost(this)),
attached_control_(nullptr) {
GetContainerRenderObject()->SetDefaultHorizontalAlignment(Alignment::Stretch);
- GetContainerRenderObject()->SetDefaultVertialAlignment(Alignment::Stretch);
+ GetContainerRenderObject()->SetDefaultVerticalAlignment(Alignment::Stretch);
}
Window* Window::CreatePopup() {
diff --git a/src/ui/render/BorderRenderObject.cpp b/src/ui/render/BorderRenderObject.cpp
index 5c4bc22c..674f82b1 100644
--- a/src/ui/render/BorderRenderObject.cpp
+++ b/src/ui/render/BorderRenderObject.cpp
@@ -11,9 +11,10 @@
#include <algorithm>
namespace cru::ui::render {
-BorderRenderObject::BorderRenderObject() { RecreateGeometry(); }
-
-BorderRenderObject::~BorderRenderObject() {}
+BorderRenderObject::BorderRenderObject()
+ : SingleChildRenderObject(kRenderObjectName) {
+ RecreateGeometry();
+}
void BorderRenderObject::ApplyBorderStyle(
const style::ApplyBorderStyleInfo& style) {
@@ -138,19 +139,19 @@ void BorderRenderObject::OnLayoutContent(const Rect& content_rect) {
void BorderRenderObject::OnResize(const Size& new_size) { RecreateGeometry(); }
-Thickness BorderRenderObject::GetTotalSpaceThickness() const {
+Thickness BorderRenderObject::GetTotalSpaceThickness() {
return is_border_enabled_
? RenderObject::GetTotalSpaceThickness() + GetBorderThickness()
: RenderObject::GetTotalSpaceThickness();
}
-Thickness BorderRenderObject::GetInnerSpaceThickness() const {
+Thickness BorderRenderObject::GetInnerSpaceThickness() {
return is_border_enabled_
? RenderObject::GetInnerSpaceThickness() + GetBorderThickness()
: RenderObject::GetInnerSpaceThickness();
}
-Rect BorderRenderObject::GetPaddingRect() const {
+Rect BorderRenderObject::GetPaddingRect() {
const auto size = GetSize();
Rect rect{Point{}, size};
rect = rect.Shrink(GetMargin());
@@ -162,7 +163,7 @@ Rect BorderRenderObject::GetPaddingRect() const {
return rect;
}
-Rect BorderRenderObject::GetContentRect() const {
+Rect BorderRenderObject::GetContentRect() {
const auto size = GetDesiredSize();
Rect rect{Point{}, size};
rect = rect.Shrink(GetMargin());
@@ -243,6 +244,4 @@ void BorderRenderObject::RecreateGeometry() {
geometry_ = builder->Build();
builder.reset();
}
-
-std::string BorderRenderObject::GetName() const { return "BorderRenderObject"; }
} // namespace cru::ui::render
diff --git a/src/ui/render/CanvasRenderObject.cpp b/src/ui/render/CanvasRenderObject.cpp
index e0f1726b..318f1ffb 100644
--- a/src/ui/render/CanvasRenderObject.cpp
+++ b/src/ui/render/CanvasRenderObject.cpp
@@ -1,9 +1,8 @@
#include "cru/ui/render/CanvasRenderObject.h"
+#include "cru/ui/render/RenderObject.h"
namespace cru::ui::render {
-CanvasRenderObject::CanvasRenderObject() {}
-
-CanvasRenderObject::~CanvasRenderObject() = default;
+CanvasRenderObject::CanvasRenderObject() : RenderObject(kRenderObjectName) {}
RenderObject* CanvasRenderObject::HitTest(const Point& point) {
const auto padding_rect = GetPaddingRect();
diff --git a/src/ui/render/FlexLayoutRenderObject.cpp b/src/ui/render/FlexLayoutRenderObject.cpp
index 53193867..8cbc0295 100644
--- a/src/ui/render/FlexLayoutRenderObject.cpp
+++ b/src/ui/render/FlexLayoutRenderObject.cpp
@@ -7,9 +7,8 @@
#include <type_traits>
namespace cru::ui::render {
-std::string FlexLayoutRenderObject::GetName() const {
- return "FlexLayoutRenderObject";
-}
+FlexLayoutRenderObject::FlexLayoutRenderObject()
+ : LayoutRenderObject<FlexChildLayoutData>(kRenderObjectName) {}
struct tag_horizontal_t {};
struct tag_vertical_t {};
diff --git a/src/ui/render/GeometryRenderObject.cpp b/src/ui/render/GeometryRenderObject.cpp
index 07c5b911..b311665f 100644
--- a/src/ui/render/GeometryRenderObject.cpp
+++ b/src/ui/render/GeometryRenderObject.cpp
@@ -5,12 +5,11 @@
#include "cru/ui/render/RenderObject.h"
namespace cru::ui::render {
-GeometryRenderObject::GeometryRenderObject() {}
-
-GeometryRenderObject::~GeometryRenderObject() {}
+GeometryRenderObject::GeometryRenderObject()
+ : RenderObject(kRenderObjectName) {}
std::shared_ptr<platform::graphics::IGeometry>
-GeometryRenderObject::GetGeometry() const {
+GeometryRenderObject::GetGeometry() {
return geometry_;
}
@@ -25,15 +24,15 @@ void GeometryRenderObject::SetGeometry(
}
}
-Rect GeometryRenderObject::GetViewPort() const { return view_port_; }
+Rect GeometryRenderObject::GetViewPort() { return view_port_; }
void GeometryRenderObject::SetViewPort(const Rect& view_port) {
view_port_ = view_port;
InvalidatePaint();
}
-std::shared_ptr<platform::graphics::IBrush> GeometryRenderObject::GetFillBrush()
- const {
+std::shared_ptr<platform::graphics::IBrush>
+GeometryRenderObject::GetFillBrush() {
return fill_brush_;
}
@@ -44,7 +43,7 @@ void GeometryRenderObject::SetFillBrush(
}
std::shared_ptr<platform::graphics::IBrush>
-GeometryRenderObject::GetStrokeBrush() const {
+GeometryRenderObject::GetStrokeBrush() {
return stroke_brush_;
}
@@ -54,7 +53,7 @@ void GeometryRenderObject::SetStrokeBrush(
InvalidatePaint();
}
-float GeometryRenderObject::GetStrokeWidth() const { return stroke_width_; }
+float GeometryRenderObject::GetStrokeWidth() { return stroke_width_; }
void GeometryRenderObject::SetStrokeWidth(float width) {
stroke_width_ = width;
diff --git a/src/ui/render/LayoutHelper.cpp b/src/ui/render/LayoutHelper.cpp
index bbd3c116..c971fda2 100644
--- a/src/ui/render/LayoutHelper.cpp
+++ b/src/ui/render/LayoutHelper.cpp
@@ -1,7 +1,5 @@
#include "cru/ui/render/LayoutHelper.h"
-#include "cru/base/log/Logger.h"
-
namespace cru::ui::render {
float CalculateAnchorByAlignment(Alignment alignment, float start_point,
float content_length, float child_length) {
diff --git a/src/ui/render/RenderObject.cpp b/src/ui/render/RenderObject.cpp
index d999be7b..8bd85784 100644
--- a/src/ui/render/RenderObject.cpp
+++ b/src/ui/render/RenderObject.cpp
@@ -9,6 +9,8 @@
namespace cru::ui::render {
const BoxConstraint BoxConstraint::kNotLimit{Size::kMax, Size::kZero};
+RenderObject::RenderObject(std::string name) : name_(std::move(name)) {}
+
RenderObject::~RenderObject() { DestroyEvent_.Raise(this); }
void RenderObject::SetParent(RenderObject* new_parent) {
@@ -29,9 +31,9 @@ void RenderObject::SetAttachedControl(controls::Control* new_control) {
OnAttachedControlChanged(old_control, new_control);
}
-Point RenderObject::GetTotalOffset() const {
+Point RenderObject::GetTotalOffset() {
Point result{};
- const RenderObject* render_object = this;
+ RenderObject* render_object = this;
while (render_object != nullptr) {
const auto o = render_object->GetOffset();
@@ -43,7 +45,7 @@ Point RenderObject::GetTotalOffset() const {
return result;
}
-Point RenderObject::FromRootToContent(const Point& point) const {
+Point RenderObject::FromRootToContent(const Point& point) {
const auto offset = GetTotalOffset();
const auto rect = GetContentRect();
return Point{point.x - (offset.x + rect.left),
@@ -86,7 +88,7 @@ void RenderObject::SetMaxSize1(const Size& max_size) {
}
BoxConstraint RenderObject::CalculateMergedConstraint(
- const BoxConstraint& constraint) const {
+ const BoxConstraint& constraint) {
auto result = constraint;
if (max_size_.width >= constraint.min.width &&
max_size_.width < constraint.max.width) {
@@ -157,11 +159,9 @@ void RenderObject::Layout(const Point& offset) {
OnLayoutCore();
}
-Thickness RenderObject::GetTotalSpaceThickness() const {
- return margin_ + padding_;
-}
+Thickness RenderObject::GetTotalSpaceThickness() { return margin_ + padding_; }
-Thickness RenderObject::GetInnerSpaceThickness() const { return padding_; }
+Thickness RenderObject::GetInnerSpaceThickness() { return padding_; }
Size RenderObject::OnMeasureCore(const MeasureRequirement& requirement,
const MeasureSize& preferred_size) {
@@ -244,7 +244,7 @@ Size RenderObject::OnMeasureContent1(const BoxConstraint& constraint) {
throw Exception("Not implemented.");
}
-Rect RenderObject::GetPaddingRect() const {
+Rect RenderObject::GetPaddingRect() {
const auto size = GetDesiredSize();
Rect rect{Point{}, size};
rect = rect.Shrink(GetMargin());
@@ -255,7 +255,7 @@ Rect RenderObject::GetPaddingRect() const {
return rect;
}
-Rect RenderObject::GetContentRect() const {
+Rect RenderObject::GetContentRect() {
const auto size = GetDesiredSize();
Rect rect{Point{}, size};
rect = rect.Shrink(GetMargin());
@@ -286,12 +286,11 @@ void RenderObject::InvalidatePaint() {
}
}
-std::string kUnamedName("UNNAMED");
-std::string RenderObject::GetName() const { return kUnamedName; }
+std::string RenderObject::GetName() { return name_; }
-std::string RenderObject::GetDebugPathInTree() const {
+std::string RenderObject::GetDebugPathInTree() {
std::vector<std::string> chain;
- const RenderObject* parent = this;
+ RenderObject* parent = this;
while (parent != nullptr) {
chain.push_back(parent->GetName());
parent = parent->GetParent();
diff --git a/src/ui/render/ScrollRenderObject.cpp b/src/ui/render/ScrollRenderObject.cpp
index ea93dd21..49cb6bf3 100644
--- a/src/ui/render/ScrollRenderObject.cpp
+++ b/src/ui/render/ScrollRenderObject.cpp
@@ -37,7 +37,8 @@ Point CoerceScroll(const Point& scroll_offset, const Size& content_size,
}
} // namespace
-ScrollRenderObject::ScrollRenderObject() {
+ScrollRenderObject::ScrollRenderObject()
+ : SingleChildRenderObject(kRenderObjectName) {
scroll_bar_delegate_ = std::make_unique<ScrollBarDelegate>(this);
scroll_bar_delegate_->ScrollAttemptEvent()->AddHandler(
[this](const struct Scroll& scroll) { this->ApplyScroll(scroll); });
diff --git a/src/ui/render/SingleChildRenderObject.cpp b/src/ui/render/SingleChildRenderObject.cpp
index d62a233e..cb00c077 100644
--- a/src/ui/render/SingleChildRenderObject.cpp
+++ b/src/ui/render/SingleChildRenderObject.cpp
@@ -1,7 +1,11 @@
#include "cru/ui/render/SingleChildRenderObject.h"
+#include "cru/ui/render/RenderObject.h"
namespace cru::ui::render {
-void SingleChildRenderObject::SetChild(RenderObject *new_child) {
+SingleChildRenderObject::SingleChildRenderObject(std::string name)
+ : RenderObject(std::move(name)) {}
+
+void SingleChildRenderObject::SetChild(RenderObject* new_child) {
assert(new_child == nullptr || new_child->GetParent() == nullptr);
if (child_ == new_child) return;
auto old_child = child_;
@@ -15,8 +19,8 @@ void SingleChildRenderObject::SetChild(RenderObject *new_child) {
OnChildChanged(old_child, new_child);
}
-void SingleChildRenderObject::OnChildChanged(RenderObject *old_child,
- RenderObject *new_child) {
+void SingleChildRenderObject::OnChildChanged(RenderObject* old_child,
+ RenderObject* new_child) {
InvalidateLayout();
}
} // namespace cru::ui::render
diff --git a/src/ui/render/StackLayoutRenderObject.cpp b/src/ui/render/StackLayoutRenderObject.cpp
index d71c5749..6d5b9a10 100644
--- a/src/ui/render/StackLayoutRenderObject.cpp
+++ b/src/ui/render/StackLayoutRenderObject.cpp
@@ -1,19 +1,22 @@
#include "cru/ui/render/StackLayoutRenderObject.h"
-#include "cru/base/log/Logger.h"
#include "cru/ui/render/LayoutHelper.h"
#include "cru/ui/render/MeasureRequirement.h"
#include <algorithm>
namespace cru::ui::render {
+
+StackLayoutRenderObject::StackLayoutRenderObject()
+ : LayoutRenderObject<StackChildLayoutData>(kRenderObjectName) {}
+
void StackLayoutRenderObject::SetDefaultHorizontalAlignment(
Alignment alignment) {
default_horizontal_alignment_ = alignment;
InvalidateLayout();
}
-void StackLayoutRenderObject::SetDefaultVertialAlignment(Alignment alignment) {
+void StackLayoutRenderObject::SetDefaultVerticalAlignment(Alignment alignment) {
default_vertical_alignment_ = alignment;
InvalidateLayout();
}
diff --git a/src/ui/render/TextRenderObject.cpp b/src/ui/render/TextRenderObject.cpp
index c7803383..217029b2 100644
--- a/src/ui/render/TextRenderObject.cpp
+++ b/src/ui/render/TextRenderObject.cpp
@@ -16,7 +16,8 @@ TextRenderObject::TextRenderObject(
std::shared_ptr<platform::graphics::IBrush> brush,
std::shared_ptr<platform::graphics::IFont> font,
std::shared_ptr<platform::graphics::IBrush> selection_brush,
- std::shared_ptr<platform::graphics::IBrush> caret_brush) {
+ std::shared_ptr<platform::graphics::IBrush> caret_brush)
+ : RenderObject(kRenderObjectName) {
Expects(brush);
Expects(font);
Expects(selection_brush);
@@ -31,11 +32,7 @@ TextRenderObject::TextRenderObject(
text_layout_ = graph_factory->CreateTextLayout(font_, "");
}
-TextRenderObject::~TextRenderObject() = default;
-
-std::string TextRenderObject::GetText() const {
- return text_layout_->GetText();
-}
+std::string TextRenderObject::GetText() { return text_layout_->GetText(); }
void TextRenderObject::SetText(std::string new_text) {
text_layout_->SetText(std::move(new_text));
@@ -49,7 +46,7 @@ void TextRenderObject::SetBrush(
InvalidatePaint();
}
-std::shared_ptr<platform::graphics::IFont> TextRenderObject::GetFont() const {
+std::shared_ptr<platform::graphics::IFont> TextRenderObject::GetFont() {
return text_layout_->GetFont();
}
diff --git a/src/ui/render/TreeRenderObject.cpp b/src/ui/render/TreeRenderObject.cpp
index 8bf662e4..8c13e93a 100644
--- a/src/ui/render/TreeRenderObject.cpp
+++ b/src/ui/render/TreeRenderObject.cpp
@@ -45,7 +45,7 @@ void TreeRenderObjectItem::RemoveItem(Index position) {
tree_render_object_->InvalidateLayout();
}
-TreeRenderObject::TreeRenderObject() {
+TreeRenderObject::TreeRenderObject() : RenderObject(kRenderObjectName) {
root_item_ = new TreeRenderObjectItem(this, nullptr);
}