X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fcontent_panel.h;h=e25dedceabc94064de40e7386361cfed4d428b41;hb=687ade428fb7ad6d0949f12aa5a7f5b643434489;hp=7b3217605064a94a9c460e51bb66ff0e66e1649b;hpb=a28058f5e2f7e7bf3aa5af9e499bda630b7af7bc;p=dcpomatic.git diff --git a/src/wx/content_panel.h b/src/wx/content_panel.h index 7b3217605..e25dedcea 100644 --- a/src/wx/content_panel.h +++ b/src/wx/content_panel.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2019 Carl Hetherington + Copyright (C) 2012-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,13 +18,14 @@ */ + #include "content_menu.h" -#include "lib/types.h" #include "lib/film.h" +#include "lib/types.h" #include -#include #include + class wxNotebook; class wxPanel; class wxSizer; @@ -45,36 +46,41 @@ class FilmViewer; class LimitedSplitter : public wxSplitterWindow { public: - LimitedSplitter (wxWindow* parent) - : wxSplitterWindow (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_NOBORDER | wxSP_3DSASH | wxSP_LIVE_UPDATE) - { - /* This value doesn't really mean much but we just want to stop double-click on the - divider from shrinking the bottom panel (#1601). - */ - SetMinimumPaneSize (64); - } + LimitedSplitter (wxWindow* parent); bool OnSashPositionChange (int new_position) { /* Try to stop the top bit of the splitter getting so small that buttons disappear */ return new_position > 220; } + + void first_shown (wxWindow* top, wxWindow* bottom); + +private: + void sized (wxSizeEvent& ev); + + bool _first_shown; + int const _top_panel_minimum_size; }; -class ContentPanel : public boost::noncopyable +class ContentPanel { public: - ContentPanel (wxNotebook *, boost::shared_ptr, boost::weak_ptr viewer); + ContentPanel (wxNotebook *, std::shared_ptr, std::weak_ptr viewer); + + ContentPanel (ContentPanel const&) = delete; + ContentPanel& operator= (ContentPanel const&) = delete; - boost::shared_ptr film () const { + std::shared_ptr film () const { return _film; } - void set_film (boost::shared_ptr); + void set_film (std::shared_ptr); void set_general_sensitivity (bool s); - void set_selection (boost::weak_ptr); + void set_selection (std::weak_ptr); void set_selection (ContentList cl); + void select_all (); void film_changed (Film::Property p); void film_content_changed (int p); @@ -99,7 +105,7 @@ public: bool remove_clicked (bool hotkey); void timeline_clicked (); - boost::weak_ptr film_viewer () const { + std::weak_ptr film_viewer () const { return _film_viewer; } @@ -120,10 +126,10 @@ private: void setup (); void setup_sensitivity (); - void add_files (std::list); + void add_files (std::vector); std::list panels () const; - wxSplitterWindow* _splitter; + LimitedSplitter* _splitter; wxPanel* _top_panel; wxNotebook* _notebook; wxListCtrl* _content; @@ -134,17 +140,17 @@ private: wxButton* _earlier; wxButton* _later; wxButton* _timeline; - VideoPanel* _video_panel; - AudioPanel* _audio_panel; - TextPanel* _text_panel[TEXT_COUNT]; + VideoPanel* _video_panel = nullptr; + AudioPanel* _audio_panel = nullptr; + TextPanel* _text_panel[static_cast(TextType::COUNT)]; TimingPanel* _timing_panel; ContentMenu* _menu; - TimelineDialog* _timeline_dialog; + TimelineDialog* _timeline_dialog = nullptr; wxNotebook* _parent; - wxWindow* _last_selected_tab; + wxWindow* _last_selected_tab = nullptr; - boost::shared_ptr _film; - boost::weak_ptr _film_viewer; + std::shared_ptr _film; + std::weak_ptr _film_viewer; bool _generally_sensitive; bool _ignore_deselect; bool _no_check_selection;