return icon;
}
+wxString wxAboutDialogInfo::GetCopyrightToDisplay() const
+{
+ wxString ret = m_copyright;
+
+#if wxUSE_UNICODE
+ const wxString copyrightSign = wxString::FromUTF8("\xc2\xa9");
+ ret.Replace("(c)", copyrightSign);
+ ret.Replace("(C)", copyrightSign);
+#endif // wxUSE_UNICODE
+
+ return ret;
+}
+
// ----------------------------------------------------------------------------
// wxGenericAboutDialog
// ----------------------------------------------------------------------------
bool wxGenericAboutDialog::Create(const wxAboutDialogInfo& info)
{
- // TODO: should we use main frame as parent by default here?
- if ( !wxDialog::Create(NULL, wxID_ANY, _("About ") + info.GetName(),
+ // this is a modal dialog thus we'll use GetParentForModalDialog:
+ if ( !wxDialog::Create(GetParentForModalDialog(), wxID_ANY, _("About ") + info.GetName(),
wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE) )
return false;
m_sizerText->Add(label, wxSizerFlags().Centre().Border());
m_sizerText->AddSpacer(5);
- AddText(info.GetCopyright());
+ AddText(info.GetCopyrightToDisplay());
AddText(info.GetDescription());
if ( info.HasWebSite() )
#if wxUSE_COLLPANE
if ( info.HasLicence() )
- AddCollapsiblePane(wxT("License"), info.GetLicence());
+ AddCollapsiblePane(_("License"), info.GetLicence());
if ( info.HasDevelopers() )
- AddCollapsiblePane(wxT("Developers"),
+ AddCollapsiblePane(_("Developers"),
AllAsString(info.GetDevelopers()));
if ( info.HasDocWriters() )
- AddCollapsiblePane(wxT("Documentation writers"),
+ AddCollapsiblePane(_("Documentation writers"),
AllAsString(info.GetDocWriters()));
if ( info.HasArtists() )
- AddCollapsiblePane(wxT("Artists"),
+ AddCollapsiblePane(_("Artists"),
AllAsString(info.GetArtists()));
if ( info.HasTranslators() )
- AddCollapsiblePane(wxT("Translators"),
+ AddCollapsiblePane(_("Translators"),
AllAsString(info.GetTranslators()));
#endif // wxUSE_COLLPANE
wxSizer *sizerTop = new wxBoxSizer(wxVERTICAL);
sizerTop->Add(sizerIconAndText, wxSizerFlags(1).Expand().Border());
+// Mac typically doesn't use OK buttons just for dismissing dialogs.
+#if !defined(__WXMAC__)
wxSizer *sizerBtns = CreateButtonSizer(wxOK);
if ( sizerBtns )
{
sizerTop->Add(sizerBtns, wxSizerFlags().Expand().Border());
}
+#endif
SetSizerAndFit(sizerTop);
void wxGenericAboutBox(const wxAboutDialogInfo& info)
{
+#if !defined(__WXGTK__) && !defined(__WXMAC__)
wxGenericAboutDialog dlg(info);
dlg.ShowModal();
+#else
+ wxGenericAboutDialog* dlg = new wxGenericAboutDialog(info);
+ dlg->Show();
+#endif
}
// currently wxAboutBox is implemented natively only under these platforms, for