/*
- Copyright (C) 2015-2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2015-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#include "timecode.h"
+#include "lib/change_signaller.h"
#include "lib/rgba.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
#include <wx/wx.h>
-#include <boost/shared_ptr.hpp>
+LIBDCP_ENABLE_WARNINGS
#include <boost/signals2.hpp>
+
class wxRadioButton;
class wxColourPickerCtrl;
class wxGridBagSizer;
class FFmpegSubtitleStream;
class wxCheckBox;
class wxWidget;
+class Film;
+class Job;
+
class SubtitleAppearanceDialog : public wxDialog
{
public:
- SubtitleAppearanceDialog (wxWindow* parent, boost::shared_ptr<Content> content, boost::shared_ptr<TextContent> caption);
+ SubtitleAppearanceDialog (wxWindow* parent, std::shared_ptr<const Film> film, std::shared_ptr<Content> content, std::shared_ptr<TextContent> caption);
void apply ();
void restore ();
wxCheckBox* set_to (wxWindow* w, int& r);
void content_change (ChangeType type);
+ void active_jobs_changed (boost::optional<std::string> last);
+ void add_colours ();
+ std::weak_ptr<const Film> _film;
wxCheckBox* _force_colour;
wxColourPickerCtrl* _colour;
wxCheckBox* _force_effect;
wxCheckBox* _force_effect_colour;
wxColourPickerCtrl* _effect_colour;
wxCheckBox* _force_fade_in;
- Timecode<ContentTime>* _fade_in;
+ Timecode<dcpomatic::ContentTime>* _fade_in;
wxCheckBox* _force_fade_out;
- Timecode<ContentTime>* _fade_out;
+ Timecode<dcpomatic::ContentTime>* _fade_out;
wxSpinCtrl* _outline_width;
wxGridBagSizer* _table;
std::map<RGBA, RGBAColourPicker*> _pickers;
- boost::shared_ptr<Content> _content;
- boost::shared_ptr<TextContent> _caption;
- boost::shared_ptr<FFmpegSubtitleStream> _stream;
+ wxBoxSizer* _overall_sizer;
+ wxScrolled<wxPanel>* _colours_panel;
+ wxStaticText* _finding = nullptr;
+ wxFlexGridSizer* _colour_table;
+
+ std::shared_ptr<Content> _content;
+ std::shared_ptr<TextContent> _text;
+ std::shared_ptr<FFmpegSubtitleStream> _stream;
boost::signals2::scoped_connection _content_connection;
+ boost::signals2::scoped_connection _job_manager_connection;
+
+ std::weak_ptr<Job> _job;
static int const NONE;
static int const OUTLINE;