X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffilm_editor.h;h=dadb583ae07b028f1c8324b1a0f30db6513c426e;hb=85c65bd422742813992686c17a5e1b718cc3c449;hp=6238aadc6ee6c5ff6cbe567abf23e0525912816d;hpb=62c15e24fcaa54a936b0e86cacce07616fea8c8e;p=dcpomatic.git diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h index 6238aadc6..dadb583ae 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,15 +27,17 @@ #include #include #include "lib/film.h" +#include "content_menu.h" class wxNotebook; class wxListCtrl; class wxListEvent; class Film; -class AudioDialog; -class TimelineDialog; -class AudioMappingView; -class Format; +class DCPTimelineDialog; +class Ratio; +class DCPTimecode; +class FilmEditorPanel; +class SubtitleContent; /** @class FilmEditor * @brief A wx widget to edit a film's metadata, and perform various functions. @@ -46,73 +48,74 @@ public: FilmEditor (boost::shared_ptr, wxWindow *); void set_film (boost::shared_ptr); + void set_selection (boost::weak_ptr); - boost::signals2::signal FileChanged; + boost::signals2::signal FileChanged; + /* Stuff for panels */ + + wxNotebook* content_notebook () const { + return _content_notebook; + } + + boost::shared_ptr film () const { + return _film; + } + + ContentList selected_content (); + VideoContentList selected_video_content (); + AudioContentList selected_audio_content (); + SubtitleContentList selected_subtitle_content (); + FFmpegContentList selected_ffmpeg_content (); + private: 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 */ - void name_changed (wxCommandEvent &); - void use_dci_name_toggled (wxCommandEvent &); - void edit_dci_button_clicked (wxCommandEvent &); - void left_crop_changed (wxCommandEvent &); - void right_crop_changed (wxCommandEvent &); - void top_crop_changed (wxCommandEvent &); - void bottom_crop_changed (wxCommandEvent &); - void trust_content_headers_changed (wxCommandEvent &); - void content_selection_changed (wxListEvent &); - void content_add_clicked (wxCommandEvent &); - void content_remove_clicked (wxCommandEvent &); - void imagemagick_video_length_changed (wxCommandEvent &); - void container_changed (wxCommandEvent &); - void dcp_content_type_changed (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 content_timeline_clicked (wxCommandEvent &); - void audio_stream_changed (wxCommandEvent &); - void subtitle_stream_changed (wxCommandEvent &); - void audio_mapping_changed (AudioMapping); + void name_changed (); + void use_dci_name_toggled (); + void edit_dci_button_clicked (); + void content_selection_changed (); + void content_add_file_clicked (); + void content_add_folder_clicked (); + void content_remove_clicked (); + void content_earlier_clicked (); + void content_later_clicked (); + void container_changed (); + void dcp_content_type_changed (); + void scaler_changed (); + void j2k_bandwidth_changed (); + void frame_rate_changed (); + void best_frame_rate_clicked (); + void content_timeline_clicked (); + void audio_channels_changed (); + void resolution_changed (); + void sequence_video_changed (); + void content_right_click (wxListEvent &); + void three_d_changed (); + void standard_changed (); + void signed_toggled (); + void encrypted_toggled (); /* Handle changes to the model */ void film_changed (Film::Property); - void film_content_changed (boost::weak_ptr, int); + void film_content_changed (int); - void set_things_sensitive (bool); - void setup_formats (); - void setup_subtitle_control_sensitivity (); + void set_general_sensitivity (bool); void setup_dcp_name (); - void setup_show_audio_sensitivity (); - void setup_scaling_description (); - void setup_main_notebook_size (); void setup_content (); void setup_container (); void setup_content_sensitivity (); - void setup_loop_sensitivity (); - void setup_content_properties (); void active_jobs_changed (bool); - boost::shared_ptr selected_content (); - boost::shared_ptr selected_video_content (); - boost::shared_ptr selected_audio_content (); + + FilmEditorPanel* _video_panel; + FilmEditorPanel* _audio_panel; + FilmEditorPanel* _subtitle_panel; + FilmEditorPanel* _timing_panel; + std::list _panels; wxNotebook* _main_notebook; wxNotebook* _content_notebook; @@ -120,12 +123,6 @@ private: 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; @@ -134,44 +131,30 @@ private: wxCheckBox* _use_dci_name; wxChoice* _container; wxListCtrl* _content; - wxButton* _content_add; + wxButton* _content_add_file; + wxButton* _content_add_folder; wxButton* _content_remove; wxButton* _content_earlier; wxButton* _content_later; wxButton* _content_timeline; - wxCheckBox* _loop_content; - wxSpinCtrl* _loop_count; + wxCheckBox* _sequence_video; wxButton* _edit_dci_button; - wxChoice* _format; - wxStaticText* _format_description; - wxStaticText* _scaling_description; - wxSpinCtrl* _left_crop; - wxSpinCtrl* _right_crop; - wxSpinCtrl* _top_crop; - wxSpinCtrl* _bottom_crop; - wxStaticText* _filters; - wxButton* _filters_button; wxChoice* _scaler; - wxSpinCtrl* _audio_gain; - wxButton* _audio_gain_calculate_button; - wxButton* _show_audio; - wxSpinCtrl* _audio_delay; - 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; - wxButton* _best_dcp_frame_rate; - wxChoice* _audio_stream; - wxStaticText* _audio_description; - wxChoice* _subtitle_stream; - AudioMappingView* _audio_mapping; + wxChoice* _frame_rate; + wxSpinCtrl* _audio_channels; + wxButton* _best_frame_rate; + wxCheckBox* _three_d; + wxChoice* _resolution; + wxChoice* _standard; + wxCheckBox* _signed; + wxCheckBox* _encrypted; + + ContentMenu _menu; - std::vector _formats; + std::vector _ratios; bool _generally_sensitive; - AudioDialog* _audio_dialog; - TimelineDialog* _timeline_dialog; + DCPTimelineDialog* _timeline_dialog; };