/* Copyright (C) 2012 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "wx_util.h" #include #include #include #include #include #include class wxTreeCtrl; class wxDatePickerCtrl; class wxTimePickerCtrl; class wxDirPickerCtrl; class DirPickerCtrl; class Cinema; class Screen; class Film; struct CPLSummary; class KDMDialog : public wxDialog { public: KDMDialog (wxWindow *, boost::shared_ptr); std::list > screens () const; /** @return KDM from time in local time */ boost::posix_time::ptime from () const; /** @return KDM until time in local time */ boost::posix_time::ptime until () const; boost::filesystem::path cpl () const; boost::filesystem::path directory () const; bool write_to () const; dcp::Formulation formulation () const; private: void add_cinema (boost::shared_ptr); void add_screen (boost::shared_ptr, boost::shared_ptr); void add_cinema_clicked (); void edit_cinema_clicked (); void remove_cinema_clicked (); void add_screen_clicked (); void edit_screen_clicked (); void remove_screen_clicked (); std::list > > selected_cinemas () const; std::list > > selected_screens () const; void setup_sensitivity (); void update_cpl_choice (); void update_cpl_summary (); void cpl_browse_clicked (); static boost::posix_time::ptime posix_time (wxDatePickerCtrl *, wxTimePickerCtrl *); wxTreeCtrl* _targets; wxButton* _add_cinema; wxButton* _edit_cinema; wxButton* _remove_cinema; wxButton* _add_screen; wxButton* _edit_screen; wxButton* _remove_screen; wxDatePickerCtrl* _from_date; wxDatePickerCtrl* _until_date; wxTimePickerCtrl* _from_time; wxTimePickerCtrl* _until_time; wxChoice* _cpl; wxButton* _cpl_browse; wxStaticText* _dcp_directory; wxStaticText* _cpl_id; wxStaticText* _cpl_annotation_text; wxChoice* _type; wxRadioButton* _write_to; #ifdef DCPOMATIC_USE_OWN_DIR_PICKER DirPickerCtrl* _folder; #else wxDirPickerCtrl* _folder; #endif wxRadioButton* _email; wxTreeItemId _root; std::map > _cinemas; std::map > _screens; std::vector _cpls; };