Configurable window arrangement in player dual-screen mode.
[dcpomatic.git] / src / tools / dcpomatic_player.cc
index 24d4585d28849d29b6cea5ea8c6d686be41550a7..1925ab2e1e3d1a55a357807bedc622eecfcad9b6 100644 (file)
@@ -167,7 +167,7 @@ public:
                _viewer->Stopped.connect (bind(&DOMFrame::playback_stopped, this));
                _info = new PlayerInformation (_overall_panel, _viewer);
                wxSizer* main_sizer = new wxBoxSizer (wxVERTICAL);
-               main_sizer->Add (_viewer->panel(), 1, wxEXPAND);
+               main_sizer->Add (_viewer->panel(), 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
                main_sizer->Add (_controls, 0, wxEXPAND | wxALL, 6);
                main_sizer->Add (_info, 0, wxEXPAND | wxALL, 6);
                _overall_panel->SetSizer (main_sizer);
@@ -358,8 +358,10 @@ private:
                wxMenu* view = new wxMenu;
                optional<int> c = Config::instance()->decode_reduction();
                _view_cpl = view->Append(ID_view_cpl, _("CPL"), _cpl_menu);
+               view->AppendSeparator();
                view->AppendCheckItem(ID_view_full_screen, _("Full screen\tF11"))->Check(_mode == Config::PLAYER_MODE_FULL);
                view->AppendCheckItem(ID_view_dual_screen, _("Dual screen\tShift+F11"))->Check(_mode == Config::PLAYER_MODE_DUAL);
+               view->AppendSeparator();
                view->Append(ID_view_closed_captions, _("Closed captions..."));
                view->AppendSeparator();
                view->AppendRadioItem(ID_view_scale_appropriate, _("Set decode resolution to match display"))->Check(!static_cast<bool>(c));
@@ -556,9 +558,17 @@ private:
                if (_mode == Config::PLAYER_MODE_DUAL) {
                        _cinema_dialog->Show ();
                        if (wxDisplay::GetCount() > 1) {
-                               this->Move (wxDisplay(0).GetClientArea().GetWidth(), 0);
-                               /* (0, 0) doesn't seem to work for some strange reason */
-                               _cinema_dialog->Move (8, 8);
+                               switch (Config::instance()->image_display()) {
+                               case 0:
+                                       this->Move (0, 0);
+                                       _cinema_dialog->Move (wxDisplay(0).GetClientArea().GetWidth(), 0);
+                                       break;
+                               case 1:
+                                       this->Move (wxDisplay(0).GetClientArea().GetWidth(), 0);
+                                       /* (0, 0) doesn't seem to work for some strange reason */
+                                       _cinema_dialog->Move (8, 8);
+                                       break;
+                               }
                        }
                }
        }