X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7753f0a99290949abe24cada1f623d3258f770b..46b38b02ce1f3a4f09a88d798e3a82fcc4271a32:/src/generic/aboutdlgg.cpp diff --git a/src/generic/aboutdlgg.cpp b/src/generic/aboutdlgg.cpp index 09122a1c16..70f1582622 100644 --- a/src/generic/aboutdlgg.cpp +++ b/src/generic/aboutdlgg.cpp @@ -96,14 +96,26 @@ 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) +bool wxGenericAboutDialog::Create(const wxAboutDialogInfo& info, wxWindow* parent) { - // this is a modal dialog thus we'll use GetParentForModalDialog: - if ( !wxDialog::Create(GetParentForModalDialog(), wxID_ANY, _("About ") + info.GetName(), + if ( !wxDialog::Create(parent, wxID_ANY, _("About ") + info.GetName(), wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE) ) return false; @@ -120,7 +132,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() ) @@ -172,15 +184,18 @@ 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); - CentreOnScreen(); + CentreOnParent(); return true; } @@ -224,19 +239,24 @@ void wxGenericAboutDialog::AddCollapsiblePane(const wxString& title, // public functions // ---------------------------------------------------------------------------- -void wxGenericAboutBox(const wxAboutDialogInfo& info) +void wxGenericAboutBox(const wxAboutDialogInfo& info, wxWindow* parent) { - wxGenericAboutDialog dlg(info); +#if !defined(__WXGTK__) && !defined(__WXMAC__) + wxGenericAboutDialog dlg(info, parent); dlg.ShowModal(); +#else + wxGenericAboutDialog* dlg = new wxGenericAboutDialog(info, parent); + dlg->Show(); +#endif } // 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__) -void wxAboutBox(const wxAboutDialogInfo& info) +void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* parent) { - wxGenericAboutBox(info); + wxGenericAboutBox(info, parent); } #endif // platforms without native about dialog