HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
ToolbarButtonWidget.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/Widgets/Widget.hpp"
7#include "TTauri/Foundation/Path.hpp"
8#include "TTauri/Text/FontGlyphIDs.hpp"
9#include "TTauri/Text/ElusiveIcons.hpp"
10#include "TTauri/Text/TTauriIcons.hpp"
11#include <memory>
12#include <string>
13#include <array>
14#include <variant>
15
16namespace tt {
17
19public:
20 bool pressed = false;
21
24 bool closeButton = false;
25
26 using icon_type = std::variant<FontGlyphIDs>;
27 icon_type icon;
28 std::function<void()> delegate;
29
30 ToolbarButtonWidget(Window &window, Widget *parent, icon_type icon, std::function<void()> delegate) noexcept;
31
32 ToolbarButtonWidget(Window &window, Widget *parent, ElusiveIcon icon, std::function<void()> delegate) noexcept :
33 ToolbarButtonWidget(window, parent, to_FontGlyphIDs(icon), std::move(delegate)) {}
34 ToolbarButtonWidget(Window &window, Widget *parent, TTauriIcon icon, std::function<void()> delegate) noexcept :
35 ToolbarButtonWidget(window, parent, to_FontGlyphIDs(icon), std::move(delegate)) {}
36
37 ~ToolbarButtonWidget() {}
38
39 ToolbarButtonWidget(const ToolbarButtonWidget &) = delete;
40 ToolbarButtonWidget &operator=(const ToolbarButtonWidget &) = delete;
41 ToolbarButtonWidget(ToolbarButtonWidget &&) = delete;
42 ToolbarButtonWidget &operator=(ToolbarButtonWidget &&) = delete;
43
44 void draw(DrawContext const &drawContext, hires_utc_clock::time_point displayTimePoint) noexcept override;
45
46 void handleMouseEvent(MouseEvent const &event) noexcept override;
47
48 [[nodiscard]] HitBox hitBoxTest(vec position) const noexcept override;
49
50private:
51 int state() const noexcept;
52};
53
54}
A 4D vector.
Definition vec.hpp:37
Draw context for drawing using the TTauri shaders.
Definition DrawContext.hpp:30
Definition HitBox.hpp:12
Definition MouseEvent.hpp:12
Definition Window_vulkan_win32.hpp:15
Definition ToolbarButtonWidget.hpp:18
void handleMouseEvent(MouseEvent const &event) noexcept override
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.
bool closeButton
This is a close button, show background in red.
Definition ToolbarButtonWidget.hpp:24
Definition Widget.hpp:64
T move(T... args)