]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wx.AboutBox()
authorRobin Dunn <robin@alldunn.com>
Mon, 9 Oct 2006 18:55:10 +0000 (18:55 +0000)
committerRobin Dunn <robin@alldunn.com>
Mon, 9 Oct 2006 18:55:10 +0000 (18:55 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/demo/AboutBox.py [new file with mode: 0644]
wxPython/demo/Main.py
wxPython/docs/CHANGES.txt
wxPython/setup.py
wxPython/src/_about.i [new file with mode: 0644]
wxPython/src/misc.i

diff --git a/wxPython/demo/AboutBox.py b/wxPython/demo/AboutBox.py
new file mode 100644 (file)
index 0000000..783c33b
--- /dev/null
@@ -0,0 +1,66 @@
+
+import wx
+
+#----------------------------------------------------------------------
+
+class TestPanel(wx.Panel):
+    def __init__(self, parent, log):
+        self.log = log
+        wx.Panel.__init__(self, parent, -1)
+
+        b = wx.Button(self, -1, "Show a wx.AboutBox", (50,50))
+        self.Bind(wx.EVT_BUTTON, self.OnButton, b)
+
+
+    def OnButton(self, evt):
+        # First we create and fill the info object
+        info = wx.AboutDialogInfo()
+        info.Name = "Hello World"
+        info.Version = "1.2.3"
+        info.Copyright = "(C) 2006 Programmers and Coders Everywhere"
+        info.Description = \
+             "A \"hello world\" program is a software program that prints out "\
+             "\"Hello world!\" on a display device. It is used in many introductory "\
+             "tutorials for teaching a programming language. Such a program is "\
+             "typically one of the simplest programs possible in a computer language. "\
+             "A \"hello world\" program can be a useful sanity test to make sure that "\
+             "a language's compiler, development environment, and run-time environment "\
+             "are correctly installed."
+        info.WebSite = ("http://en.wikipedia.org/wiki/Hello_world", "Hello World home page")
+        info.Developers = [ "Joe Programmer",
+                            "Jane Coder",
+                            "Vippy the Mascot" ]
+
+        # Then we call wx.AboutBox giving it that info object
+        wx.AboutBox(info)
+        
+
+#----------------------------------------------------------------------
+
+def runTest(frame, nb, log):
+    win = TestPanel(nb, log)
+    return win
+
+#----------------------------------------------------------------------
+
+
+
+overview = """<html><body>
+<h2><center>wx.AboutBox</center></h2>
+
+This function shows the native standard about dialog containing the
+information specified in info. If the current platform has a native
+about dialog which is capable of showing all the fields in info, the
+native dialog is used, otherwise the function falls back to the
+generic wxWidgets version of the dialog.
+
+</body></html>
+"""
+
+
+
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
+
index c0a19c56b03df6dbc6bd64c58d34d2632e4a312f..ec9b65f6643e80c6d00387f6c2722b42f26189f1 100644 (file)
@@ -66,6 +66,7 @@ _treeList = [
         'ButtonPanel',
         'FlatNotebook',
         'CustomTreeCtrl',
+        'AboutBox',
         ]),
 
     # managed windows == things with a (optional) caption you can close
@@ -80,6 +81,7 @@ _treeList = [
 
     # the common dialogs
     ('Common Dialogs', [
+        'AboutBox',
         'ColourDialog',
         'DirDialog',
         'FileDialog',
index 78ed4c9b514b2d5c16a083ec12280ec6f0f887ab..29e8650b646b6076be1c064041b7aed4077de7b8 100644 (file)
@@ -280,6 +280,17 @@ For consistency, all classes having an Ok() method now also have
 IsOk(), use of the latter form is preferred although the former hasn't
 been deprecated yet
 
+wx.BufferedDC and wx.BufferedPaintDC, if created with a reference to a
+window and no program supplied buffer bitmap, will not do its own
+buffering if the window is already double buffered by the system.
+Also added a wx.AutoBufferedPaintDC that is a subclass of wx.PaintDC
+on platforms that do double buffering by default, and a subclass of
+wx.BufferedPaintDC on the platforms that don't.
+
+Added the wx.AboutBox() function and wx.AboutDialogInfo class.  They
+provide a way to show a standard About box for the application, which
+will either be a native dialog or a generic one depending on what info
+is provided and if it can all be shown with the native dialog.
 
 
 
index 43a2a37691e4275456e4b2715a32948657a7e373..b860e78ae778007ddcf1af43db5fad84cc023164 100755 (executable)
@@ -332,6 +332,7 @@ swig_sources = run_swig(['misc.i'], 'src', GENDIR, PKGDIR,
                           'src/_clipbrd.i',
                           'src/_stdpaths.i',
                           'src/_power.i',
+                          'src/_about.i',
                           ],
                         True)
 ext = Extension('_misc_', swig_sources,
diff --git a/wxPython/src/_about.i b/wxPython/src/_about.i
new file mode 100644 (file)
index 0000000..cad8b16
--- /dev/null
@@ -0,0 +1,302 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        _about.i
+// Purpose:     SWIG interface for wxAboutDialog
+//
+// Author:      Robin Dunn
+//
+// Created:     08-Oct-2006
+// RCS-ID:      $Id$
+// Copyright:   (c) 2006 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+// Not a %module
+
+%{
+#include <wx/aboutdlg.h>
+%}
+
+//---------------------------------------------------------------------------
+%newgroup
+
+
+DocStr(wxAboutDialogInfo,
+"`wx.AboutDialogInfo contains information shown in the standard About
+dialog displayed by the `wx.AboutBox` function.  This class contains
+the general information about the program, such as its name, version,
+copyright and so on, as well as lists of the program developers,
+documentation writers, artists and translators.
+
+While all the main platforms have a native implementation of the about
+dialog, they are often more limited than the generic version provided
+by wxWidgets and so the generic version is used if
+`wx.AboutDialogInfo` has any fields not supported by the native
+version. Currently GTK+ version supports all the possible fields
+natively but MSW and Mac versions don't support URLs, licence text nor
+custom icons in the about dialog and if either of those is used,
+wxAboutBox() will automatically use the generic version so you should
+avoid specifying these fields to achieve more native look and feel.
+", "");
+
+class wxAboutDialogInfo
+{
+public:
+    wxAboutDialogInfo();
+    ~wxAboutDialogInfo();
+
+    DocDeclStr(
+        void , SetName(const wxString& name),
+        "Set the name of the program. If this method is not called, the string
+returned by `wx.App.GetAppName` will be shown in the dialog.", "");
+    
+    DocDeclStr(
+        wxString , GetName() const,
+        "Returns the program name.", "");
+    
+    %property(Name, GetName, SetName);
+
+    DocDeclStr(
+        void , SetVersion(const wxString& version),
+        "Set the version of the program. The version is in free format,
+i.e. not necessarily in the x.y.z form but it shouldn't contain the
+\"version\" word.", "");
+    
+    DocDeclStr(
+        bool , HasVersion() const,
+        "Returns ``True`` if the version property has been set.", "");
+    
+    DocDeclStr(
+        wxString , GetVersion() const,
+        "Returns the version value.", "");
+    
+    %property(Version, GetVersion, SetVersion);
+    
+
+    DocDeclStr(
+        void , SetDescription(const wxString& desc),
+        "Set brief, but possibly multiline, description of the program.", "");
+    
+    DocDeclStr(
+        bool , HasDescription() const,
+        "Returns ``True`` if the description property has been set.", "");
+    
+    DocDeclStr(
+        wxString , GetDescription() const,
+        "Returns the description value.", "");
+    
+    %property(Description, GetDescription, SetDescription);
+
+
+    DocDeclStr(
+        void , SetCopyright(const wxString& copyright),
+        "Set the short string containing the program copyright
+information. Notice that any occurrences of \"(C)\" in ``copyright``
+will be replaced by the copyright symbol (circled C) automatically,
+which means that you can avoid using this symbol in the program source
+code which can be problematic.", "");
+    
+    DocDeclStr(
+        bool , HasCopyright() const,
+        "Returns ``True`` if the copyright property has been set.", "");
+    
+    DocDeclStr(
+        wxString , GetCopyright() const,
+        "Returns the copyright value.", "");
+    
+    %property(Copyright, GetCopyright, SetCopyright);
+
+
+    DocDeclStr(
+        void , SetLicence(const wxString& licence),
+        "Set the long, multiline string containing the text of the program
+licence.
+
+Only GTK+ version supports showing the licence text in the native
+about dialog currently so the generic version will be used under all
+the other platforms if this method is called. To preserve the native
+look and feel it is advised that you do not call this method but
+provide a separate menu item in the \"Help\" menu for displaying the
+text of your program licence.
+", "");
+    
+    DocDeclStr(
+        void , SetLicense(const wxString& licence),
+        "This is the same as `SetLicence`.", "");
+    
+    DocDeclStr(
+        bool , HasLicence() const,
+        "Returns ``True`` if the licence property has been set.", "");
+    
+    DocDeclStr(
+        wxString , GetLicence() const,
+        "Returns the licence value.", "");
+    
+    %property(Licence, GetLicence, SetLicence);
+    %pythoncode { License = Licence }
+
+
+    DocDeclStr(
+        void , SetIcon(const wxIcon& icon),
+        "Set the icon to be shown in the dialog. By default the icon of the
+main frame will be shown if the native about dialog supports custom
+icons. If it doesn't but a valid icon is specified using this method,
+the generic about dialog is used instead so you should avoid calling
+this function for maximally native look and feel.", "");
+    
+    DocDeclStr(
+        bool , HasIcon() const,
+        "Returns ``True`` if the icon property has been set.", "");
+    
+    DocDeclStr(
+        wxIcon , GetIcon() const,
+        "Return the current icon value.", "");
+    
+    %property(Icon, GetIcon, SetIcon);    
+
+    
+    // web site for the program and its description (defaults to URL itself if
+    // empty)
+    %Rename(_SetWebSite,
+            void , SetWebSite(const wxString& url, const wxString& desc = wxEmptyString));
+    %Rename(_GetWebSiteURL,
+            wxString , GetWebSiteURL() const);
+    %Rename(_GetWebSiteDescription,
+            wxString , GetWebSiteDescription() const);
+    bool HasWebSite() const;
+
+    %pythoncode {
+        def SetWebSite(self, args):
+            """
+            SetWebSite(self, URL, [Description])
+
+            Set the web site property.  The ``args`` parameter can
+            either be a single string for the URL, to a 2-tuple of
+            (URL, Description) strings.
+            """
+            if type(args) in [str, unicode]:
+                self._SetWebSite(args)
+            else:
+                self._SetWebSite(args[0], args[1])
+                    
+        def GetWebSite(self):
+            """
+            GetWebSite(self) --> (URL, Description)
+            """
+            return (self._GetWebSiteURL(), self._GetWebSiteDescription())
+    }
+    %property(WebSite, GetWebSite, SetWebSite)
+
+
+    
+    DocDeclAStr(
+        void , SetDevelopers(const wxArrayString& developers),
+        "SetDevelopers(self, list developers)",
+        "Set the list of the developers of the program.", "");
+    
+    DocDeclStr(
+        void , AddDeveloper(const wxString& developer),
+        "Add a string to the list of developers.", "");
+    
+    DocDeclStr(
+        bool , HasDevelopers() const,
+        "Returns ``True if any developers have been set.", "");
+    
+    DocDeclAStr(
+        const wxArrayString& , GetDevelopers() const,
+        "GetDevelopers(self) --> list",
+        "Returns the list of developers.", "");
+    
+    %property(Developers, GetDevelopers, SetDevelopers);
+    
+
+    DocDeclAStr(
+        void , SetDocWriters(const wxArrayString& docwriters),
+        "SetDocWriters(self, list docwriters)",
+        "Set the list of the documentation writers.", "");
+    
+    DocDeclStr(
+        void , AddDocWriter(const wxString& docwriter),
+        "Add a string to the list of documentation writers.", "");
+    
+    DocDeclStr(
+        bool , HasDocWriters() const,
+        "Returns ``True if any documentation writers have been set.", "");
+    
+    DocDeclAStr(
+        const wxArrayString& , GetDocWriters() const,
+        "GetDocWriters(self) --> list",
+        "Returns the list of documentation writers.", "");
+
+    %property(DocWriters, GetDocWriters, SetDocWriters);
+    
+
+    DocDeclAStr(
+        void , SetArtists(const wxArrayString& artists),
+        "SetArtists(self, list artists)", 
+        "Set the list of artists for the program.", "");
+    
+    DocDeclStr(
+        void , AddArtist(const wxString& artist),
+        "Add a string to the list of artists.", "");
+    
+    DocDeclStr(
+        bool , HasArtists() const,
+        "Returns ``True`` if any artists have been set.", "");
+    
+    DocDeclAStr(
+        const wxArrayString& , GetArtists() const,
+        "GetArtists(self) --> list",
+        "Returns the list od artists.", "");
+    
+    %property(Artists, GetArtists, SetArtists);
+
+    
+    
+    DocDeclAStr(
+        void , SetTranslators(const wxArrayString& translators),
+        "SetTranslators(self, list translators)",
+        "Sets the list of program translators.", "");
+    
+    DocDeclStr(
+        void , AddTranslator(const wxString& translator),
+        "Add a string to the list of translators.", "");
+    
+    DocDeclStr(
+        bool , HasTranslators() const,
+        "Returns ``True`` if any translators have been set.", "");
+    
+    DocDeclAStr(
+        const wxArrayString& , GetTranslators() const,
+        "GetTranslators(self) --> list",
+        "Returns the list of program translators.", "");
+    
+    %property(Translators, GetTranslators, SetTranslators);
+
+
+    // implementation only
+    // -------------------
+
+    // "simple" about dialog shows only textual information (with possibly
+    // default icon but without hyperlink nor any long texts such as the
+    // licence text)
+    bool IsSimple() const;
+
+    // get the description and credits (i.e. all of developers, doc writers,
+    // artists and translators) as a one long multiline string
+    wxString GetDescriptionAndCredits() const;
+
+};
+
+
+
+DocStr(wxAboutBox,
+       "This function shows the standard about dialog containing the
+information specified in ``info``. If the current platform has a
+native about dialog which is capable of showing all the fields in
+``info``, the native dialog is used, otherwise the function falls back
+to the generic wxWidgets version of the dialog.", "");
+
+void wxAboutBox(const wxAboutDialogInfo& info);
+
+
+//---------------------------------------------------------------------------
index db0e94597c983116c105982bef7b2d5c989dddea..6b5ad1ce3407ea2ecee5da72926389723296727d 100644 (file)
@@ -49,5 +49,6 @@ MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
 %include _display.i
 %include _stdpaths.i
 %include _power.i
+%include _about.i
 
 //---------------------------------------------------------------------------