/* * Copyright (c) 2020, Idan Horowitz * Copyright (c) 2021, the SerenityOS developers. * Copyright (c) 2021, Andreas Kling * Copyright (c) 2021, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include namespace GUI { SettingsWindow::SettingsWindow(StringView title, ShowDefaultsButton show_defaults_button) { set_title(title); resize(400, 480); set_resizable(false); set_minimizable(false); auto& main_widget = set_main_widget(); main_widget.set_fill_with_background_color(true); main_widget.set_layout(); main_widget.layout()->set_margins(4); main_widget.layout()->set_spacing(6); m_tab_widget = main_widget.add(); auto& button_container = main_widget.add(); button_container.set_shrink_to_fit(true); button_container.set_layout(); button_container.layout()->set_spacing(6); if (show_defaults_button == ShowDefaultsButton::Yes) { m_reset_button = button_container.add("Defaults"); m_reset_button->on_click = [&](auto) { for (auto& tab : m_tabs) { tab.reset_default_values(); tab.apply_settings(); } }; } button_container.layout()->add_spacer(); m_ok_button = button_container.add("OK"); m_ok_button->set_fixed_width(75); m_ok_button->on_click = [&](auto) { for (auto& tab : m_tabs) tab.apply_settings(); GUI::Application::the()->quit(); }; m_cancel_button = button_container.add("Cancel"); m_cancel_button->set_fixed_width(75); m_cancel_button->on_click = [&](auto) { for (auto& tab : m_tabs) tab.cancel_settings(); GUI::Application::the()->quit(); }; m_apply_button = button_container.add("Apply"); m_apply_button->set_fixed_width(75); m_apply_button->on_click = [&](auto) { for (auto& tab : m_tabs) tab.apply_settings(); }; } SettingsWindow::~SettingsWindow() { } }