X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fscreens_panel.h;h=7703d69aad1cec27e1ebf90ec5a6fc6272d02036;hb=31de5b1272d928557a7272977584f5dcc9876c75;hp=87f12c701b8cb5641b73e187b8ff945a860f235d;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05;p=dcpomatic.git diff --git a/src/wx/screens_panel.h b/src/wx/screens_panel.h index 87f12c701..7703d69aa 100644 --- a/src/wx/screens_panel.h +++ b/src/wx/screens_panel.h @@ -18,31 +18,58 @@ */ +#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 { public: - ScreensPanel (wxWindow* parent); + 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;