EVO-melroy-winegui/include/preferences_window.h
2023-04-16 18:17:21 +02:00

66 lines
2.7 KiB
C++

/**
* Copyright (c) 2019-2023 WineGUI
*
* \file preferences_window.h
* \brief WineGUI Application preferences window
* \author Melroy van den Berg <webmaster1989@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <gtkmm.h>
/**
* \class PreferencesWindow
* \brief WineGUI preferences GTK Window class
*/
class PreferencesWindow : public Gtk::Window
{
public:
// Signals
sigc::signal<void> config_saved; /*!< config is saved signal */
explicit PreferencesWindow(Gtk::Window& parent);
virtual ~PreferencesWindow();
void show();
protected:
// Child widgets
Gtk::Box vbox; /*!< main vertical box */
Gtk::Box hbox_buttons; /*!< box for buttons */
Gtk::Grid settings_grid; /*!< grid layout for settings */
Gtk::Label header_preferences_label; /*!< header preferences label */
Gtk::Label default_folder_label; /*!< default folder label */
Gtk::Label display_default_wine_machine_label; /*!< display default Wine machine label */
Gtk::Label prefer_wine64_label; /*!< prefer Wine 64-bit label */
Gtk::Label logging_label_heading; /*!< Logging header label */
Gtk::Label logging_stderr_label; /*!< logging stderr label */
Gtk::Entry default_folder_entry; /*!< default folder input field */
Gtk::CheckButton display_default_wine_machine_check; /*!< display default Wine machine checkbox */
Gtk::CheckButton prefer_wine64_check; /*!< prefer Wine 64-bit checkbox */
Gtk::CheckButton enable_logging_stderr_check; /*!< debug logging checkbox */
Gtk::Button select_folder_button; /*!< select folder button */
Gtk::Button save_button; /*!< save button */
Gtk::Button cancel_button; /*!< cancel button */
private:
// Signal handlers
void on_select_folder();
void on_select_dialog_response(int response_id, Gtk::FileChooserDialog* dialog);
void on_cancel_button_clicked();
void on_save_button_clicked();
};