#if wxUSE_ABOUTDLG
#ifndef WX_PRECOMP
+ #include "wx/msgdlg.h"
#endif //WX_PRECOMP
#include "wx/aboutdlg.h"
// implementation
// ============================================================================
-// helper function: returns all array elements in a single comma-separated and
-// newline-terminated string
-static wxString AllAsString(const wxArrayString& a)
-{
- wxString s;
- const size_t count = a.size();
- for ( size_t n = 0; n < count; n++ )
- {
- s << a[n] << (n == count - 1 ? _T("\n") : _T(", "));
- }
-
- return s;
-}
-
// our public entry point
-void wxAboutBox(const wxAboutDialogInfo& info)
+void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* parent)
{
// we prefer to show a simple message box if we don't have any fields which
// can't be shown in it because as much as there is a standard about box
// under MSW at all, this is it
- if ( info.HasWebSite() || info.HasIcon() || info.HasLicence() )
- {
- // we need to use the full-blown generic version
- wxGenericAboutBox(info);
- }
- else // simple "native" version should do
+ if ( info.IsSimple() )
{
// build the text to show in the box
const wxString name = info.GetName();
wxString msg;
msg << name;
if ( info.HasVersion() )
- msg << _(" Version ") << info.GetVersion();
- msg << _T('\n');
+ {
+ msg << wxT('\n');
+ msg << info.GetLongVersion();
+ }
- if ( info.HasCopyright() )
- msg << info.GetCopyright() << _T('\n');
-
- msg << info.GetDescription() << _T('\n');
-
- if ( info.HasDevelopers() )
- msg << _("Developed by ") << AllAsString(info.GetDevelopers());
-
- if ( info.HasDocWriters() )
- msg << _("Documentation by ") << AllAsString(info.GetDocWriters());
+ msg << wxT("\n\n");
- if ( info.HasArtists() )
- msg << _("Graphics art by ") << AllAsString(info.GetArtists());
+ if ( info.HasCopyright() )
+ msg << info.GetCopyrightToDisplay() << wxT('\n');
- if ( info.HasTranslators() )
- msg << _("Translations by ") << AllAsString(info.GetTranslators());
+ // add everything remaining
+ msg << info.GetDescriptionAndCredits();
- wxMessageBox(msg, _T("About ") + name);
+ wxMessageBox(msg, wxString::Format(_("About %s"), name), wxOK | wxCENTRE, parent);
+ }
+ else // simple "native" version is not enough
+ {
+ // we need to use the full-blown generic version
+ wxGenericAboutBox(info, parent);
}
}