X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fsubtitle_appearance_dialog.h;h=cef264590343dfe97ecd3c294d30b839826e3bd3;hb=e7d8a70a16f972de2861bb1464dec6df3d26c579;hp=fddb902acdf5afde8585a960c15642662ac304d0;hpb=80400212e939dc2f3b987cb6df57709929aa5178;p=dcpomatic.git diff --git a/src/wx/subtitle_appearance_dialog.h b/src/wx/subtitle_appearance_dialog.h index fddb902ac..cef264590 100644 --- a/src/wx/subtitle_appearance_dialog.h +++ b/src/wx/subtitle_appearance_dialog.h @@ -1,40 +1,91 @@ /* - Copyright (C) 2015 Carl Hetherington + Copyright (C) 2015-2021 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic 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 General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ -#include "table_dialog.h" -#include -class wxCheckBox; +#include "timecode.h" +#include "lib/change_signaller.h" +#include "lib/rgba.h" +#include +LIBDCP_DISABLE_WARNINGS +#include +LIBDCP_ENABLE_WARNINGS +#include + + +class CheckBox; +class Content; +class FFmpegSubtitleStream; +class Film; +class Job; +class RGBAColourPicker; class wxColourPickerCtrl; -class TextSubtitleContent; +class wxGridBagSizer; +class wxRadioButton; +class wxWidget; -class SubtitleAppearanceDialog : public TableDialog + +class SubtitleAppearanceDialog : public wxDialog { public: - SubtitleAppearanceDialog (wxWindow* parent, boost::shared_ptr content); + SubtitleAppearanceDialog (wxWindow* parent, std::shared_ptr film, std::shared_ptr content, std::shared_ptr caption); void apply (); private: + void setup_sensitivity (); + void restore (); + CheckBox* set_to (wxWindow* w, int& r); + void content_change (ChangeType type); + void active_jobs_changed (boost::optional last); + void add_colours (); + + std::weak_ptr _film; + CheckBox* _force_colour; wxColourPickerCtrl* _colour; - wxCheckBox* _outline; - wxColourPickerCtrl* _outline_colour; + CheckBox* _force_effect; + wxChoice* _effect; + CheckBox* _force_effect_colour; + wxColourPickerCtrl* _effect_colour; + CheckBox* _force_fade_in; + Timecode* _fade_in; + CheckBox* _force_fade_out; + Timecode* _fade_out; + wxSpinCtrl* _outline_width; + wxGridBagSizer* _table; + std::map _pickers; + + wxBoxSizer* _overall_sizer; + wxScrolled* _colours_panel; + wxStaticText* _finding = nullptr; + wxFlexGridSizer* _colour_table; + + std::shared_ptr _content; + std::shared_ptr _text; + std::shared_ptr _stream; + + boost::signals2::scoped_connection _content_connection; + boost::signals2::scoped_connection _job_manager_connection; + + std::weak_ptr _job; - boost::shared_ptr _content; + static int const NONE; + static int const OUTLINE; + static int const SHADOW; };