Tidy up the layout of the TemplatesDialog a bit.
[dcpomatic.git] / src / wx / templates_dialog.cc
index e8f9b8a2b22516160f3400222b762fe601f6d62f..3336277b6051da1ce1f447e36c063cf36ddaebd3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
+
+#include "dcpomatic_button.h"
+#include "rename_template_dialog.h"
 #include "templates_dialog.h"
 #include "wx_util.h"
-#include "rename_template_dialog.h"
-#include "dcpomatic_button.h"
 #include "lib/config.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
 #include <wx/wx.h>
+LIBDCP_ENABLE_WARNINGS
+
 
 using std::string;
 using boost::bind;
@@ -31,14 +36,15 @@ using boost::bind;
 using namespace boost::placeholders;
 #endif
 
+
 TemplatesDialog::TemplatesDialog (wxWindow* parent)
        : wxDialog (parent, wxID_ANY, _("Templates"))
 {
        _sizer = new wxBoxSizer (wxVERTICAL);
        SetSizer (_sizer);
 
-       wxSizer* hs = new wxBoxSizer (wxHORIZONTAL);
-       _list = new wxListCtrl (this, wxID_ANY, wxDefaultPosition, wxSize (200, 100), wxLC_REPORT | wxLC_SINGLE_SEL);
+       auto hs = new wxBoxSizer (wxHORIZONTAL);
+       _list = new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(400, 300), wxLC_REPORT | wxLC_SINGLE_SEL);
 
        wxListItem ip;
        ip.SetId (0);
@@ -49,33 +55,36 @@ TemplatesDialog::TemplatesDialog (wxWindow* parent)
        hs->Add (_list, 1, wxEXPAND, DCPOMATIC_SIZER_GAP);
 
        {
-               wxSizer* s = new wxBoxSizer (wxVERTICAL);
+               auto s = new wxBoxSizer (wxVERTICAL);
                _rename = new Button (this, _("Rename..."));
-               s->Add (_rename, 0, wxTOP | wxBOTTOM, 2);
+               s->Add(_rename, 0, wxTOP | wxBOTTOM | wxEXPAND, 2);
                _remove = new Button (this, _("Remove"));
-               s->Add (_remove, 0, wxTOP | wxBOTTOM, 2);
+               s->Add(_remove, 0, wxTOP | wxBOTTOM | wxEXPAND, 2);
                hs->Add (s, 0, wxLEFT, DCPOMATIC_SIZER_X_GAP);
        }
 
        _sizer->Add (hs, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER);
 
-       wxSizer* buttons = CreateSeparatedButtonSizer (wxCLOSE);
+       auto buttons = CreateSeparatedButtonSizer (wxCLOSE);
        if (buttons) {
                _sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder());
        }
 
-       _rename->Bind (wxEVT_BUTTON, bind (&TemplatesDialog::rename_clicked, this));
-       _remove->Bind (wxEVT_BUTTON, bind (&TemplatesDialog::remove_clicked, this));
+       _rename->Bind (wxEVT_BUTTON, bind(&TemplatesDialog::rename_clicked, this));
+       _remove->Bind (wxEVT_BUTTON, bind(&TemplatesDialog::remove_clicked, this));
 
-       _list->Bind (wxEVT_LIST_ITEM_SELECTED, bind (&TemplatesDialog::selection_changed, this));
-       _list->Bind (wxEVT_LIST_ITEM_DESELECTED, bind (&TemplatesDialog::selection_changed, this));
-       _list->Bind (wxEVT_SIZE, bind (&TemplatesDialog::resized, this, _1));
-       _config_connection = Config::instance()->Changed.connect (bind (&TemplatesDialog::refresh, this));
+       _list->Bind (wxEVT_LIST_ITEM_SELECTED, bind(&TemplatesDialog::selection_changed, this));
+       _list->Bind (wxEVT_LIST_ITEM_DESELECTED, bind(&TemplatesDialog::selection_changed, this));
+       _list->Bind (wxEVT_SIZE, bind(&TemplatesDialog::resized, this, _1));
+       _config_connection = Config::instance()->Changed.connect (bind(&TemplatesDialog::refresh, this));
+
+       Fit();
 
        refresh ();
        selection_changed ();
 }
 
+
 void
 TemplatesDialog::refresh ()
 {
@@ -90,12 +99,14 @@ TemplatesDialog::refresh ()
        }
 }
 
+
 void
 TemplatesDialog::layout ()
 {
        _sizer->Layout ();
 }
 
+
 void
 TemplatesDialog::selection_changed ()
 {
@@ -104,6 +115,7 @@ TemplatesDialog::selection_changed ()
        _remove->Enable (i >= 0);
 }
 
+
 void
 TemplatesDialog::rename_clicked ()
 {
@@ -118,7 +130,7 @@ TemplatesDialog::rename_clicked ()
        li.m_mask = wxLIST_MASK_TEXT;
        _list->GetItem (li);
 
-       RenameTemplateDialog* d = new RenameTemplateDialog (this);
+       auto d = new RenameTemplateDialog (this);
        d->set (li.m_text);
        if (d->ShowModal() == wxID_OK) {
                if (!d->get().IsEmpty()) {
@@ -131,6 +143,7 @@ TemplatesDialog::rename_clicked ()
        d->Destroy ();
 }
 
+
 void
 TemplatesDialog::remove_clicked ()
 {
@@ -145,12 +158,13 @@ TemplatesDialog::remove_clicked ()
        li.m_mask = wxLIST_MASK_TEXT;
        _list->GetItem (li);
 
-       Config::instance()->delete_template (wx_to_std (li.m_text));
+       Config::instance()->delete_template (wx_to_std(li.m_text));
        _list->DeleteItem (i);
 
        selection_changed ();
 }
 
+
 void
 TemplatesDialog::resized (wxSizeEvent& ev)
 {