swaroop: only disable next button if skippable (not previous).
[dcpomatic.git] / src / wx / content_panel.h
index d31375c8e12a1d5a1fec90dc149a00dddde7de4e..4a41ad1894ea6db435e99efc8dc2fe2dfc3f5ed3 100644 (file)
@@ -33,14 +33,16 @@ 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<Film>, FilmViewer* viewer);
+       ContentPanel (wxNotebook *, boost::shared_ptr<Film>, boost::weak_ptr<FilmViewer> viewer);
 
        boost::shared_ptr<Film> film () const {
                return _film;
@@ -65,21 +67,24 @@ public:
        ContentList selected ();
        ContentList selected_video ();
        ContentList selected_audio ();
-       ContentList selected_caption ();
+       ContentList selected_text ();
        FFmpegContentList selected_ffmpeg ();
 
        void add_file_clicked ();
        bool remove_clicked (bool hotkey);
        void timeline_clicked ();
 
-       FilmViewer* film_viewer () const {
+       boost::weak_ptr<FilmViewer> film_viewer () const {
                return _film_viewer;
        }
 
        boost::signals2::signal<void (void)> 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 ();
@@ -91,6 +96,7 @@ private:
        void setup_sensitivity ();
 
        void add_files (std::list<boost::filesystem::path>);
+       std::list<ContentSubPanel *> panels () const;
 
        wxPanel* _panel;
        wxSizer* _sizer;
@@ -103,11 +109,10 @@ private:
        wxButton* _earlier;
        wxButton* _later;
        wxButton* _timeline;
-       ContentSubPanel* _video_panel;
+       VideoPanel* _video_panel;
        AudioPanel* _audio_panel;
-       TextPanel* _caption_panel[CAPTION_COUNT];
-       ContentSubPanel* _timing_panel;
-       std::list<ContentSubPanel *> _panels;
+       TextPanel* _text_panel[TEXT_COUNT];
+       TimingPanel* _timing_panel;
        ContentMenu* _menu;
        TimelineDialog* _timeline_dialog;
        wxNotebook* _parent;
@@ -115,6 +120,7 @@ private:
        wxWindow* _last_selected_tab;
 
        boost::shared_ptr<Film> _film;
-       FilmViewer* _film_viewer;
+       boost::weak_ptr<FilmViewer> _film_viewer;
        bool _generally_sensitive;
+       bool _ignore_deselect;
 };