More include fixes.
[dcpomatic.git] / src / wx / video_panel.cc
index 569da6c8be5ed529308ff1d4f00ba9d1c37ea2d1..716c29ddab7d213480f7b0c47db1c62a9c4f990a 100644 (file)
@@ -17,7 +17,6 @@
 
 */
 
-#include <wx/spinctrl.h>
 #include "lib/filter.h"
 #include "lib/ffmpeg_content.h"
 #include "lib/colour_conversion.h"
@@ -31,6 +30,8 @@
 #include "content_colour_conversion_dialog.h"
 #include "content_widget.h"
 #include "content_panel.h"
+#include <wx/spinctrl.h>
+#include <set>
 
 using std::vector;
 using std::string;
@@ -85,8 +86,11 @@ VideoPanel::VideoPanel (ContentPanel* p)
                );
        _frame_type->add (grid, wxGBPosition (r, 1), wxGBSpan (1, 2));
        ++r;
-       
-       add_label_to_grid_bag_sizer (grid, this, _("Left crop"), true, wxGBPosition (r, 0));
+
+       int cr = 0;
+       wxGridBagSizer* crop = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
+
+       add_label_to_grid_bag_sizer (crop, this, _("Left crop"), true, wxGBPosition (cr, 0));
        _left_crop = new ContentSpinCtrl<VideoContent> (
                this,
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)),
@@ -94,9 +98,9 @@ VideoPanel::VideoPanel (ContentPanel* p)
                boost::mem_fn (&VideoContent::left_crop),
                boost::mem_fn (&VideoContent::set_left_crop)
                );
-       _left_crop->add (grid, wxGBPosition (r, 1));
+       _left_crop->add (crop, wxGBPosition (cr, 1));
 
-       add_label_to_grid_bag_sizer (grid, this, _("Right crop"), true, wxGBPosition (r, 2));
+       add_label_to_grid_bag_sizer (crop, this, _("Right crop"), true, wxGBPosition (cr, 2));
        _right_crop = new ContentSpinCtrl<VideoContent> (
                this,
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)),
@@ -104,11 +108,11 @@ VideoPanel::VideoPanel (ContentPanel* p)
                boost::mem_fn (&VideoContent::right_crop),
                boost::mem_fn (&VideoContent::set_right_crop)
                );
-       _right_crop->add (grid, wxGBPosition (r, 3));
-       
-       ++r;
+       _right_crop->add (crop, wxGBPosition (cr, 3));
+
+       ++cr;
        
-       add_label_to_grid_bag_sizer (grid, this, _("Top crop"), true, wxGBPosition (r, 0));
+       add_label_to_grid_bag_sizer (crop, this, _("Top crop"), true, wxGBPosition (cr, 0));
        _top_crop = new ContentSpinCtrl<VideoContent> (
                this,
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)),
@@ -116,9 +120,9 @@ VideoPanel::VideoPanel (ContentPanel* p)
                boost::mem_fn (&VideoContent::top_crop),
                boost::mem_fn (&VideoContent::set_top_crop)
                );
-       _top_crop->add (grid, wxGBPosition (r, 1));
-       
-       add_label_to_grid_bag_sizer (grid, this, _("Bottom crop"), true, wxGBPosition (r, 2));
+       _top_crop->add (crop, wxGBPosition (cr, 1));
+
+       add_label_to_grid_bag_sizer (crop, this, _("Bottom crop"), true, wxGBPosition (cr, 2));
        _bottom_crop = new ContentSpinCtrl<VideoContent> (
                this,
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1)),
@@ -126,9 +130,10 @@ VideoPanel::VideoPanel (ContentPanel* p)
                boost::mem_fn (&VideoContent::bottom_crop),
                boost::mem_fn (&VideoContent::set_bottom_crop)
                );
-       _bottom_crop->add (grid, wxGBPosition (r, 3));
-       
-       ++r;
+       _bottom_crop->add (crop, wxGBPosition (cr, 3));
+
+       grid->Add (crop, wxGBPosition (r, 0), wxGBSpan (2, 3));
+       r += 2;
 
        add_label_to_grid_bag_sizer (grid, this, _("Fade in"), true, wxGBPosition (r, 0));
        _fade_in = new Timecode<ContentTime> (this);
@@ -165,9 +170,9 @@ VideoPanel::VideoPanel (ContentPanel* p)
        ++r;
        
        _enable_colour_conversion = new wxCheckBox (this, wxID_ANY, _("Colour conversion"));
-       grid->Add (_enable_colour_conversion, wxGBPosition (r, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
+       grid->Add (_enable_colour_conversion, wxGBPosition (r, 0), wxGBSpan (1, 2), wxALIGN_CENTER_VERTICAL);
        _colour_conversion = new wxStaticText (this, wxID_ANY, wxT (""), wxDefaultPosition, size);
-       grid->Add (_colour_conversion, wxGBPosition (r, 1), wxGBSpan (1, 2), wxALIGN_CENTER_VERTICAL);
+       grid->Add (_colour_conversion, wxGBPosition (r, 2), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
        _colour_conversion_button = new wxButton (this, wxID_ANY, _("Edit..."));
        grid->Add (_colour_conversion_button, wxGBPosition (r, 3), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
        ++r;
@@ -316,65 +321,14 @@ VideoPanel::setup_description ()
                return;
        }
 
-       shared_ptr<VideoContent> vcs = vc.front ();
-
-       wxString d;
-
-       int lines = 0;
-
-       if (vcs->video_size().width && vcs->video_size().height) {
-               d << wxString::Format (
-                       _("Content video is %dx%d (%.2f:1)\n"),
-                       vcs->video_size_after_3d_split().width,
-                       vcs->video_size_after_3d_split().height,
-                       vcs->video_size_after_3d_split().ratio ()
-                       );
-               ++lines;
-       }
-
-       Crop const crop = vcs->crop ();
-       if ((crop.left || crop.right || crop.top || crop.bottom) && vcs->video_size() != dcp::Size (0, 0)) {
-               dcp::Size cropped = vcs->video_size_after_crop ();
-               d << wxString::Format (
-                       _("Cropped to %dx%d (%.2f:1)\n"),
-                       cropped.width, cropped.height,
-                       cropped.ratio ()
-                       );
-               ++lines;
-       }
-
-       dcp::Size const container_size = _parent->film()->frame_size ();
-       dcp::Size const scaled = vcs->scale().size (vcs, container_size, container_size, 1);
-
-       if (scaled != vcs->video_size_after_crop ()) {
-               d << wxString::Format (
-                       _("Scaled to %dx%d (%.2f:1)\n"),
-                       scaled.width, scaled.height,
-                       scaled.ratio ()
-                       );
-               ++lines;
-       }
-       
-       if (scaled != container_size) {
-               d << wxString::Format (
-                       _("Padded with black to %dx%d (%.2f:1)\n"),
-                       container_size.width, container_size.height,
-                       container_size.ratio ()
-                       );
-               ++lines;
-       }
-
-       d << wxString::Format (_("Content frame rate %.4f\n"), vcs->video_frame_rate ());
-       ++lines;
-       FrameRateChange frc (vcs->video_frame_rate(), _parent->film()->video_frame_rate ());
-       d << std_to_wx (frc.description ()) << "\n";
-       ++lines;
+       string d = vc.front()->processing_description ();
+       size_t lines = count (d.begin(), d.end(), '\n');
 
        for (int i = lines; i < 6; ++i) {
-               d << wxT ("\n ");
+               d += "\n ";
        }
 
-       _description->SetLabel (d);
+       _description->SetLabel (std_to_wx (d));
        _sizer->Layout ();
 }