Use wx_ptr for AutoCropDialog
[dcpomatic.git] / src / wx / content_menu.h
index fe8cbb56f0fc9a4b2161cb41902cf9d2887db549..c750ae852d982c6f327cee7fbafc4f0dc4b17f53 100644 (file)
 
 */
 
+
 #ifndef DCPOMATIC_CONTENT_MENU_H
 #define DCPOMATIC_CONTENT_MENU_H
 
+
+#include "auto_crop_dialog.h"
 #include "timeline_content_view.h"
+#include "wx_ptr.h"
 #include "lib/types.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
 #include <wx/wx.h>
-#include <boost/shared_ptr.hpp>
-#include <boost/weak_ptr.hpp>
+LIBDCP_ENABLE_WARNINGS
+#include <memory>
+
 
+class DCPContent;
 class Film;
+class FilmViewer;
 class Job;
-class DCPContent;
 
-class ContentMenu : public boost::noncopyable
+
+class ContentMenu
 {
 public:
-       explicit ContentMenu (wxWindow* p);
+       ContentMenu(wxWindow* parent, FilmViewer& viewer);
+
+       ContentMenu (ContentMenu const &) = delete;
+       ContentMenu& operator= (ContentMenu const &) = delete;
 
-       void popup (boost::weak_ptr<Film>, ContentList, TimelineContentViewList, wxPoint);
+       void popup (std::weak_ptr<Film>, ContentList, TimelineContentViewList, wxPoint);
 
 private:
        void repeat ();
        void join ();
        void find_missing ();
        void properties ();
+       void advanced ();
        void re_examine ();
+       void auto_crop ();
        void kdm ();
        void ov ();
        void set_dcp_settings ();
        void remove ();
-       void maybe_found_missing (boost::weak_ptr<Job>, boost::weak_ptr<Content>, boost::weak_ptr<Content>);
        void cpl_selected (wxCommandEvent& ev);
 
        wxMenu* _menu;
        wxMenu* _cpl_menu;
        /** Film that we are working with; set up by popup() */
-       boost::weak_ptr<Film> _film;
+       std::weak_ptr<Film> _film;
        wxWindow* _parent;
        bool _pop_up_open;
+       FilmViewer& _viewer;
        ContentList _content;
        TimelineContentViewList _views;
        wxMenuItem* _repeat;
        wxMenuItem* _join;
        wxMenuItem* _find_missing;
        wxMenuItem* _properties;
+       wxMenuItem* _advanced;
        wxMenuItem* _re_examine;
+       wxMenuItem* _auto_crop;
        wxMenuItem* _kdm;
        wxMenuItem* _ov;
        wxMenuItem* _choose_cpl;
        wxMenuItem* _set_dcp_settings;
        wxMenuItem* _remove;
+
+       wx_ptr<AutoCropDialog> _auto_crop_dialog;
+       boost::signals2::scoped_connection _auto_crop_config_connection;
+       boost::signals2::scoped_connection _auto_crop_viewer_connection;
 };
 
+
 #endif