85 std::function<
void(
const std::string)>
on_click, std::function<
void(
const std::string)>
on_hover)
206 const glm::vec3 &normalized_rgb);
214 const glm::vec3 &normalized_rgb);
215 int add_textbox(
const std::string &text,
float center_x_pos_ndc,
float center_y_pos_ndc,
float width,
float height,
216 const glm::vec3 &normalized_rgb);
243 int add_clickable_textbox(std::function<
void()> on_click, std::function<
void()> on_hover,
const std::string &text,
244 float x_pos_ndc,
float y_pos_ndc,
float width,
float height,
245 const glm::vec3 ®ular_color,
const glm::vec3 &hover_color);
248 int add_clickable_textbox(std::function<
void()> on_click, std::function<
void()> on_hover,
const std::string &text,
250 const glm::vec3 &hover_color);
285 int add_dropdown(std::function<
void()> on_click, std::function<
void()> on_hover,
int dropdown_option_idx,
287 const glm::vec3 &hover_color,
const std::vector<std::string> &options,
288 std::function<
void(std::string)> option_on_click, std::function<
void(std::string)> option_on_hover,
289 const glm::vec3 &option_color = glm::vec3(0),
const glm::vec3 &option_hover_color = glm::vec3(0));
295 int add_input_box(std::function<
void(std::string)> on_confirm,
const std::string &placeholder_text,
297 const glm::vec3 &focused_color);
299 int add_input_box(std::function<
void(std::string)> on_confirm,
const std::string &placeholder_text,
float x_pos_ndc,
300 float y_pos_ndc,
float width,
float height,
const glm::vec3 ®ular_color,
301 const glm::vec3 &focused_color);
314 void disable_focus_on_all_input_boxes();
316 std::vector<draw_info::IVPTextured> drawable_text_information;
318 std::vector<UIRect> rectangles;
319 std::vector<UIDropdown> dropdowns;
320 std::vector<UIClickableTextBox> clickable_text_boxes;
321 std::vector<UITextBox> text_boxes;
322 std::vector<UIInputBox> input_boxes;
367 const std::vector<std::string> &key_strings_just_pressed,
368 bool delete_action_just_pressed,
bool confirm_action_just_pressed,
369 bool mouse_just_clicked);
static int get_id()
Retrieves the next unique ID.
Definition unique_id_generator.cpp:6
Interface for UI rendering operations.
Definition ui.hpp:329
virtual void render_text_box(const UITextBox &tb)=0
Render a text box.
virtual ~IUIRenderSuite()=default
virtual void render_colored_box(const UIRect &cb)=0
Render a colored box.
virtual void render_input_box(const UIInputBox &ib)=0
Render an input box.
virtual void render_dropdown_option(const UIDropdownOption &udo)=0
virtual void render_dropdown(const UIDropdown &dd)=0
Render a dropdown menu.
virtual void render_clickable_text_box(const UIClickableTextBox &cr)=0
Render a clickable text box.
Definition temporal_binary_signal.hpp:12
void process_delete_action()
Definition ui.cpp:296
bool process_mouse_just_clicked_on_dropdowns(const glm::vec2 &mouse_pos_ndc)
Definition ui.cpp:198
const std::vector< UIDropdown > & get_dropdowns() const
Definition ui.cpp:706
Logger logger
Definition ui.hpp:175
const std::vector< UITextBox > & get_text_boxes() const
Definition ui.cpp:708
int add_input_box(std::function< void(std::string)> on_confirm, const std::string &placeholder_text, const vertex_geometry::Rectangle &ndc_rect, const glm::vec3 ®ular_color, const glm::vec3 &focused_color)
Definition ui.cpp:667
bool process_mouse_just_clicked_on_input_boxes(const glm::vec2 &mouse_pos_ndc)
Definition ui.cpp:133
void process_mouse_just_clicked(const glm::vec2 &mouse_pos_ndc)
Definition ui.cpp:250
float background_layer
Definition ui.hpp:177
bool process_mouse_just_clicked_on_clickable_textboxes(const glm::vec2 &mouse_pos_ndc)
Definition ui.cpp:86
UIRect * get_colored_rectangle(int doid)
Definition ui.cpp:471
float z_layer
Definition ui.hpp:177
UI(float z_layer, UniqueIDGenerator &abs_pos_object_id_generator)
Definition ui.hpp:170
UIInputBox * get_inputbox(int doid)
Definition ui.cpp:461
int add_dropdown(std::function< void()> on_click, std::function< void()> on_hover, int dropdown_option_idx, const vertex_geometry::Rectangle &rect, const glm::vec3 ®ular_color, const glm::vec3 &hover_color, const std::vector< std::string > &options, std::function< void(std::string)> option_on_click, std::function< void(std::string)> option_on_hover, const glm::vec3 &option_color=glm::vec3(0), const glm::vec3 &option_hover_color=glm::vec3(0))
Adds a dropdown UI element with a main button and multiple selectable options.
Definition ui.cpp:480
int add_clickable_textbox(std::function< void()> on_click, std::function< void()> on_hover, const std::string &text, float x_pos_ndc, float y_pos_ndc, float width, float height, const glm::vec3 ®ular_color, const glm::vec3 &hover_color)
Definition ui.cpp:636
UniqueIDGenerator & abs_pos_object_id_generator
Definition ui.hpp:182
void unhide_textbox(int doid)
Definition ui.cpp:413
int add_textbox(const std::string &text, vertex_geometry::Rectangle ndc_text_rectangle, const glm::vec3 &normalized_rgb)
Definition ui.cpp:340
float dropdown_background_layer
Definition ui.hpp:177
void focus_input_box(UIInputBox &ib)
Definition ui.cpp:117
bool remove_textbox(int do_id)
Definition ui.cpp:611
void hide_textbox(int doid)
Definition ui.cpp:407
void process_mouse_position(const glm::vec2 &mouse_pos_ndc)
Definition ui.cpp:16
float dropdown_text_layer
Definition ui.hpp:177
bool process_mouse_just_clicked_on_dropdown_options(const glm::vec2 &mouse_pos_ndc)
Definition ui.cpp:168
const std::vector< UIClickableTextBox > & get_clickable_text_boxes() const
Definition ui.cpp:705
void modify_text_of_a_textbox(int doid, std::string new_text)
Definition ui.cpp:419
float text_layer
Definition ui.hpp:177
const std::vector< UIInputBox > & get_input_boxes() const
Definition ui.cpp:707
void modify_colored_rectangle(int doid, vertex_geometry::Rectangle ndc_rectangle)
Definition ui.cpp:438
void process_key_press(const std::string &character_pressed)
Definition ui.cpp:261
const std::vector< UIRect > & get_colored_boxes() const
Definition ui.cpp:709
UniqueIDGenerator ui_id_generator
Definition ui.hpp:179
UITextBox * get_textbox(int doid)
Definition ui.cpp:451
void process_confirm_action()
Definition ui.cpp:279
void unfocus_input_box(UIInputBox &ib)
Definition ui.cpp:99
bool remove_clickable_textbox(int do_id)
Definition ui.cpp:600
void add_colored_rectangle(vertex_geometry::Rectangle ndc_rectangle, const glm::vec3 &normalized_rgb)
Definition ui.cpp:319
UIClickableTextBox * get_clickable_textbox(int do_id)
Definition ui.cpp:590
void update_dropdown_option(UIDropdown &dropdown, const std::string &option_name)
Definition ui.cpp:152
Definition unique_id_generator.hpp:17
Definition draw_info.hpp:120
Definition vertex_geometry.hpp:126
Definition vertex_geometry.cpp:19
vertex_geometry::Rectangle current_directory_rect
Definition ui.hpp:15
vertex_geometry::Rectangle close_button
Definition ui.hpp:19
FileBrowser(float width, float height)
Definition ui.hpp:23
float fsb_width
Definition ui.hpp:10
vertex_geometry::Rectangle open_button
Definition ui.hpp:18
float fsb_height
Definition ui.hpp:11
float fsb_to_top_edge_dist
Definition ui.hpp:12
vertex_geometry::Rectangle background_rect
Definition ui.hpp:14
vertex_geometry::Rectangle main_file_view_rect
Definition ui.hpp:16
vertex_geometry::Rectangle up_a_dir_button
Definition ui.hpp:20
vertex_geometry::Rectangle file_selection_bar
Definition ui.hpp:17
bool mouse_inside
Definition ui.hpp:71
std::function< void()> on_hover
Definition ui.hpp:65
draw_info::IVPColor text_drawing_ivpsc
Definition ui.hpp:67
glm::vec3 hover_color
Definition ui.hpp:69
TemporalBinarySignal modified_signal
Definition ui.hpp:72
vertex_geometry::Rectangle rect
Definition ui.hpp:70
glm::vec3 regular_color
Definition ui.hpp:68
std::function< void()> on_click
Definition ui.hpp:64
int id
Definition ui.hpp:63
draw_info::IVPColor ivpsc
Definition ui.hpp:66
UIClickableTextBox(std::function< void()> on_click, std::function< void()> on_hover, draw_info::IVPColor ivpsc, draw_info::IVPColor text_drawing_data, glm::vec3 regular_color, glm::vec3 hover_color, vertex_geometry::Rectangle rect, int id=GlobalUIDGenerator::get_id())
Definition ui.hpp:74
glm::vec3 color
Definition ui.hpp:92
draw_info::IVPColor background_ivpsc
Definition ui.hpp:95
vertex_geometry::Rectangle rect
Definition ui.hpp:100
std::function< void(const std::string)> on_hover
Definition ui.hpp:104
TemporalBinarySignal modified_signal
Definition ui.hpp:98
draw_info::IVPColor text_ivpsc
Definition ui.hpp:96
UIDropdownOption(std::string option, glm::vec3 color, glm::vec3 hover_color, draw_info::IVPColor background_ivpsc, draw_info::IVPColor text_ivpsc, vertex_geometry::Rectangle rect, std::function< void(const std::string)> on_click, std::function< void(const std::string)> on_hover)
Definition ui.hpp:83
glm::vec3 hover_color
Definition ui.hpp:93
std::function< void(const std::string)> on_click
Definition ui.hpp:103
std::string option
Definition ui.hpp:90
bool mouse_inside
Definition ui.hpp:102
draw_info::IVPColor dropdown_text_ivpsc
Definition ui.hpp:119
std::function< void()> on_click
Definition ui.hpp:115
glm::vec3 regular_color
Definition ui.hpp:112
std::string selected_option
Definition ui.hpp:110
bool mouse_inside
Definition ui.hpp:125
std::function< void()> on_hover
Definition ui.hpp:116
int id
Definition ui.hpp:108
draw_info::IVPColor dropdown_background
Definition ui.hpp:118
vertex_geometry::Rectangle dropdown_rect
Definition ui.hpp:120
bool dropdown_open
Definition ui.hpp:126
UIDropdown(std::function< void()> on_click, std::function< void()> on_hover, draw_info::IVPColor dropdown_background, draw_info::IVPColor dropdown_text_data, glm::vec3 regular_color, glm::vec3 hover_color, vertex_geometry::Rectangle dropdown_rect, std::vector< UIDropdownOption > ui_dropdown_options, int id=GlobalUIDGenerator::get_id())
Definition ui.hpp:129
std::vector< UIDropdownOption > ui_dropdown_options
Definition ui.hpp:124
TemporalBinarySignal modified_signal
Definition ui.hpp:127
glm::vec3 hover_color
Definition ui.hpp:113
bool mouse_above
Definition ui.hpp:38
int parent_ui_id
Definition ui.hpp:36
draw_info::IVPColor ivpsc
Definition ui.hpp:37
UIRect(draw_info::IVPColor ivpsc, int id=GlobalUIDGenerator::get_id())
Definition ui.hpp:43
bool hidden
Definition ui.hpp:41
TemporalBinarySignal modified_signal
Definition ui.hpp:39
int parent_ui_id
Definition ui.hpp:47
draw_info::IVPColor text_drawing_ivpsc
Definition ui.hpp:49
UITextBox(draw_info::IVPColor background_ivpsc, draw_info::IVPColor text_drawing_data, vertex_geometry::Rectangle bounding_rect, int id=GlobalUIDGenerator::get_id())
Definition ui.hpp:56
bool mouse_above
Definition ui.hpp:51
TemporalBinarySignal modified_signal
Definition ui.hpp:52
draw_info::IVPColor background_ivpsc
Definition ui.hpp:48
bool hidden
Definition ui.hpp:54
vertex_geometry::Rectangle bounding_rect
Definition ui.hpp:50
void process_and_queue_render_ui(glm::vec2 ndc_mouse_pos, UI &curr_ui, IUIRenderSuite &ui_render_suite, const std::vector< std::string > &key_strings_just_pressed, bool delete_action_just_pressed, bool confirm_action_just_pressed, bool mouse_just_clicked)
Definition ui.cpp:711