bool wxGenericAboutDialog::Create(const wxAboutDialogInfo& info, wxWindow* parent)
{
- if ( !wxDialog::Create(parent, wxID_ANY, _("About ") + info.GetName(),
+ if ( !wxDialog::Create(parent, wxID_ANY, wxString::Format(_("About %s"), info.GetName()),
wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE) )
return false;
CentreOnParent();
+#if !wxUSE_MODAL_ABOUT_DIALOG
+ Connect(wxEVT_CLOSE_WINDOW,
+ wxCloseEventHandler(wxGenericAboutDialog::OnCloseWindow));
+ Connect(wxID_OK, wxEVT_COMMAND_BUTTON_CLICKED,
+ wxCommandEventHandler(wxGenericAboutDialog::OnOK));
+#endif // !wxUSE_MODAL_ABOUT_DIALOG
+
return true;
}
AddControl(new wxStaticText(this, wxID_ANY, text));
}
+#if wxUSE_COLLPANE
void wxGenericAboutDialog::AddCollapsiblePane(const wxString& title,
const wxString& text)
{
// NB: all the wxCollapsiblePanes must be added with a null proportion value
m_sizerText->Add(pane, wxSizerFlags(0).Expand().Border(wxBOTTOM));
}
+#endif
+
+#if !wxUSE_MODAL_ABOUT_DIALOG
+
+void wxGenericAboutDialog::OnCloseWindow(wxCloseEvent& event)
+{
+ Destroy();
+
+ event.Skip();
+}
+
+void wxGenericAboutDialog::OnOK(wxCommandEvent& WXUNUSED(event))
+{
+ // By default a modeless dialog would be just hidden, destroy this one
+ // instead.
+ Destroy();
+}
+
+#endif // !wxUSE_MODAL_ABOUT_DIALOG
// ----------------------------------------------------------------------------
// public functions
void wxGenericAboutBox(const wxAboutDialogInfo& info, wxWindow* parent)
{
-#if !defined(__WXGTK__) && !defined(__WXMAC__)
+#if wxUSE_MODAL_ABOUT_DIALOG
wxGenericAboutDialog dlg(info, parent);
dlg.ShowModal();
#else
// currently wxAboutBox is implemented natively only under these platforms, for
// the others we provide a generic fallback here
-#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXGTK26__)
+#if !defined(__WXMSW__) && !defined(__WXMAC__) && \
+ (!defined(__WXGTK20__) || defined(__WXUNIVERSAL__))
void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* parent)
{