2 Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
4 This file is part of DCP-o-matic.
6 DCP-o-matic is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 DCP-o-matic is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
22 /** @file src/lib/video_panel.h
23 * @brief VideoPanel class.
27 #include "content_sub_panel.h"
28 #include "content_widget.h"
41 * @brief The video tab of the film editor.
43 class VideoPanel : public ContentSubPanel
46 explicit VideoPanel (ContentPanel *);
48 void create () override;
49 void film_changed (Film::Property) override;
50 void film_content_changed (int) override;
51 void content_selection_changed () override;
54 void reference_clicked ();
55 void colour_conversion_changed ();
56 void edit_colour_conversion_clicked ();
57 void range_changed ();
58 void fade_in_changed ();
59 void fade_out_changed ();
60 void add_to_grid () override;
61 void scale_fit_clicked ();
62 void scale_custom_clicked ();
63 bool scale_custom_edit_clicked ();
64 void left_right_link_clicked ();
65 void top_bottom_link_clicked ();
66 void left_crop_changed ();
67 void right_crop_changed ();
68 void top_crop_changed ();
69 void bottom_crop_changed ();
71 void setup_description ();
72 void setup_sensitivity ();
74 wxCheckBox* _reference;
75 wxStaticText* _reference_note;
76 wxStaticText* _type_label;
77 ContentChoice<VideoContent, VideoFrameType>* _frame_type;
78 wxStaticText* _crop_label;
79 wxStaticText* _left_crop_label;
80 ContentSpinCtrl<VideoContent>* _left_crop;
81 wxToggleButton* _left_right_link;
82 wxStaticText* _right_crop_label;
83 ContentSpinCtrl<VideoContent>* _right_crop;
84 wxStaticText* _top_crop_label;
85 ContentSpinCtrl<VideoContent>* _top_crop;
86 wxToggleButton* _top_bottom_link;
87 wxStaticText* _bottom_crop_label;
88 ContentSpinCtrl<VideoContent>* _bottom_crop;
89 wxStaticText* _fade_in_label;
90 Timecode<dcpomatic::ContentTime>* _fade_in;
91 wxStaticText* _fade_out_label;
92 Timecode<dcpomatic::ContentTime>* _fade_out;
93 wxStaticText* _scale_label;
94 wxRadioButton* _scale_fit;
95 wxRadioButton* _scale_custom;
96 wxButton* _scale_custom_edit;
97 wxStaticText* _description;
98 wxStaticText* _colour_conversion_label;
99 wxChoice* _colour_conversion;
100 wxButton* _edit_colour_conversion_button;
101 wxStaticText* _range_label;
104 bool _left_changed_last = true;
105 bool _top_changed_last = true;