aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/StackLayoutRenderObject.cpp
blob: b953ae7e2600b6dac93167b0946896074fc2922d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "cru/ui/render/StackLayoutRenderObject.hpp"

#include <algorithm>

namespace cru::ui::render {
Size StackLayoutRenderObject::OnMeasureContent(
    const MeasureRequirement& requirement, const MeasureSize& preferred_size) {
  // TODO: Rewrite this.
  CRU_UNUSED(requirement);
  CRU_UNUSED(preferred_size);
  throw std::runtime_error("Not implemented.");

  // throw std::runtime_error("Not implemented.");
  // auto size = Size{};
  // for (const auto child : GetChildren()) {
  //   child->Measure(requirement);
  //   const auto& measure_result = child->GetMeasuredSize();
  //   size.width = std::max(size.width, measure_result.width);
  //   size.height = std::max(size.height, measure_result.height);
  // }
  // return size;
}

void StackLayoutRenderObject::OnLayoutContent(const Rect& content_rect) {
  // TODO: Rewrite this.
  CRU_UNUSED(content_rect);
  throw std::runtime_error("Not implemented.");

  // auto calculate_anchor = [](int alignment, float start_point,
  //                            float total_length,
  //                            float content_length) -> float {
  //   switch (alignment) {
  //     case internal::align_start:
  //       return start_point;
  //     case internal::align_center:
  //       return start_point + (total_length - content_length) / 2.0f;
  //     case internal::align_end:
  //       return start_point + total_length - content_length;
  //     default:
  //       return start_point;
  //   }
  // };

  // const auto count = GetChildCount();
  // const auto& children = GetChildren();

  // for (int i = 0; i < count; i++) {
  //   const auto layout_data = GetChildLayoutData(i);
  //   const auto child = children[i];
  //   const auto& size = child->GetMeasuredSize();
  //   child->Layout(
  //       Rect{calculate_anchor(static_cast<int>(layout_data->horizontal),
  //                             rect.left, rect.width, size.width),
  //            calculate_anchor(static_cast<int>(layout_data->vertical),
  //            rect.top,
  //                             rect.height, size.height),
  //            size.width, size.height});
  // }
}
}  // namespace cru::ui::render