X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fcontent_panel.h;h=8277b7c4250a1013e85cc3e0055ea407ff11f301;hb=63c1bbc1ba177600523b2257223070cc2dbde7b7;hp=cf5782baa6d45e268b94ce6bd391cea85e01c363;hpb=14247790278d45e98004ef54b8ba700d10f3193a;p=dcpomatic.git diff --git a/src/wx/content_panel.h b/src/wx/content_panel.h index cf5782baa..8277b7c42 100644 --- a/src/wx/content_panel.h +++ b/src/wx/content_panel.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2016 Carl Hetherington + Copyright (C) 2012-2019 Carl Hetherington This file is part of DCP-o-matic. @@ -18,28 +18,33 @@ */ -#include -#include +#include "content_menu.h" #include "lib/types.h" #include "lib/film.h" -#include "content_menu.h" +#include +#include +#include class wxNotebook; class wxPanel; class wxSizer; class wxListCtrl; class wxListEvent; +class wxSplitterWindow; class TimelineDialog; class FilmEditor; class ContentSubPanel; +class TextPanel; +class VideoPanel; class AudioPanel; +class TimingPanel; class Film; class FilmViewer; class ContentPanel : public boost::noncopyable { public: - ContentPanel (wxNotebook *, boost::shared_ptr, FilmViewer* viewer); + ContentPanel (wxNotebook *, boost::shared_ptr, boost::weak_ptr viewer); boost::shared_ptr film () const { return _film; @@ -53,8 +58,8 @@ public: void film_changed (Film::Property p); void film_content_changed (int p); - wxPanel* panel () const { - return _panel; + wxWindow* window () const { + return _splitter; } wxNotebook* notebook () const { @@ -64,29 +69,38 @@ public: ContentList selected (); ContentList selected_video (); ContentList selected_audio (); - ContentList selected_subtitle (); + ContentList selected_text (); FFmpegContentList selected_ffmpeg (); void add_file_clicked (); bool remove_clicked (bool hotkey); + void timeline_clicked (); + + boost::weak_ptr film_viewer () const { + return _film_viewer; + } + + boost::signals2::signal SelectionChanged; private: - void selection_changed (); + void item_selected (); + void item_deselected (); + void item_deselected_idle (); + void check_selection (); void add_folder_clicked (); void add_dcp_clicked (); void earlier_clicked (); void later_clicked (); void right_click (wxListEvent &); void files_dropped (wxDropFilesEvent &); - void timeline_clicked (); void setup (); void setup_sensitivity (); void add_files (std::list); + std::list panels () const; - wxPanel* _panel; - wxSizer* _sizer; + wxSplitterWindow* _splitter; wxNotebook* _notebook; wxListCtrl* _content; wxButton* _add_file; @@ -96,17 +110,18 @@ private: wxButton* _earlier; wxButton* _later; wxButton* _timeline; - ContentSubPanel* _video_panel; + VideoPanel* _video_panel; AudioPanel* _audio_panel; - ContentSubPanel* _subtitle_panel; - ContentSubPanel* _timing_panel; - std::list _panels; + TextPanel* _text_panel[TEXT_COUNT]; + TimingPanel* _timing_panel; ContentMenu* _menu; TimelineDialog* _timeline_dialog; wxNotebook* _parent; ContentList _last_selected; + wxWindow* _last_selected_tab; boost::shared_ptr _film; - FilmViewer* _film_viewer; + boost::weak_ptr _film_viewer; bool _generally_sensitive; + bool _ignore_deselect; };