/* Copyright (C) 2012-2021 Carl Hetherington This file is part of DCP-o-matic. DCP-o-matic 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. DCP-o-matic 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 DCP-o-matic. If not, see . */ /** @file src/wx/film_editor.h * @brief FilmEditor class. */ #include "lib/film_property.h" #include LIBDCP_DISABLE_WARNINGS #include LIBDCP_ENABLE_WARNINGS #include class ContentPanel; class DCPPanel; class Film; class FilmViewer; class wxBookCtrlEvent; class wxNotebook; /** @class FilmEditor * @brief A wx widget to edit a film's metadata, and perform various functions. */ class FilmEditor : public wxPanel { public: FilmEditor(wxWindow *, FilmViewer& viewer); void set_film (std::shared_ptr); void first_shown (); boost::signals2::signal SelectionChanged; /* Stuff for panels */ ContentPanel* content_panel () const { return _content_panel; } std::shared_ptr film () const { return _film; } private: /* Handle changes to the model */ void film_change(ChangeType, FilmProperty); void film_content_change (ChangeType type, int); void set_general_sensitivity (bool); void active_jobs_changed (boost::optional); void page_changed(wxBookCtrlEvent& ev); wxNotebook* _notebook; ContentPanel* _content_panel; DCPPanel* _dcp_panel; /** The film we are editing */ std::shared_ptr _film; };