X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fscreens_panel.h;h=7703d69aad1cec27e1ebf90ec5a6fc6272d02036;hb=ecc74ec418e060fa163d25d08a62a6e81eece114;hp=71817905232aa5011c8f596f8c9be699f2d5c3e9;hpb=c6871fe8617b3de03662b7630355059393bf8043;p=dcpomatic.git diff --git a/src/wx/screens_panel.h b/src/wx/screens_panel.h index 718179052..7703d69aa 100644 --- a/src/wx/screens_panel.h +++ b/src/wx/screens_panel.h @@ -18,15 +18,42 @@ */ +#include "lib/warnings.h" +DCPOMATIC_DISABLE_WARNINGS #include +DCPOMATIC_ENABLE_WARNINGS #include #include -#include +#include #include #include +namespace dcpomatic { + class Screen; +} + + class Cinema; -class Screen; + + +/** 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 { @@ -34,15 +61,15 @@ 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 (); @@ -54,7 +81,7 @@ private: void search_changed (); wxSearchCtrl* _search; - wxTreeCtrl* _targets; + TreeCtrl* _targets; wxButton* _add_cinema; wxButton* _edit_cinema; wxButton* _remove_cinema; @@ -63,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;