/* * Copyright (c) 2022, MacDue * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include "ThemePreviewWidget.h" namespace DisplaySettings { class ThemesSettingsWidget final : public GUI::SettingsWindow::Tab { C_OBJECT_ABSTRACT(ThemesSettingsWidget); public: static ErrorOr> try_create(bool& background_settings_changed); virtual void apply_settings() override; private: ErrorOr setup_interface(); Vector m_themes; Vector m_theme_names; Vector m_color_scheme_names; RefPtr m_themes_combo; RefPtr m_theme_preview; Gfx::SystemThemeMetaData const* m_selected_theme { nullptr }; String m_selected_color_scheme_name {}; RefPtr m_cursor_themes_button; bool& m_background_settings_changed; bool m_color_scheme_is_file_based = true; ThemesSettingsWidget(bool& background_settings_changed); }; }