- wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
- table->AddGrowableCol (1, 1);
- _panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border);
-
- _remake_certificates = new wxButton (_panel, wxID_ANY, _("Re-make certificates..."));
- table->Add (_remake_certificates, 0);
- table->AddSpacer (0);
-
- add_label_to_sizer (table, _panel, _("Private key for leaf certificate"), true);
- {
- wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
- _signer_private_key = new wxStaticText (_panel, wxID_ANY, wxT (""));
- wxFont font = _signer_private_key->GetFont ();
- font.SetFamily (wxFONTFAMILY_TELETYPE);
- _signer_private_key->SetFont (font);
- s->Add (_signer_private_key, 1, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, DCPOMATIC_SIZER_X_GAP);
- _load_signer_private_key = new wxButton (_panel, wxID_ANY, _("Load..."));
- s->Add (_load_signer_private_key, 0, wxLEFT, DCPOMATIC_SIZER_X_GAP);
- table->Add (s, 0);
- }
-
- add_label_to_sizer (table, _panel, _("Certificate for decrypting DCPs"), true);
- {
- wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
- _decryption_certificate = new wxStaticText (_panel, wxID_ANY, wxT (""));
- wxFont font = _decryption_certificate->GetFont ();
- font.SetFamily (wxFONTFAMILY_TELETYPE);
- _decryption_certificate->SetFont (font);
- s->Add (_decryption_certificate, 1, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, DCPOMATIC_SIZER_X_GAP);
- _load_decryption_certificate = new wxButton (_panel, wxID_ANY, _("Load..."));
- s->Add (_load_decryption_certificate, 0, wxLEFT, DCPOMATIC_SIZER_X_GAP);
- table->Add (s, 0);
- }
-
- add_label_to_sizer (table, _panel, _("Private key for decrypting DCPs"), true);
- {
- wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
- _decryption_private_key = new wxStaticText (_panel, wxID_ANY, wxT (""));
- wxFont font = _decryption_private_key->GetFont ();
- font.SetFamily (wxFONTFAMILY_TELETYPE);
- _decryption_private_key->SetFont (font);
- s->Add (_decryption_private_key, 1, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, DCPOMATIC_SIZER_X_GAP);
- _load_decryption_private_key = new wxButton (_panel, wxID_ANY, _("Load..."));
- s->Add (_load_decryption_private_key, 0, wxLEFT, DCPOMATIC_SIZER_X_GAP);
- table->Add (s, 0);
- }
-
- _export_decryption_certificate = new wxButton (_panel, wxID_ANY, _("Export DCP decryption certificate..."));
- table->Add (_export_decryption_certificate);
- table->AddSpacer (0);
-
- _add_certificate->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KeysPage::add_certificate, this));
- _remove_certificate->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KeysPage::remove_certificate, this));
- _certificates->Bind (wxEVT_COMMAND_LIST_ITEM_SELECTED, boost::bind (&KeysPage::update_sensitivity, this));
- _certificates->Bind (wxEVT_COMMAND_LIST_ITEM_DESELECTED, boost::bind (&KeysPage::update_sensitivity, this));
- _remake_certificates->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KeysPage::remake_certificates, this));
- _load_signer_private_key->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KeysPage::load_signer_private_key, this));
- _load_decryption_certificate->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KeysPage::load_decryption_certificate, this));
- _load_decryption_private_key->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KeysPage::load_decryption_private_key, this));
- _export_decryption_certificate->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KeysPage::export_decryption_certificate, this));
+ wxGridBagSizer* table = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
+ _sizer->Add (table, 1, wxALL | wxEXPAND, border);
+ int r = 0;
+
+ add_label_to_sizer (table, this, _("Leaf private key"), true, wxGBPosition (r, 0));
+ _private_key = new wxStaticText (this, wxID_ANY, wxT (""));
+ wxFont font = _private_key->GetFont ();
+ font.SetFamily (wxFONTFAMILY_TELETYPE);
+ _private_key->SetFont (font);
+ table->Add (_private_key, wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
+ _load_private_key = new wxButton (this, wxID_ANY, _("Load..."));
+ table->Add (_load_private_key, wxGBPosition (r, 2));
+ _export_private_key = new wxButton (this, wxID_ANY, _("Export..."));
+ table->Add (_export_private_key, wxGBPosition (r, 3));
+ ++r;
+
+ _button_sizer = new wxBoxSizer (wxHORIZONTAL);
+ _remake_certificates = new wxButton (this, wxID_ANY, _("Re-make certificates and key..."));
+ _button_sizer->Add (_remake_certificates, 1, wxRIGHT, border);
+ table->Add (_button_sizer, wxGBPosition (r, 0), wxGBSpan (1, 4));
+ ++r;
+
+ _add_certificate->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&CertificateChainEditor::add_certificate, this));
+ _remove_certificate->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&CertificateChainEditor::remove_certificate, this));
+ _export_certificate->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&CertificateChainEditor::export_certificate, this));
+ _certificates->Bind (wxEVT_COMMAND_LIST_ITEM_SELECTED, boost::bind (&CertificateChainEditor::update_sensitivity, this));
+ _certificates->Bind (wxEVT_COMMAND_LIST_ITEM_DESELECTED, boost::bind (&CertificateChainEditor::update_sensitivity, this));
+ _remake_certificates->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&CertificateChainEditor::remake_certificates, this));
+ _load_private_key->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&CertificateChainEditor::load_private_key, this));
+ _export_private_key->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&CertificateChainEditor::export_private_key, this));
+
+ SetSizerAndFit (_sizer);