X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fscreens_panel.h;h=7703d69aad1cec27e1ebf90ec5a6fc6272d02036;hb=bb5acc8b8d783a4133b0b10285937d9151dc57c9;hp=9cf317c5a143becc3489d5474977197ea89c714f;hpb=2da4caba7871455c097c0ed940dd6f2332dbda5d;p=dcpomatic.git diff --git a/src/wx/screens_panel.h b/src/wx/screens_panel.h index 9cf317c5a..7703d69aa 100644 --- a/src/wx/screens_panel.h +++ b/src/wx/screens_panel.h @@ -24,7 +24,6 @@ DCPOMATIC_DISABLE_WARNINGS DCPOMATIC_ENABLE_WARNINGS #include #include -#include #include #include #include @@ -33,23 +32,44 @@ namespace dcpomatic { class Screen; } + class Cinema; + +/** Shim around wxTreeCtrl so we can use strcoll() to compare things */ +class TreeCtrl : public wxTreeCtrl +{ +public: + wxDECLARE_DYNAMIC_CLASS (TreeCtrl); + + TreeCtrl () {} + + TreeCtrl (wxWindow* parent) + : wxTreeCtrl (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_HIDE_ROOT | wxTR_MULTIPLE | wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT) + {} + + virtual ~TreeCtrl () {} + +private: + int OnCompareItems (wxTreeItemId const& a, wxTreeItemId const& b); +}; + + class ScreensPanel : public wxPanel { public: explicit ScreensPanel (wxWindow* parent); ~ScreensPanel (); - std::list > screens () const; + std::list> screens () const; void setup_sensitivity (); boost::signals2::signal ScreensChanged; private: void add_cinemas (); - void add_cinema (boost::shared_ptr); - boost::optional add_screen (boost::shared_ptr, boost::shared_ptr); + boost::optional add_cinema (std::shared_ptr); + boost::optional add_screen (std::shared_ptr, std::shared_ptr); void add_cinema_clicked (); void edit_cinema_clicked (); void remove_cinema_clicked (); @@ -61,7 +81,7 @@ private: void search_changed (); wxSearchCtrl* _search; - wxTreeCtrl* _targets; + TreeCtrl* _targets; wxButton* _add_cinema; wxButton* _edit_cinema; wxButton* _remove_cinema; @@ -70,8 +90,8 @@ private: wxButton* _remove_screen; wxTreeItemId _root; - typedef std::map > CinemaMap; - typedef std::map > ScreenMap; + typedef std::map> CinemaMap; + typedef std::map> ScreenMap; CinemaMap _cinemas; ScreenMap _screens;