mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-04-24 10:39:51 +09:00
Add donation link in settings
This commit is contained in:
@@ -65,7 +65,7 @@ namespace gsr {
|
|||||||
bool draw();
|
bool draw();
|
||||||
|
|
||||||
void show();
|
void show();
|
||||||
void hide();
|
void hide_next_frame();
|
||||||
void toggle_show();
|
void toggle_show();
|
||||||
void toggle_record();
|
void toggle_record();
|
||||||
void toggle_pause();
|
void toggle_pause();
|
||||||
@@ -90,6 +90,8 @@ namespace gsr {
|
|||||||
|
|
||||||
void set_notification_speed(NotificationSpeed notification_speed);
|
void set_notification_speed(NotificationSpeed notification_speed);
|
||||||
private:
|
private:
|
||||||
|
void hide();
|
||||||
|
|
||||||
void handle_keyboard_mapping_event();
|
void handle_keyboard_mapping_event();
|
||||||
void on_event(mgl::Event &event);
|
void on_event(mgl::Event &event);
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ namespace gsr {
|
|||||||
std::unique_ptr<List> create_notification_speed();
|
std::unique_ptr<List> create_notification_speed();
|
||||||
std::unique_ptr<Subsection> create_application_options_subsection(ScrollablePage *parent_page);
|
std::unique_ptr<Subsection> create_application_options_subsection(ScrollablePage *parent_page);
|
||||||
std::unique_ptr<Subsection> create_application_info_subsection(ScrollablePage *parent_page);
|
std::unique_ptr<Subsection> create_application_info_subsection(ScrollablePage *parent_page);
|
||||||
|
std::unique_ptr<Subsection> create_donate_subsection(ScrollablePage *parent_page);
|
||||||
void add_widgets();
|
void add_widgets();
|
||||||
|
|
||||||
Button* configure_hotkey_get_button_by_active_type();
|
Button* configure_hotkey_get_button_by_active_type();
|
||||||
|
|||||||
@@ -1446,6 +1446,10 @@ namespace gsr {
|
|||||||
malloc_trim(0);
|
malloc_trim(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Overlay::hide_next_frame() {
|
||||||
|
hide_ui = true;
|
||||||
|
}
|
||||||
|
|
||||||
void Overlay::toggle_show() {
|
void Overlay::toggle_show() {
|
||||||
if(visible) {
|
if(visible) {
|
||||||
//hide();
|
//hide();
|
||||||
|
|||||||
@@ -528,6 +528,22 @@ namespace gsr {
|
|||||||
return std::make_unique<Subsection>("Application info", std::move(list), mgl::vec2f(parent_page->get_inner_size().x, 0.0f));
|
return std::make_unique<Subsection>("Application info", std::move(list), mgl::vec2f(parent_page->get_inner_size().x, 0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<Subsection> GlobalSettingsPage::create_donate_subsection(ScrollablePage *parent_page) {
|
||||||
|
auto list = std::make_unique<List>(List::Orientation::VERTICAL);
|
||||||
|
list->add_widget(std::make_unique<Label>(&get_theme().body_font, "If you would like to donate you can do so by donating at https://buymeacoffee.com/dec05eba:", get_color_theme().text_color));
|
||||||
|
|
||||||
|
auto donate_button = std::make_unique<Button>(&get_theme().body_font, "Donate", mgl::vec2f(0.0f, 0.0f), mgl::Color(0, 0, 0, 120));
|
||||||
|
donate_button->on_click = [this] {
|
||||||
|
const char *args[] = { "xdg-open", "https://buymeacoffee.com/dec05eba", nullptr };
|
||||||
|
exec_program_daemonized(args);
|
||||||
|
overlay->hide_next_frame();
|
||||||
|
};
|
||||||
|
list->add_widget(std::move(donate_button));
|
||||||
|
|
||||||
|
list->add_widget(std::make_unique<Label>(&get_theme().body_font, "All donations go toward developing software (including GPU Screen Recorder)\nand buying hardware to test the software.", get_color_theme().text_color));
|
||||||
|
return std::make_unique<Subsection>("Donate", std::move(list), mgl::vec2f(parent_page->get_inner_size().x, 0.0f));
|
||||||
|
}
|
||||||
|
|
||||||
void GlobalSettingsPage::add_widgets() {
|
void GlobalSettingsPage::add_widgets() {
|
||||||
auto scrollable_page = std::make_unique<ScrollablePage>(content_page_ptr->get_inner_size());
|
auto scrollable_page = std::make_unique<ScrollablePage>(content_page_ptr->get_inner_size());
|
||||||
|
|
||||||
@@ -539,6 +555,7 @@ namespace gsr {
|
|||||||
settings_list->add_widget(create_controller_hotkey_subsection(scrollable_page.get()));
|
settings_list->add_widget(create_controller_hotkey_subsection(scrollable_page.get()));
|
||||||
settings_list->add_widget(create_application_options_subsection(scrollable_page.get()));
|
settings_list->add_widget(create_application_options_subsection(scrollable_page.get()));
|
||||||
settings_list->add_widget(create_application_info_subsection(scrollable_page.get()));
|
settings_list->add_widget(create_application_info_subsection(scrollable_page.get()));
|
||||||
|
settings_list->add_widget(create_donate_subsection(scrollable_page.get()));
|
||||||
scrollable_page->add_widget(std::move(settings_list));
|
scrollable_page->add_widget(std::move(settings_list));
|
||||||
|
|
||||||
content_page_ptr->add_widget(std::move(scrollable_page));
|
content_page_ptr->add_widget(std::move(scrollable_page));
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ namespace gsr {
|
|||||||
if(capture_options.region)
|
if(capture_options.region)
|
||||||
record_area_box->add_item("Region", "region");
|
record_area_box->add_item("Region", "region");
|
||||||
if(!capture_options.monitors.empty())
|
if(!capture_options.monitors.empty())
|
||||||
record_area_box->add_item(gsr_info->system_info.display_server == DisplayServer::WAYLAND ? "Focused monitor (Experimental on Wayland)" : "Focused monitor", "focused_monitor");
|
record_area_box->add_item("Focused monitor", "focused_monitor");
|
||||||
for(const auto &monitor : capture_options.monitors) {
|
for(const auto &monitor : capture_options.monitors) {
|
||||||
char name[256];
|
char name[256];
|
||||||
snprintf(name, sizeof(name), "Monitor %s (%dx%d)", monitor.name.c_str(), monitor.size.x, monitor.size.y);
|
snprintf(name, sizeof(name), "Monitor %s (%dx%d)", monitor.name.c_str(), monitor.size.x, monitor.size.y);
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ namespace gsr {
|
|||||||
if(capture_options.region)
|
if(capture_options.region)
|
||||||
record_area_box->add_item("Region", "region");
|
record_area_box->add_item("Region", "region");
|
||||||
if(!capture_options.monitors.empty())
|
if(!capture_options.monitors.empty())
|
||||||
record_area_box->add_item(gsr_info->system_info.display_server == DisplayServer::WAYLAND ? "Focused monitor (Experimental on Wayland)" : "Focused monitor", "focused_monitor");
|
record_area_box->add_item("Focused monitor", "focused_monitor");
|
||||||
for(const auto &monitor : capture_options.monitors) {
|
for(const auto &monitor : capture_options.monitors) {
|
||||||
char name[256];
|
char name[256];
|
||||||
snprintf(name, sizeof(name), "Monitor %s (%dx%d)", monitor.name.c_str(), monitor.size.x, monitor.size.y);
|
snprintf(name, sizeof(name), "Monitor %s (%dx%d)", monitor.name.c_str(), monitor.size.x, monitor.size.y);
|
||||||
|
|||||||
Reference in New Issue
Block a user