aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/render/stack_layout_render_object.hpp
blob: 0d33e7e390effcb03130b510d7f43b31ad751ae9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
#include "layout_render_object.hpp"

namespace cru::ui::render {
struct StackChildLayoutData {
  Alignment horizontal = Alignment::Start;
  Alignment vertical = Alignment::Start;
};

class StackLayoutRenderObject
    : public LayoutRenderObject<StackChildLayoutData> {
 public:
  StackLayoutRenderObject() = default;
  CRU_DELETE_COPY(StackLayoutRenderObject)
  CRU_DELETE_MOVE(StackLayoutRenderObject)
  ~StackLayoutRenderObject() = default;

 protected:
  Size OnMeasureContent(const Size& available_size) override;
  void OnLayoutContent(const Rect& content_rect) override;
};
}  // namespace cru::ui::render