X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Fcontent_panel.h;h=6a9ef3f4a561724cc442b2931c4ceaaa7a12dcff;hp=8277b7c4250a1013e85cc3e0055ea407ff11f301;hb=dd9be86db6cde0afa5da0d1d1ac43b42e05dca26;hpb=17002651301b5552807a2b512714b78661941eb7 diff --git a/src/wx/content_panel.h b/src/wx/content_panel.h index 8277b7c42..6a9ef3f4a 100644 --- a/src/wx/content_panel.h +++ b/src/wx/content_panel.h @@ -22,7 +22,6 @@ #include "lib/types.h" #include "lib/film.h" #include -#include #include class wxNotebook; @@ -41,23 +40,47 @@ class TimingPanel; class Film; class FilmViewer; + +class LimitedSplitter : public wxSplitterWindow +{ +public: + 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 { public: - ContentPanel (wxNotebook *, boost::shared_ptr, boost::weak_ptr viewer); + ContentPanel (wxNotebook *, std::shared_ptr, std::weak_ptr viewer); - 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 film_changed (Film::Property p); void film_content_changed (int p); + void first_shown (); + wxWindow* window () const { return _splitter; } @@ -76,7 +99,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; } @@ -100,7 +123,8 @@ private: void add_files (std::list); std::list panels () const; - wxSplitterWindow* _splitter; + LimitedSplitter* _splitter; + wxPanel* _top_panel; wxNotebook* _notebook; wxListCtrl* _content; wxButton* _add_file; @@ -117,11 +141,11 @@ private: ContentMenu* _menu; TimelineDialog* _timeline_dialog; wxNotebook* _parent; - ContentList _last_selected; wxWindow* _last_selected_tab; - 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; };