X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffilm_editor.h;h=ff9198be42a60fc910110ea88b52ca054596097b;hb=eceeb0c13cdaf08204968047269b49d8d493f741;hp=685e7864f0fe3d012cf7baa0ea9164073dd55150;hpb=9bf304a86a3df6f4b10a572d657b5d7beb910582;p=dcpomatic.git diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h index 685e7864f..ff9198be4 100644 --- a/src/wx/film_editor.h +++ b/src/wx/film_editor.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Carl Hetherington + Copyright (C) 2012-2013 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,14 +27,18 @@ #include #include #include "lib/film.h" +#include "content_menu.h" class wxNotebook; class wxListCtrl; class wxListEvent; class Film; -class AudioDialog; -class AudioMappingView; class TimelineDialog; +class Ratio; +class Timecode; +class TimingPanel; +class SubtitlePanel; +class AudioPanel; /** @class FilmEditor * @brief A wx widget to edit a film's metadata, and perform various functions. @@ -45,15 +49,33 @@ public: FilmEditor (boost::shared_ptr, wxWindow *); void set_film (boost::shared_ptr); + void set_selection (boost::weak_ptr); boost::signals2::signal FileChanged; + /* Stuff for panels */ + + wxNotebook* content_notebook () const { + return _content_notebook; + } + + boost::shared_ptr film () const { + return _film; + } + + boost::shared_ptr selected_content (); + boost::shared_ptr selected_video_content (); + boost::shared_ptr selected_audio_content (); + boost::shared_ptr selected_subtitle_content (); + + bool generally_sensitive () const { + return _generally_sensitive; + } + private: - void make_film_panel (); + void make_dcp_panel (); void make_content_panel (); void make_video_panel (); - void make_audio_panel (); - void make_subtitle_panel (); void connect_to_widgets (); /* Handle changes to the view */ @@ -66,91 +88,65 @@ private: void bottom_crop_changed (wxCommandEvent &); void trust_content_headers_changed (wxCommandEvent &); void content_selection_changed (wxListEvent &); - void content_activated (wxListEvent &); void content_add_clicked (wxCommandEvent &); void content_remove_clicked (wxCommandEvent &); - void content_edit_clicked (wxCommandEvent &); - void content_earlier_clicked (wxCommandEvent &); - void content_later_clicked (wxCommandEvent &); void imagemagick_video_length_changed (wxCommandEvent &); - void format_changed (wxCommandEvent &); - void trim_start_changed (wxCommandEvent &); - void trim_end_changed (wxCommandEvent &); - void trim_type_changed (wxCommandEvent &); + void container_changed (wxCommandEvent &); void dcp_content_type_changed (wxCommandEvent &); - void ab_toggled (wxCommandEvent &); void scaler_changed (wxCommandEvent &); - void audio_gain_changed (wxCommandEvent &); - void audio_gain_calculate_button_clicked (wxCommandEvent &); - void show_audio_clicked (wxCommandEvent &); - void audio_delay_changed (wxCommandEvent &); - void with_subtitles_toggled (wxCommandEvent &); - void subtitle_offset_changed (wxCommandEvent &); - void subtitle_scale_changed (wxCommandEvent &); - void colour_lut_changed (wxCommandEvent &); void j2k_bandwidth_changed (wxCommandEvent &); void dcp_frame_rate_changed (wxCommandEvent &); void best_dcp_frame_rate_clicked (wxCommandEvent &); void edit_filters_clicked (wxCommandEvent &); - void loop_content_toggled (wxCommandEvent &); - void loop_count_changed (wxCommandEvent &); - void timeline_clicked (wxCommandEvent &); + void content_timeline_clicked (wxCommandEvent &); + void ratio_changed (wxCommandEvent &); + void dcp_audio_channels_changed (wxCommandEvent &); + void dcp_resolution_changed (wxCommandEvent &); + void sequence_video_changed (wxCommandEvent &); + void content_right_click (wxListEvent &); /* Handle changes to the model */ void film_changed (Film::Property); void film_content_changed (boost::weak_ptr, int); void set_things_sensitive (bool); - void setup_formats (); - void setup_subtitle_control_sensitivity (); + void setup_ratios (); void setup_dcp_name (); - void setup_show_audio_sensitivity (); void setup_scaling_description (); - void setup_notebook_size (); - void setup_frame_rate_description (); void setup_content (); - void setup_format (); - void setup_length (); - void setup_content_information (); - void setup_content_button_sensitivity (); - void setup_loop_sensitivity (); + void setup_container (); + void setup_content_sensitivity (); void active_jobs_changed (bool); - boost::shared_ptr selected_content (); - void edit_content (boost::shared_ptr); - wxNotebook* _notebook; - wxPanel* _film_panel; - wxSizer* _film_sizer; + AudioPanel* _audio_panel; + SubtitlePanel* _subtitle_panel; + TimingPanel* _timing_panel; + + wxNotebook* _main_notebook; + wxNotebook* _content_notebook; + wxPanel* _dcp_panel; + wxSizer* _dcp_sizer; wxPanel* _content_panel; wxSizer* _content_sizer; wxPanel* _video_panel; - wxSizer* _video_sizer; - wxPanel* _audio_panel; - wxSizer* _audio_sizer; - wxPanel* _subtitle_panel; - wxSizer* _subtitle_sizer; /** The film we are editing */ boost::shared_ptr _film; - /** The Film's name */ wxTextCtrl* _name; wxStaticText* _dcp_name; wxCheckBox* _use_dci_name; + wxChoice* _container; wxListCtrl* _content; wxButton* _content_add; wxButton* _content_remove; - wxButton* _content_edit; wxButton* _content_earlier; wxButton* _content_later; - wxTextCtrl* _content_information; - wxCheckBox* _loop_content; - wxSpinCtrl* _loop_count; - wxButton* _timeline_button; + wxButton* _content_timeline; + wxCheckBox* _sequence_video; wxButton* _edit_dci_button; - wxChoice* _format; - wxStaticText* _format_description; - wxCheckBox* _trust_content_headers; + wxChoice* _ratio; + wxStaticText* _ratio_description; wxStaticText* _scaling_description; wxSpinCtrl* _left_crop; wxSpinCtrl* _right_crop; @@ -159,33 +155,17 @@ private: wxStaticText* _filters; wxButton* _filters_button; wxChoice* _scaler; - wxSpinCtrl* _audio_gain; - wxButton* _audio_gain_calculate_button; - wxButton* _show_audio; - wxSpinCtrl* _audio_delay; - AudioMappingView* _audio_mapping; - wxCheckBox* _with_subtitles; - wxSpinCtrl* _subtitle_offset; - wxSpinCtrl* _subtitle_scale; - wxChoice* _colour_lut; - wxSpinCtrl* _j2k_bandwidth; + wxSpinCtrl* _j2k_bandwidth; wxChoice* _dcp_content_type; wxChoice* _dcp_frame_rate; + wxSpinCtrl* _dcp_audio_channels; wxButton* _best_dcp_frame_rate; - wxStaticText* _frame_rate_description; - wxStaticText* _length; - /** The Film's audio details */ - wxStaticText* _audio; + wxChoice* _dcp_resolution; - wxSpinCtrl* _trim_start; - wxSpinCtrl* _trim_end; - wxChoice* _trim_type; - /** Selector to generate an A/B comparison DCP */ - wxCheckBox* _ab; + ContentMenu _menu; - std::vector _formats; + std::vector _ratios; bool _generally_sensitive; - AudioDialog* _audio_dialog; TimelineDialog* _timeline_dialog; };