X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b9993189cc61b29d68dfa255d4f23d58e16cadc2..9b49405777342458dc1666001865eef7309b6c30:/src/generic/aboutdlgg.cpp diff --git a/src/generic/aboutdlgg.cpp b/src/generic/aboutdlgg.cpp index 33cd027719..1992228b6d 100644 --- a/src/generic/aboutdlgg.cpp +++ b/src/generic/aboutdlgg.cpp @@ -96,14 +96,27 @@ wxIcon wxAboutDialogInfo::GetIcon() const 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; @@ -120,7 +133,7 @@ bool wxGenericAboutDialog::Create(const wxAboutDialogInfo& info) m_sizerText->Add(label, wxSizerFlags().Centre().Border()); m_sizerText->AddSpacer(5); - AddText(info.GetCopyright()); + AddText(info.GetCopyrightToDisplay()); AddText(info.GetDescription()); if ( info.HasWebSite() ) @@ -136,22 +149,22 @@ bool wxGenericAboutDialog::Create(const wxAboutDialogInfo& info) #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 @@ -172,11 +185,14 @@ bool wxGenericAboutDialog::Create(const wxAboutDialogInfo& info) 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); @@ -226,8 +242,13 @@ void wxGenericAboutDialog::AddCollapsiblePane(const wxString& title, 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