aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2025-04-22 02:14:24 +0200
committerdec05eba <dec05eba@protonmail.com>2025-04-22 02:14:24 +0200
commit719236d4f41735a96e5a0707c7d964335907ffee (patch)
tree8ae62a1eaab08338c8b1e2554e8a122026281af7 /src
parent19f3fe67bfa34f6e92961427c4618ecb047dc177 (diff)
Main page dropdown buttons when not recording
Diffstat (limited to 'src')
-rw-r--r--src/Overlay.cpp6
-rw-r--r--src/gui/DropdownButton.cpp15
2 files changed, 19 insertions, 2 deletions
diff --git a/src/Overlay.cpp b/src/Overlay.cpp
index 53f9eae..4d8790b 100644
--- a/src/Overlay.cpp
+++ b/src/Overlay.cpp
@@ -1070,6 +1070,7 @@ namespace gsr {
on_press_start_replay(false, false);
}
};
+ button->set_item_enabled("save", false);
main_buttons_list->add_widget(std::move(button));
}
{
@@ -1096,6 +1097,7 @@ namespace gsr {
on_press_start_record(false);
}
};
+ button->set_item_enabled("pause", false);
main_buttons_list->add_widget(std::move(button));
}
{
@@ -1872,6 +1874,7 @@ namespace gsr {
record_dropdown_button_ptr->set_activated(true);
record_dropdown_button_ptr->set_description("Recording");
record_dropdown_button_ptr->set_item_icon("start", &get_theme().stop_texture);
+ record_dropdown_button_ptr->set_item_enabled("pause", true);
}
void Overlay::update_ui_recording_stopped() {
@@ -1885,6 +1888,7 @@ namespace gsr {
record_dropdown_button_ptr->set_item_label("pause", "Pause");
record_dropdown_button_ptr->set_item_icon("pause", &get_theme().pause_texture);
+ record_dropdown_button_ptr->set_item_enabled("pause", false);
paused = false;
}
@@ -1916,6 +1920,7 @@ namespace gsr {
replay_dropdown_button_ptr->set_activated(true);
replay_dropdown_button_ptr->set_description("On");
replay_dropdown_button_ptr->set_item_icon("start", &get_theme().stop_texture);
+ replay_dropdown_button_ptr->set_item_enabled("save", true);
}
void Overlay::update_ui_replay_stopped() {
@@ -1926,6 +1931,7 @@ namespace gsr {
replay_dropdown_button_ptr->set_activated(false);
replay_dropdown_button_ptr->set_description("Off");
replay_dropdown_button_ptr->set_item_icon("start", &get_theme().play_texture);
+ replay_dropdown_button_ptr->set_item_enabled("save", false);
}
static std::string get_date_str() {
diff --git a/src/gui/DropdownButton.cpp b/src/gui/DropdownButton.cpp
index bdc4027..6721840 100644
--- a/src/gui/DropdownButton.cpp
+++ b/src/gui/DropdownButton.cpp
@@ -148,7 +148,7 @@ namespace gsr {
window.draw(separator);
}
- if(mouse_inside_item == -1) {
+ if(mouse_inside_item == -1 && item.enabled) {
const bool inside = mgl::FloatRect(item_position, item_size).contains({ (float)mouse_pos.x, (float)mouse_pos.y });
if(inside) {
draw_rectangle_outline(window, item_position, item_size, get_color_theme().tint_color, border_size);
@@ -161,16 +161,18 @@ namespace gsr {
mgl::Sprite icon(item.icon_texture);
icon.set_height((int)(item_size.y * 0.4f));
icon.set_position((item_position + mgl::vec2f(padding_left, item_size.y * 0.5f - icon.get_size().y * 0.5f)).floor());
+ icon.set_color(item.enabled ? mgl::Color(255, 255, 255, 255) : mgl::Color(255, 255, 255, 80));
window.draw(icon);
icon_offset = icon.get_size().x + icon_spacing;
}
item.text.set_position((item_position + mgl::vec2f(padding_left + icon_offset, item_size.y * 0.5f - text_bounds.size.y * 0.5f)).floor());
+ item.text.set_color(item.enabled ? mgl::Color(255, 255, 255, 255) : mgl::Color(255, 255, 255, 80));
window.draw(item.text);
const auto description_bounds = item.description_text.get_bounds();
item.description_text.set_position((item_position + mgl::vec2f(item_size.x - description_bounds.size.x - padding_right, item_size.y * 0.5f - description_bounds.size.y * 0.5f)).floor());
- item.description_text.set_color(mgl::Color(255, 255, 255, 120));
+ item.description_text.set_color(item.enabled ? mgl::Color(255, 255, 255, 120) : mgl::Color(255, 255, 255, 40));
window.draw(item.description_text);
item_position.y += item_size.y;
@@ -210,6 +212,15 @@ namespace gsr {
}
}
+ void DropdownButton::set_item_enabled(const std::string &id, bool enabled) {
+ for(auto &item : items) {
+ if(item.id == id) {
+ item.enabled = enabled;
+ return;
+ }
+ }
+ }
+
void DropdownButton::set_description(std::string description_text) {
description.set_string(std::move(description_text));
}