HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
ToolbarWidget.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/Widgets/Widget.hpp"
7#include <memory>
8
9namespace tt {
10
11class ToolbarWidget : public Widget {
12public:
13 ToolbarWidget(Window &window, Widget *parent) noexcept;
15
16 ToolbarWidget(const ToolbarWidget &) = delete;
17 ToolbarWidget &operator=(const ToolbarWidget &) = delete;
18 ToolbarWidget(ToolbarWidget &&) = delete;
19 ToolbarWidget &operator=(ToolbarWidget &&) = delete;
20
21 Widget &addWidget(Alignment alignment, std::unique_ptr<Widget> childWidget) noexcept override;
22
23 void draw(DrawContext const &drawContext, hires_utc_clock::time_point displayTimePoint) noexcept override;
24
25 [[nodiscard]] HitBox hitBoxTest(vec position) const noexcept override;
26
27private:
28 std::vector<Widget *> leftChildren;
29 std::vector<Widget *> rightChildren;
30 rhea::constraint leftRightJoinConstraint;
31
32 void joinLeftAndRightChildren() noexcept;
33 void disjoinLeftAndRightChildren() noexcept;
34};
35
36}
A 4D vector.
Definition vec.hpp:37
Draw context for drawing using the TTauri shaders.
Definition DrawContext.hpp:30
Definition HitBox.hpp:12
Definition Window_vulkan_win32.hpp:15
Definition ToolbarWidget.hpp:11
HitBox hitBoxTest(vec position) const noexcept override
Find the widget that is under the mouse cursor.
void draw(DrawContext const &drawContext, hires_utc_clock::time_point displayTimePoint) noexcept override
Draw widget.
Widget & addWidget(Alignment alignment, std::unique_ptr< Widget > childWidget) noexcept override
Add a widget directly to this widget.
Definition Widget.hpp:64