1 #ifndef TERMOX_WIDGET_WIDGETS_MENU_HPP
2 #define TERMOX_WIDGET_WIDGETS_MENU_HPP
6 #include <signals_light/signal.hpp>
8 #include <termox/painter/glyph_string.hpp>
9 #include <termox/system/key.hpp>
10 #include <termox/system/mouse.hpp>
11 #include <termox/widget/layouts/passive.hpp>
12 #include <termox/widget/layouts/selecting.hpp>
13 #include <termox/widget/layouts/vertical.hpp>
14 #include <termox/widget/pair.hpp>
15 #include <termox/widget/widgets/label.hpp>
16 #include <termox/widget/widgets/selectable.hpp>
22 sl::Signal<void()> selected;
29 :
public Passive<layout::Selecting<layout::Vertical<Menu_item>>> {
43 -> sl::Signal<void()>&;
49 auto key_press_event(Key k) ->
bool override;
52 auto mouse_press_event_filter(
Widget& w, Mouse
const& m) ->
bool override;
67 -> sl::Signal<void()>&;
74 Widget& buffer = this->second;
78 [[nodiscard]]
auto menu() -> std::unique_ptr<Menu>;
Holds a collection of Glyphs with a similar interface to std::string.
Definition: glyph_string.hpp:19
Definition: passive.hpp:34
Wraps Widget_t to provide select() and unselect() methods to modify display.
Definition: selectable.hpp:12
Adds a 'Selected Child' concept to Layout_t.
Definition: selecting.hpp:24
Heterogeneous pair of Widgets within a Layout.
Definition: pair.hpp:14