HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
widgets.hpp
1// Copyright Take Vos 2020.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "abstract_bool_toggle_button_widget.hpp"
8#include "abstract_button_widget.hpp"
9#include "abstract_toggle_button_widget.hpp"
10#include "boolean_checkbox_widget.hpp"
11#include "button_widget.hpp"
12#include "checkbox_widget.hpp"
13#include "label_widget.hpp"
14#include "text_field_widget.hpp"
15#include "scroll_view_widget.hpp"
16#include "selection_widget.hpp"
17#include "toggle_widget.hpp"
18#include "overlay_view_widget.hpp"
19#include "radio_button_widget.hpp"
20#include "tab_view_widget.hpp"
21#include "toolbar_widget.hpp"
22#include "menu_item_widget.hpp"
23#include "toolbar_tab_button_widget.hpp"
24#include "window_widget.hpp"
25#include "row_column_layout_widget.hpp"
26#include "grid_layout_widget.hpp"
27#include "../GUI/gui_window.hpp"
28
29namespace tt {
30
34template<typename T, typename... Args>
35std::shared_ptr<T> gui_window::make_widget(size_t column_nr, size_t row_nr, Args &&... args)
36{
37 ttlet lock = std::scoped_lock(gui_system_mutex);
38 tt_axiom(widget);
39 return widget->content()->make_widget<T>(column_nr, row_nr, std::forward<Args>(args)...);
40}
41
45template<typename T, typename... Args>
46std::shared_ptr<T> gui_window::make_widget(std::string_view address, Args &&...args)
47{
48 ttlet [column_nr, row_nr] = parse_absolute_spread_sheet_address(address);
49 return make_widget<T>(column_nr, row_nr, std::forward<Args>(args)...);
50}
51
55template<typename T, horizontal_alignment Alignment, typename... Args>
57{
58 ttlet lock = std::scoped_lock(gui_system_mutex);
59 tt_axiom(widget);
60 return widget->toolbar()->make_widget<T, Alignment>(std::forward<Args>(args)...);
61}
62
63}
std::shared_ptr< T > make_toolbar_widget(Args &&...args)
Add a widget to main widget of the window.
Definition widgets.hpp:56
std::shared_ptr< T > make_widget(size_t column_nr, size_t row_nr, Args &&...args)
Add a widget to main widget of the window.
Definition widgets.hpp:35
Definition widget.hpp:97