+ _notebook->SetSelection (0);
+
+ SetMinSize (wxSize(640, -1));
+
+ setup_sensitivity ();
+}
+
+
+DownloadCertificateDialog::~DownloadCertificateDialog ()
+{
+ _notebook->Unbind (wxEVT_NOTEBOOK_PAGE_CHANGED, &DownloadCertificateDialog::page_changed, this);
+}
+
+
+void
+DownloadCertificateDialog::download ()
+{
+ _pages[_notebook->GetSelection()]->download ();
+}
+
+
+dcp::Certificate
+DownloadCertificateDialog::certificate () const
+{
+ auto c = _pages[_notebook->GetSelection()]->certificate ();
+ DCPOMATIC_ASSERT (c);
+ return *c;
+}
+
+
+string
+DownloadCertificateDialog::url () const
+{
+ auto u = _pages[_notebook->GetSelection()]->url();
+ DCPOMATIC_ASSERT (u);
+ return *u;
+}
+
+
+void
+DownloadCertificateDialog::setup_sensitivity ()
+{
+ auto p = _pages[_notebook->GetSelection()];
+ _download->Enable (p->ready_to_download ());
+ auto ok = dynamic_cast<wxButton *> (FindWindowById (wxID_OK, this));
+ if (ok) {
+ ok->Enable (static_cast<bool>(p->certificate ()));
+ }
+}
+
+
+void
+DownloadCertificateDialog::page_changed (wxNotebookEvent& ev)
+{
+ setup_sensitivity ();
+ ev.Skip ();