Allow resizing of nag dialog; may help with #1978.
[dcpomatic.git] / src / wx / nag_dialog.cc
index b7efb43db45953fa35a85d1af24f827dc9e74458..417b5f94c55d94795fac0885b20af5a3af3b2c77 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2017 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2017-2018 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 #include "nag_dialog.h"
 #include "wx_util.h"
-#include <wx/richtext/richtextctrl.h>
-#include <boost/foreach.hpp>
+#include "static_text.h"
+#include "check_box.h"
 
-using boost::shared_ptr;
+using std::shared_ptr;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 
 NagDialog::NagDialog (wxWindow* parent, Config::Nag nag, wxString message, bool can_cancel)
-       : wxDialog (parent, wxID_ANY, _("Important notice"))
+       : wxDialog (parent, wxID_ANY, _("Important notice"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
        , _nag (nag)
 {
-       wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL);
-       _text = new wxStaticText (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (400, 300));
-       sizer->Add (_text, 1, wxEXPAND | wxALL, 6);
+       auto sizer = new wxBoxSizer (wxVERTICAL);
+       _text = new StaticText (this, wxEmptyString, wxDefaultPosition, wxSize (400, 300));
+       sizer->Add (_text, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER);
 
-       wxCheckBox* b = new wxCheckBox (this, wxID_ANY, _("Don't show this message again"));
+       auto b = new CheckBox (this, _("Don't show this message again"));
        sizer->Add (b, 0, wxALL, 6);
        b->Bind (wxEVT_CHECKBOX, bind (&NagDialog::shut_up, this, _1));
 
@@ -51,6 +54,11 @@ NagDialog::NagDialog (wxWindow* parent, Config::Nag nag, wxString message, bool
        sizer->SetSizeHints (this);
 
        _text->SetLabelMarkup (message);
+
+       Bind (wxEVT_SIZE, [this](wxSizeEvent& ev) {
+               Layout();
+               ev.Skip();
+       });
 }
 
 void
@@ -67,7 +75,7 @@ NagDialog::maybe_nag (wxWindow* parent, Config::Nag nag, wxString message, bool
                return false;
        }
 
-       NagDialog* d = new NagDialog (parent, nag, message, can_cancel);
+       auto d = new NagDialog (parent, nag, message, can_cancel);
        int const r = d->ShowModal();
        d->Destroy ();