X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fnag_dialog.cc;h=b137b07d18668b11b7647cf991765b44aa126840;hb=6ebec6b3ca11a7062ae19176096b1b157275d015;hp=466b80b6bb0baf77b5948dcc26dd10e22cf0a1c8;hpb=a5d004b0773f633401528392fc28e66d70e13ac8;p=dcpomatic.git diff --git a/src/wx/nag_dialog.cc b/src/wx/nag_dialog.cc index 466b80b6b..b137b07d1 100644 --- a/src/wx/nag_dialog.cc +++ b/src/wx/nag_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2017-2018 Carl Hetherington + Copyright (C) 2017-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,50 +18,59 @@ */ + +#include "check_box.h" #include "nag_dialog.h" -#include "wx_util.h" #include "static_text.h" -#include "check_box.h" +#include "wx_util.h" + using std::shared_ptr; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; #endif + +static constexpr int width = 400; + + NagDialog::NagDialog (wxWindow* parent, Config::Nag nag, wxString message, bool can_cancel) : wxDialog (parent, wxID_ANY, _("Important notice")) , _nag (nag) { - wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); - _text = new StaticText (this, wxEmptyString, wxDefaultPosition, wxSize (400, 300)); + auto sizer = new wxBoxSizer (wxVERTICAL); + _text = new StaticText (this, wxEmptyString, wxDefaultPosition, wxSize(width, 300)); sizer->Add (_text, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER); - wxCheckBox* b = new CheckBox (this, _("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)); + b->bind(&NagDialog::shut_up, this, _1); int flags = wxOK; if (can_cancel) { flags |= wxCANCEL; } - wxSizer* buttons = CreateSeparatedButtonSizer (flags); + auto buttons = CreateSeparatedButtonSizer (flags); if (buttons) { sizer->Add(buttons, wxSizerFlags().Expand().DoubleBorder()); } + _text->SetLabelMarkup (message); + _text->Wrap (width); + SetSizer (sizer); sizer->Layout (); sizer->SetSizeHints (this); - - _text->SetLabelMarkup (message); } + void NagDialog::shut_up (wxCommandEvent& ev) { Config::instance()->set_nagged (_nag, ev.IsChecked()); } + /** @return true if the user clicked Cancel */ bool NagDialog::maybe_nag (wxWindow* parent, Config::Nag nag, wxString message, bool can_cancel) @@ -70,9 +79,6 @@ NagDialog::maybe_nag (wxWindow* parent, Config::Nag nag, wxString message, bool return false; } - NagDialog* d = new NagDialog (parent, nag, message, can_cancel); - int const r = d->ShowModal(); - d->Destroy (); - - return r == wxID_CANCEL; + NagDialog dialog(parent, nag, message, can_cancel); + return dialog.ShowModal() == wxID_CANCEL; }