60 template<
typename Widget, horizontal_alignment Alignment = horizontal_alignment::left,
typename... Args>
63 auto widget = std::make_unique<Widget>(
this, std::forward<Args>(args)...);
68 [[nodiscard]] generator<widget *> children() const noexcept
override
70 for (
hilet& child : _left_children) {
73 for (
hilet& child :
std::ranges::reverse_view(_right_children)) {
78 widget_constraints
const& set_constraints(set_constraints_context
const &context)
noexcept;
79 void set_layout(widget_layout
const& context)
noexcept override;
80 void draw(draw_context
const& context)
noexcept override;
81 hitbox hitbox_test(point3 position)
const noexcept override;
82 [[nodiscard]] color focus_color() const noexcept override;
85 std::unique_ptr<window_traffic_lights_widget> _controls;
86 std::unique_ptr<system_menu_widget> _system_menu;
89 margins _inner_margins;
91 void update_constraints_for_child(
92 set_constraints_context const &context,
96 float& shared_top_margin,
97 float& shared_bottom_margin,
98 widget_baseline& shared_baseline) noexcept;
100 void update_layout_for_child(
widget& child,
ssize_t index, widget_layout const& context) const noexcept;
110 bool tab_button_has_focus() const noexcept;