X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fvideo_panel.h;h=81e65d820e68b5e703320122422723b896af97c0;hb=94d5ba335224db075a95a76654f732ef54a4eabd;hp=62332a0520ae13c8985638c26f22a4e5f6eefcf1;hpb=74a8d26a8907c6e00e29f054178a3425f44e38ed;p=dcpomatic.git diff --git a/src/wx/video_panel.h b/src/wx/video_panel.h index 62332a052..81e65d820 100644 --- a/src/wx/video_panel.h +++ b/src/wx/video_panel.h @@ -1,60 +1,108 @@ /* - Copyright (C) 2012-2013 Carl Hetherington + Copyright (C) 2012-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 . */ + +/** @file src/lib/video_panel.h + * @brief VideoPanel class. + */ + + +#include "content_sub_panel.h" +#include "content_widget.h" +#include "timecode.h" #include "lib/film.h" -#include "film_editor_panel.h" +#include "lib/video_frame_type.h" + +class CheckBox; +class wxButton; class wxChoice; -class wxStaticText; class wxSpinCtrl; -class wxButton; +class wxStaticText; +class wxToggleButton; -class VideoPanel : public FilmEditorPanel + +/** @class VideoPanel + * @brief The video tab of the film editor. + */ +class VideoPanel : public ContentSubPanel { public: - VideoPanel (FilmEditor *); + explicit VideoPanel (ContentPanel *); - void film_changed (Film::Property); - void film_content_changed (boost::shared_ptr, int); + void create () override; + void film_changed (Film::Property) override; + void film_content_changed (int) override; + void content_selection_changed () override; private: + void reference_clicked (); + void colour_conversion_changed (); + void edit_colour_conversion_clicked (); + void range_changed (); + void fade_in_changed (); + void fade_out_changed (); + void add_to_grid () override; + void scale_fit_clicked (); + void scale_custom_clicked (); + bool scale_custom_edit_clicked (); + void left_right_link_clicked (); + void top_bottom_link_clicked (); void left_crop_changed (); void right_crop_changed (); void top_crop_changed (); void bottom_crop_changed (); - void edit_filters_clicked (); - void ratio_changed (); - void frame_type_changed (); - void colour_conversion_changed (); void setup_description (); - void setup_colour_conversions (); - - wxChoice* _frame_type; - wxSpinCtrl* _left_crop; - wxSpinCtrl* _right_crop; - wxSpinCtrl* _top_crop; - wxSpinCtrl* _bottom_crop; - wxChoice* _ratio; - wxStaticText* _ratio_description; + void setup_sensitivity (); + + CheckBox* _reference; + wxStaticText* _reference_note; + wxStaticText* _type_label; + ContentChoice* _frame_type; + wxStaticText* _crop_label; + wxStaticText* _left_crop_label; + ContentSpinCtrl* _left_crop; + wxToggleButton* _left_right_link; + wxStaticText* _right_crop_label; + ContentSpinCtrl* _right_crop; + wxStaticText* _top_crop_label; + ContentSpinCtrl* _top_crop; + wxToggleButton* _top_bottom_link; + wxStaticText* _bottom_crop_label; + ContentSpinCtrl* _bottom_crop; + wxStaticText* _fade_in_label; + Timecode* _fade_in; + wxStaticText* _fade_out_label; + Timecode* _fade_out; + wxStaticText* _scale_label; + wxRadioButton* _scale_fit; + wxRadioButton* _scale_custom; + wxButton* _scale_custom_edit; wxStaticText* _description; - wxStaticText* _filters; - wxButton* _filters_button; + wxStaticText* _colour_conversion_label; wxChoice* _colour_conversion; + wxButton* _edit_colour_conversion_button; + wxStaticText* _range_label; + wxChoice* _range; + + bool _left_changed_last = true; + bool _top_changed_last = true; };