aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/controls
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-09-15 00:22:59 +0800
committer杨宇千 <crupest@outlook.com>2019-09-15 00:22:59 +0800
commit55d98d3259e9f3e184ad6323d1d49d298bd1723b (patch)
treeb986e6e4bc7e0dbfe5f00784722615bc365e7893 /include/cru/ui/controls
parentf9f2fa5ab0c92ed27337ba4894f13f61a7b7cc15 (diff)
downloadcru-55d98d3259e9f3e184ad6323d1d49d298bd1723b.tar.gz
cru-55d98d3259e9f3e184ad6323d1d49d298bd1723b.tar.bz2
cru-55d98d3259e9f3e184ad6323d1d49d298bd1723b.zip
...
Diffstat (limited to 'include/cru/ui/controls')
-rw-r--r--include/cru/ui/controls/flex_layout.hpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/cru/ui/controls/flex_layout.hpp b/include/cru/ui/controls/flex_layout.hpp
index 46c4ea55..128a79b0 100644
--- a/include/cru/ui/controls/flex_layout.hpp
+++ b/include/cru/ui/controls/flex_layout.hpp
@@ -42,9 +42,22 @@ class FlexLayout : public LayoutControl {
void SetContentMainAlign(FlexMainAlignment value) {
if (value == GetContentMainAlign()) return;
render_object_->SetContentMainAlign(value);
- GetWindow()->InvalidateLayout();
+ if (const auto window = GetWindow()) window->InvalidateLayout();
}
+ FlexDirection GetFlexDirection() const {
+ return render_object_->GetFlexDirection();
+ }
+
+ void SetFlexDirection(FlexDirection direction) {
+ if (direction == GetFlexDirection()) return;
+ render_object_->SetFlexDirection(direction);
+ if (const auto window = GetWindow()) window->InvalidateLayout();
+ }
+
+ FlexChildLayoutData GetChildLayoutData(Control* control);
+ void SetChildLayoutData(Control* control, const FlexChildLayoutData& data);
+
protected:
void OnAddChild(Control* child, int position) override;
void OnRemoveChild(Control* child, int position) override;