+ auto table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
+ table->AddGrowableCol (1, 1);
+ _panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border);
+
+ {
+ add_top_aligned_label_to_sizer (table, _panel, _("Log"));
+ wxBoxSizer* t = new wxBoxSizer (wxVERTICAL);
+ _log_general = new CheckBox (_panel, _("General"));
+ t->Add (_log_general, 1, wxEXPAND | wxALL);
+ _log_warning = new CheckBox (_panel, _("Warnings"));
+ t->Add (_log_warning, 1, wxEXPAND | wxALL);
+ _log_error = new CheckBox (_panel, _("Errors"));
+ t->Add (_log_error, 1, wxEXPAND | wxALL);
+ /// TRANSLATORS: translate the word "Timing" here; do not include the "Config|" prefix
+ _log_timing = new CheckBox (_panel, S_("Config|Timing"));
+ t->Add (_log_timing, 1, wxEXPAND | wxALL);
+ table->Add (t, 0, wxALL, 6);
+ }
+
+#ifdef DCPOMATIC_WINDOWS
+ _win32_console = new CheckBox (_panel, _("Open console window"));
+ table->Add (_win32_console, 1, wxEXPAND | wxALL);
+ table->AddSpacer (0);
+#endif
+
+ _log_general->Bind (wxEVT_CHECKBOX, boost::bind (&PlayerAdvancedPage::log_changed, this));
+ _log_warning->Bind (wxEVT_CHECKBOX, boost::bind (&PlayerAdvancedPage::log_changed, this));
+ _log_error->Bind (wxEVT_CHECKBOX, boost::bind (&PlayerAdvancedPage::log_changed, this));
+ _log_timing->Bind (wxEVT_CHECKBOX, boost::bind (&PlayerAdvancedPage::log_changed, this));
+#ifdef DCPOMATIC_WINDOWS
+ _win32_console->Bind (wxEVT_CHECKBOX, boost::bind (&PlayerAdvancedPage::win32_console_changed, this));
+#endif