X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fconfig_dialog.h;h=3e71cb11ad75c75345c8e7553cc9a1a6691d3376;hb=aa8bb6ae4fe4f3bb113a5d304429937f25e30191;hp=ab2553e5661d16382109acf14911d34fac454237;hpb=72d1f6694f032a6044a4b14ee9ad9cba2b9756f3;p=dcpomatic.git diff --git a/src/wx/config_dialog.h b/src/wx/config_dialog.h index ab2553e56..3e71cb11a 100644 --- a/src/wx/config_dialog.h +++ b/src/wx/config_dialog.h @@ -18,38 +18,47 @@ */ + #ifndef DCPOMATIC_CONFIG_DIALOG_H #define DCPOMATIC_CONFIG_DIALOG_H -#include "wx_util.h" + #include "editable_list.h" #include "make_chain_dialog.h" +#include "wx_util.h" #include "lib/config.h" -#include "lib/ratio.h" -#include "lib/filter.h" +#include "lib/cross.h" #include "lib/dcp_content_type.h" +#include "lib/exceptions.h" +#include "lib/filter.h" #include "lib/log.h" +#include "lib/ratio.h" #include "lib/util.h" -#include "lib/cross.h" -#include "lib/exceptions.h" -#include -#include #include -#include +#include +#include +#include +LIBDCP_DISABLE_WARNINGS +#include #include #include -#include +#include #include +LIBDCP_ENABLE_WARNINGS #include -#include -#include -class Page + +class AudioMappingView; + + +class Page : public wxPreferencesPage { public: Page (wxSize panel_size, int border); virtual ~Page () {} + wxWindow* CreateWindow (wxWindow* parent) override; + protected: wxWindow* create_window (wxWindow* parent); @@ -68,49 +77,40 @@ private: bool _window_exists; }; -class StockPage : public wxStockPreferencesPage, public Page -{ -public: - StockPage (Kind kind, wxSize panel_size, int border); - wxWindow* CreateWindow (wxWindow* parent); -}; - -class StandardPage : public wxPreferencesPage, public Page -{ -public: - StandardPage (wxSize panel_size, int border); - wxWindow* CreateWindow (wxWindow* parent); -}; -class GeneralPage : public StockPage +class GeneralPage : public Page { public: GeneralPage (wxSize panel_size, int border); + wxString GetName () const override; + +#ifdef DCPOMATIC_OSX + wxBitmap GetLargeIcon () const override + { + return wxBitmap(bitmap_path("general"), wxBITMAP_TYPE_PNG); + } +#endif + protected: void add_language_controls (wxGridBagSizer* table, int& r); - void add_play_sound_controls (wxGridBagSizer* table, int& r); void add_update_controls (wxGridBagSizer* table, int& r); - virtual void config_changed (); + void config_changed () override; private: void setup_sensitivity (); - boost::optional get_sound_output (); void set_language_changed (); void language_changed (); void check_for_updates_changed (); void check_for_test_updates_changed (); - void sound_changed (); - void sound_output_changed (); wxCheckBox* _set_language; wxChoice* _language; - wxCheckBox* _sound; - wxChoice* _sound_output; wxCheckBox* _check_for_updates; wxCheckBox* _check_for_test_updates; }; + class CertificateChainEditor : public wxDialog { public: @@ -118,9 +118,9 @@ public: wxWindow* parent, wxString title, int border, - boost::function)> set, - boost::function (void)> get, - boost::function nag_alter + std::function)> set, + std::function (void)> get, + std::function nag_alter ); void add_button (wxWindow* button); @@ -149,39 +149,98 @@ private: wxStaticText* _private_key_bad; wxSizer* _sizer; wxBoxSizer* _button_sizer; - boost::function)> _set; - boost::function (void)> _get; - boost::function _nag_alter; + std::function)> _set; + std::function (void)> _get; + std::function _nag_alter; }; -class KeysPage : public StandardPage +class KeysPage : public Page { public: KeysPage (wxSize panel_size, int border) - : StandardPage (panel_size, border) + : Page (panel_size, border) {} - wxString GetName () const; + wxString GetName () const override; #ifdef DCPOMATIC_OSX - wxBitmap GetLargeIcon () const + wxBitmap GetLargeIcon () const override { - return wxBitmap ("keys", wxBITMAP_TYPE_PNG_RESOURCE); + return wxBitmap(bitmap_path("keys"), wxBITMAP_TYPE_PNG); } #endif private: - void setup (); + void setup () override; void export_decryption_certificate (); - void config_changed () {} + void config_changed () override {} bool nag_alter_decryption_chain (); void decryption_advanced (); void signing_advanced (); void export_decryption_chain_and_key (); void import_decryption_chain_and_key (); + void remake_signing (); +}; + + +class SoundPage : public Page +{ +public: + SoundPage (wxSize panel_size, int border) + : Page (panel_size, border) + {} + + wxString GetName() const override; + +#ifdef DCPOMATIC_OSX + wxBitmap GetLargeIcon () const override + { + return wxBitmap(bitmap_path("sound"), wxBITMAP_TYPE_PNG); + } +#endif + +private: + + void setup () override; + void config_changed () override; + boost::optional get_sound_output (); + void sound_changed (); + void sound_output_changed (); + void setup_sensitivity (); + void map_changed (AudioMapping m); + void reset_to_default (); + + wxCheckBox* _sound; + wxChoice* _sound_output; + wxStaticText* _sound_output_details; + AudioMappingView* _map; + Button* _reset_to_default; }; +class LocationsPage : public Page +{ +public: + LocationsPage (wxSize panel_size, int border); + + wxString GetName () const override; + +#ifdef DCPOMATIC_OSX + wxBitmap GetLargeIcon () const override; +#endif + +private: + void setup () override; + void config_changed () override; + void content_directory_changed (); + void playlist_directory_changed (); + void kdm_directory_changed (); + + wxDirPickerCtrl* _content_directory; + wxDirPickerCtrl* _playlist_directory; + wxDirPickerCtrl* _kdm_directory; +}; + #endif