*/
+
#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 <dcp/locale_convert.h>
-#include <dcp/exceptions.h>
#include <dcp/certificate_chain.h>
-#include <wx/stdpaths.h>
+#include <dcp/exceptions.h>
+#include <dcp/locale_convert.h>
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
+#include <wx/filepicker.h>
#include <wx/preferences.h>
#include <wx/spinctrl.h>
-#include <wx/filepicker.h>
+#include <wx/stdpaths.h>
#include <RtAudio.h>
+LIBDCP_ENABLE_WARNINGS
#include <boost/filesystem.hpp>
-#include <boost/foreach.hpp>
-#include <iostream>
-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);
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<std::string> 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:
wxWindow* parent,
wxString title,
int border,
- boost::function<void (boost::shared_ptr<dcp::CertificateChain>)> set,
- boost::function<boost::shared_ptr<const dcp::CertificateChain> (void)> get,
- boost::function<bool (void)> nag_remake
+ std::function<void (std::shared_ptr<dcp::CertificateChain>)> set,
+ std::function<std::shared_ptr<const dcp::CertificateChain> (void)> get,
+ std::function<bool (void)> nag_alter
);
void add_button (wxWindow* button);
void update_private_key ();
void import_private_key ();
void export_private_key ();
+ void export_chain ();
wxListCtrl* _certificates;
wxButton* _add_certificate;
wxStaticText* _private_key;
wxButton* _import_private_key;
wxButton* _export_private_key;
+ wxButton* _export_chain;
wxStaticText* _private_key_bad;
wxSizer* _sizer;
wxBoxSizer* _button_sizer;
- boost::function<void (boost::shared_ptr<dcp::CertificateChain>)> _set;
- boost::function<boost::shared_ptr<const dcp::CertificateChain> (void)> _get;
- boost::function<bool (void)> _nag_remake;
+ std::function<void (std::shared_ptr<dcp::CertificateChain>)> _set;
+ std::function<std::shared_ptr<const dcp::CertificateChain> (void)> _get;
+ std::function<bool (void)> _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;
+ 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 export_decryption_chain ();
- void config_changed () {}
- bool nag_remake_decryption_chain ();
+ 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
- bool _sign;
+private:
+
+ void setup () override;
+ void config_changed () override;
+ boost::optional<std::string> 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