Allow setting long version field in About dialog.

Long version is constructed by concatenating "Version " with the short version but can be overridden for the platforms which use it (currently MSW and OS X).

Closes 11027.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-07-25 22:53:23 +00:00
parent 1c54277e53
commit 704006b381
8 changed files with 59 additions and 13 deletions

View File

@@ -384,6 +384,7 @@ All (GUI):
- Added wxTextWrapper helper class useful for wrapping lines of text.
- Added EVT_DATAVIEW_CACHE_HINT() event (Trigve).
- Added wxLB_NO_SB style (implemented for MSW only; Dario Senic).
- Added long version field to wxAboutDialogInfo (Jeff Tupper).
GTK:

View File

@@ -36,10 +36,20 @@ public:
wxString GetName() const
{ return m_name.empty() ? wxTheApp->GetAppDisplayName() : m_name; }
// version of the program, in free format (but without "version" word)
void SetVersion(const wxString& version) { m_version = version; }
// version should contain program version without "version" word (e.g.,
// "1.2" or "RC2") while longVersion may contain the full version including
// "version" word (e.g., "Version 1.2" or "Release Candidate 2")
//
// if longVersion is empty, it is automatically constructed from version
//
// generic and gtk native: use short version only, as a suffix to the
// program name msw and osx native: use long version
void SetVersion(const wxString& version,
const wxString& longVersion = wxString());
bool HasVersion() const { return !m_version.empty(); }
const wxString& GetVersion() const { return m_version; }
const wxString& GetLongVersion() const { return m_longVersion; }
// brief, but possibly multiline, description of the program
void SetDescription(const wxString& desc) { m_description = desc; }
@@ -135,6 +145,7 @@ public:
private:
wxString m_name,
m_version,
m_longVersion,
m_description,
m_copyright,
m_licence;

View File

@@ -148,10 +148,19 @@ public:
void SetTranslators(const wxArrayString& translators);
/**
Set the version of the program. The version is in free format, i.e. not
necessarily in the @c x.y.z form but it shouldn't contain the "version" word.
Set the version of the program. The word "version" shouldn't be included
in @a version. Example @a version values: "1.2" and "RC2". In about dialogs
with more space set aside for version information, @a longVersion is used.
Example @a longVersion values: "Version 1.2" and "Release Candidate 2".
If @a version is non-empty but @a longVersion is empty, a long version
is constructed automatically, using @a version (by simply prepending
"Version " to @a version).
The generic about dialog and native GTK+ dialog use @a version only,
as a suffix to the program name. The native MSW and OS X about dialogs
use the long version.
*/
void SetVersion(const wxString& version);
void SetVersion(const wxString& version, const wxString& longVersion = wxString());
/**
Set the web site for the program and its description (which defaults to @a url

View File

@@ -1689,7 +1689,13 @@ void MyFrame::ShowProgress( wxCommandEvent& WXUNUSED(event) )
static void InitAboutInfoMinimal(wxAboutDialogInfo& info)
{
info.SetName(wxT("Dialogs Sample"));
info.SetVersion(wxVERSION_NUM_DOT_STRING_T);
info.SetVersion(wxVERSION_NUM_DOT_STRING,
wxString::Format
(
"%s version %s",
wxMINOR_VERSION % 2 ? "Development" : "Stable",
wxVERSION_NUM_DOT_STRING
));
info.SetDescription(wxT("This sample shows different wxWidgets dialogs"));
info.SetCopyright(wxT("(C) 1998-2006 wxWidgets dev team"));
info.AddDeveloper(wxT("Vadim Zeitlin"));

View File

@@ -109,6 +109,29 @@ wxString wxAboutDialogInfo::GetCopyrightToDisplay() const
return ret;
}
void wxAboutDialogInfo::SetVersion(const wxString& version,
const wxString& longVersion)
{
if ( version.empty() )
{
m_version.clear();
wxASSERT_MSG( longVersion.empty(),
"long version should be empty if version is");
m_longVersion.clear();
}
else // setting valid version
{
m_version = version;
if ( longVersion.empty() )
m_longVersion = _("Version ") + m_version;
else
m_longVersion = longVersion;
}
}
// ----------------------------------------------------------------------------
// wxGenericAboutDialog
// ----------------------------------------------------------------------------

View File

@@ -51,7 +51,7 @@ void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* parent)
if ( info.HasVersion() )
{
msg << wxT('\n');
msg << wxString::Format(_("Version %s"), info.GetVersion());
msg << info.GetLongVersion();
}
msg << wxT("\n\n");

View File

@@ -69,10 +69,7 @@ void wxAboutBox(const wxAboutDialogInfo& info, wxWindow *parent)
opts.Set(kHIAboutBoxNameKey, info.GetName());
if ( info.HasVersion() )
{
opts.Set(kHIAboutBoxVersionKey,
wxString::Format(_("Version %s"), info.GetVersion()));
}
opts.Set(kHIAboutBoxVersionKey,info.GetLongVersion());
if ( info.HasCopyright() )
opts.Set(kHIAboutBoxCopyrightKey, info.GetCopyrightToDisplay());

View File

@@ -87,8 +87,7 @@ void wxAboutBox(const wxAboutDialogInfo& info, wxWindow *parent)
if ( info.HasVersion() )
{
opts.Set(CFSTR("Version"),info.GetVersion());
opts.Set(CFSTR("ApplicationVersion"),
wxString::Format(_("Version %s"), info.GetVersion()));
opts.Set(CFSTR("ApplicationVersion"),info.GetLongVersion());
}
if ( info.HasCopyright() )