331{
333 {
334 return false;
335 }
337
339 for (const prePrintInfo& info : infos)
340 {
341 if (!info.msg.empty())
342 {
343 Label* label = new Label(this);
346
347
348 if (!info.link_label.empty())
349 {
350
351 label->
SetLabel(info.msg +
" " + info.link_label);
352 label->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_HAND); });
353 label->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_ARROW); });
354 label->Bind(wxEVT_LEFT_DOWN, [info](
wxMouseEvent& event) {
if (info.link_callback) info.link_callback(); });
355 }
356 else if (info.wiki_url.empty())
357 {
359 }
360 else
361 {
362 label->
SetLabel(info.msg +
" " +
_L(
"Please refer to Wiki before use->"));
363 label->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_HAND); });
364 label->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_ARROW); });
365 label->Bind(wxEVT_LEFT_DOWN, [info](
wxMouseEvent& event) { wxLaunchDefaultBrowser(info.wiki_url); });
366 }
367
368 label->
Wrap(this->GetMinSize().GetWidth());
369 label->Show();
370 m_sizer->Add(label, 0, wxBOTTOM, FromDIP(4));
371 }
372
373
374
375 if (!info.checkbox_label.empty())
376 {
377 wxCheckBox* checkbox = new wxCheckBox(this, wxID_ANY, info.checkbox_label);
379 checkbox->SetValue(info.checkbox_checked);
380 auto cb = info.checkbox_callback;
381 checkbox->Bind(wxEVT_CHECKBOX, [cb](wxCommandEvent& e) { if (cb) cb(e.IsChecked()); });
382 m_sizer->Add(checkbox, 0, wxBOTTOM, FromDIP(4));
383 }
384 }
385
386 this->Show();
387 this->Layout();
388
389 Fit();
390
391 return true;
392}
#define _L(s)
Definition OBJ.cpp:34
static wxFont Body_13
Definition Label.hpp:54
void SetLabel(const wxString &label) override
Definition Label.cpp:322
void Wrap(int width)
Definition Label.cpp:366
std::vector< prePrintInfo > m_infos
Definition PrePrintChecker.hpp:226
wxMouseEvent
Definition CameraPopup.cpp:47
static wxColour _GetLabelColour(const prePrintInfo &info)
Definition PrePrintChecker.cpp:316