diff options
author | crupest <crupest@outlook.com> | 2019-04-01 18:08:58 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-04-01 18:08:58 +0800 |
commit | de00126c6aeba189a50296df455dd516e21e4176 (patch) | |
tree | 3d89a8a36a3603096d4371230c2d071f91e9e986 /src/ui/render/flex_layout_render_object.hpp | |
parent | 055a3cde0cd19c896f3e498b774078654555c065 (diff) | |
download | cru-de00126c6aeba189a50296df455dd516e21e4176.tar.gz cru-de00126c6aeba189a50296df455dd516e21e4176.tar.bz2 cru-de00126c6aeba189a50296df455dd516e21e4176.zip |
...
Diffstat (limited to 'src/ui/render/flex_layout_render_object.hpp')
-rw-r--r-- | src/ui/render/flex_layout_render_object.hpp | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/src/ui/render/flex_layout_render_object.hpp b/src/ui/render/flex_layout_render_object.hpp deleted file mode 100644 index ac4c2c0f..00000000 --- a/src/ui/render/flex_layout_render_object.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#pragma once -#include "pre.hpp" - -#include <optional> - -#include "render_object.hpp" - -namespace cru::ui::render { -enum class FlexDirection { - Horizontal, - HorizontalReverse, - Vertical, - VertivalReverse -}; - -enum class Alignment { Start, End, Center }; - -struct FlexChildLayoutData { - std::optional<float> flex_basis; // nullopt stands for content - float flex_grow = 0; - float flex_shrink = 0; - Alignment alignment = Alignment::Center; -}; - -class FlexLayoutRenderObject : public RenderObject { - public: - FlexLayoutRenderObject() = default; - FlexLayoutRenderObject(const FlexLayoutRenderObject& other) = delete; - FlexLayoutRenderObject& operator=(const FlexLayoutRenderObject& other) = - delete; - FlexLayoutRenderObject(FlexLayoutRenderObject&& other) = delete; - FlexLayoutRenderObject& operator=(FlexLayoutRenderObject&& other) = delete; - ~FlexLayoutRenderObject() override = default; - - FlexDirection GetFlexDirection() const { return direction_; } - void SetFlexDirection(FlexDirection direction) { direction_ = direction; } - - Alignment GetContentMainAlign() const { return content_main_align_; } - void SetContentMainAlign(Alignment align) { content_main_align_ = align; } - - FlexChildLayoutData* GetChildLayoutData(int position); - - void Draw(ID2D1RenderTarget* render_target) override; - - RenderObject* HitTest(const Point& point) override; - - protected: - void OnAddChild(RenderObject* new_child, int position) override; - void OnRemoveChild(RenderObject* removed_child, int position) override; - - Size OnMeasureContent(const Size& available_size) override; - void OnLayoutContent(const Rect& content_rect) override; - - private: - FlexDirection direction_ = FlexDirection::Horizontal; - Alignment content_main_align_ = Alignment::Start; - std::vector<FlexChildLayoutData> child_layout_data_{}; -}; -} // namespace cru::ui::render |