X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fconfig_dialog.h;h=a698b252a89d1fd41864fe859a30e7e5869c92e3;hb=a332bd6be323f03dad5b180fb237afe54f1bf81e;hp=77389c375ef3d8c94bfdf0d2c67d6a5ee1b5329f;hpb=f8832c431b45e81523ec2ef70999e7e613d5001e;p=dcpomatic.git diff --git a/src/wx/config_dialog.h b/src/wx/config_dialog.h index 77389c375..a698b252a 100644 --- a/src/wx/config_dialog.h +++ b/src/wx/config_dialog.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2017 Carl Hetherington + Copyright (C) 2012-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -32,24 +32,31 @@ #include "lib/util.h" #include "lib/cross.h" #include "lib/exceptions.h" +#include "lib/warnings.h" #include #include #include +DCPOMATIC_DISABLE_WARNINGS #include #include #include #include +DCPOMATIC_ENABLE_WARNINGS #include #include #include #include -class Page +class AudioMappingView; + +class Page : public wxPreferencesPage { public: Page (wxSize panel_size, int border); virtual ~Page () {} + wxWindow* CreateWindow (wxWindow* parent); + protected: wxWindow* create_window (wxWindow* parent); @@ -68,50 +75,39 @@ private: bool _window_exists; }; -class StockPage : public wxStockPreferencesPage, public Page +class GeneralPage : public Page { public: - StockPage (Kind kind, wxSize panel_size, int border); - wxWindow* CreateWindow (wxWindow* parent); -}; + GeneralPage (wxSize panel_size, int border); -class StandardPage : public wxPreferencesPage, public Page -{ -public: - StandardPage (wxSize panel_size, int border); - wxWindow* CreateWindow (wxWindow* parent); -}; + wxString GetName () const; -class GeneralPage : public StockPage -{ -public: - GeneralPage (wxSize panel_size, int border); +#ifdef DCPOMATIC_OSX + wxBitmap GetLargeIcon () const + { + return wxBitmap ("general", wxBITMAP_TYPE_PNG_RESOURCE); + } +#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 (); 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 wxPanel +class CertificateChainEditor : public wxDialog { public: CertificateChainEditor ( @@ -120,10 +116,9 @@ public: int border, boost::function)> set, boost::function (void)> get, - boost::function nag_remake + boost::function nag_alter ); - void config_changed (); void add_button (wxWindow* button); private: @@ -134,8 +129,9 @@ private: void remake_certificates (); void update_sensitivity (); void update_private_key (); - void load_private_key (); + void import_private_key (); void export_private_key (); + void export_chain (); wxListCtrl* _certificates; wxButton* _add_certificate; @@ -143,23 +139,22 @@ private: wxButton* _remove_certificate; wxButton* _remake_certificates; wxStaticText* _private_key; - wxButton* _load_private_key; + wxButton* _import_private_key; wxButton* _export_private_key; + wxButton* _export_chain; wxStaticText* _private_key_bad; wxSizer* _sizer; wxBoxSizer* _button_sizer; - boost::shared_ptr _chain; boost::function)> _set; boost::function (void)> _get; - boost::function _nag_remake; + boost::function _nag_alter; }; -class KeysPage : public StandardPage +class KeysPage : public Page { public: - KeysPage (wxSize panel_size, int border, bool sign) - : StandardPage (panel_size, border) - , _sign (sign) + KeysPage (wxSize panel_size, int border) + : Page (panel_size, border) {} wxString GetName () const; @@ -176,16 +171,69 @@ private: void setup (); void export_decryption_certificate (); - void export_decryption_chain (); + void config_changed () {} + bool nag_alter_decryption_chain (); + void decryption_advanced (); + void signing_advanced (); + void export_decryption_chain_and_key (); + void import_decryption_chain_and_key (); +}; + + +class SoundPage : public Page +{ +public: + SoundPage (wxSize panel_size, int border) + : Page (panel_size, border) + {} + + wxString GetName() const; + +#ifdef DCPOMATIC_OSX + wxBitmap GetLargeIcon () const + { + return wxBitmap ("sound", wxBITMAP_TYPE_PNG_RESOURCE); + } +#endif + +private: + + void setup (); void config_changed (); - void nag_remake_decryption_chain (); + boost::optional get_sound_output (); + void sound_changed (); + void sound_output_changed (); + void setup_sensitivity (); + void map_changed (AudioMapping m); + void reset_to_default (); - CertificateChainEditor* _signer; - CertificateChainEditor* _decryption; - wxButton* _export_decryption_certificate; - wxButton* _export_decryption_chain; - bool _sign; + 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; + +#ifdef DCPOMATIC_OSX + wxBitmap GetLargeIcon () const; +#endif +private: + void setup (); + void config_changed (); + void content_directory_changed (); + void playlist_directory_changed (); + void kdm_directory_changed (); + + wxDirPickerCtrl* _content_directory; + wxDirPickerCtrl* _playlist_directory; + wxDirPickerCtrl* _kdm_directory; +}; #endif