]> git.saurik.com Git - wxWidgets.git/commitdiff
Allow setting long version field in About dialog.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 25 Jul 2009 22:53:23 +0000 (22:53 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 25 Jul 2009 22:53:23 +0000 (22:53 +0000)
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

docs/changes.txt
include/wx/aboutdlg.h
interface/wx/aboutdlg.h
samples/dialogs/dialogs.cpp
src/generic/aboutdlgg.cpp
src/msw/aboutdlg.cpp
src/osx/carbon/aboutdlg.cpp
src/osx/cocoa/aboutdlg.mm

index 394eb63f5d84411d6fc2b7e7eaffac47ed151c6e..0835fd93b72d355096953e6352b06e08f71b8ad1 100644 (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:
 
index 8a4ccb36a1e613460dc6c5935d8a48a626263ea3..9c5a12ee0302e6d435315f5c5d0c57bd299f4f8d 100644 (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;
index 44cd0df753407d8825b317ad646f1b93039be185..6db5903b8a8a1bd7ecb1858778e289911bb2f9b4 100644 (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.
-    */
-    void SetVersion(const wxString& version);
+        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, const wxString& longVersion = wxString());
 
     /**
         Set the web site for the program and its description (which defaults to @a url
index d81a728015e7bbbba7f22da0d251aa28270fb394..7d554673aadda05ee38b339dd7822dee30e73935 100644 (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"));
index 60f799b428f1a95aa68f2ede3c52d3e06b78551b..117dddf817ca3ef615d687429be3d5cb0c64e904 100644 (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
 // ----------------------------------------------------------------------------
index 526552fd89077f87f468205b96826c6319c57452..1259a214e75581293385d97fafc7b0e53dcaf1c6 100644 (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");
index bbe9f1f8f326e7274b8ab5fce3d913cb37f582dc..51b40889b007012c5a3215d6addb08fc0d0ba00f 100644 (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());
index 9c1b0a664d6ff304e49d265310d1a7370d76bf23..7d9d6f9cd47f5004d1f29a683041ec583e72e66a 100644 (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() )