+"""Decorator classes for documentation and shell scripting.
+"""
+
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
+__cvsid__ = "$Id$"
+__revision__ = "$Revision$"[11:-2]
+
+
+# These are not the real wxPython classes. These are Python versions
+# for documentation purposes. They are also used to apply docstrings
+# to the real wxPython classes, which are SWIG-generated wrappers for
+# C-language classes.
+
+
+from Base import EvtHandler
+import Parameters as wx
+
+try:
+ True
+except NameError:
+ True = 1==1
+ False = 1==0
+
+
+class PyApp(EvtHandler):
+ """Python Application base class.
+
+ It is used to:
+
+ - set and get application-wide properties;
+
+ - implement the windowing system message or event loop;
+
+ - initiate application processing via App.OnInit;
+
+ - allow default processing of events not handled by other objects
+ in the application."""
+
+ def __init__(self):
+ """Create a PyApp instance."""
+ pass
+
+ def Dispatch(self):
+ """Dispatches the next event in the windowing system event
+ queue.
+
+ This can be used for programming event loops."""
+ pass
+
+ def ExitMainLoop(self):
+ """Call this to explicitly exit the main message (event) loop.
+
+ You should normally exit the main loop (and the application)
+ by deleting the top window, which wxPython does automatically."""
+ pass
+
+ def GetAppName(self):
+ """Return the application name."""
+ pass
+
+ def GetAssertMode(self):
+ """Return the current assertion mode."""
+ pass
+
+ def GetAuto3D(self):
+ """Returns True if 3D control mode is on, False otherwise.
+ Windows only."""
+ pass
+
+ def GetClassName(self):
+ """Return the class name of the application."""
+ pass
+
+ def GetExitOnFrameDelete(self):
+ """Returns True if the application will exit when the
+ top-level window is deleted, False otherwise."""
+ pass
+
+ def GetPrintMode(self):
+ """Deprecated."""
+ pass
+
+ def GetTopWindow(self):
+ """Return the top window.
+
+ If the top window hasn't been set using App.SetTopWindow,
+ this method will find the first top-level window (frame or
+ dialog) and return that."""
+ pass
+
+ def GetUseBestVisual(self):
+ """Return True if the application will use the best visual on
+ systems that support different visuals, False otherwise."""
+ pass
+
+ def GetVendorName(self):
+ """Return the application's vendor name."""
+ pass
+
+ def Initialized(self):
+ """Return True if the application has been initialized
+ (i.e. if App.OnInit has returned successfully). This can be
+ useful for error message routines to determine which method of
+ output is best for the current state of the program (some
+ windowing systems may not like dialogs to pop up before the
+ main loop has been entered)."""
+ pass
+
+ def MainLoop(self):
+ """Called by wxWindows on creation of the application.
+ Override this if you wish to provide your own
+ (environment-dependent) main loop.
+
+ Return 0 under X, and the wParam of the WM_QUIT message under
+ Windows."""
+ pass
+
+ def OnAssert(self, file, line, cond, msg):
+ """Called when an assert failure occurs, i.e. the condition
+ specified in ASSERT macro evaluated to FALSE. It is only
+ called in debug mode (when __WXDEBUG__ is defined) as asserts
+ are not left in the release code at all.
+
+ The base class version show the default assert failure dialog
+ box proposing to the user to stop the program, continue or
+ ignore all subsequent asserts.
+
+ file is the name of the source file where the assert occured
+
+ line is the line number in this file where the assert occured
+
+ cond is the condition of the failed assert in string form
+
+ msg is the message specified as argument to ASSERT_MSG or
+ FAIL_MSG, will be NULL if just ASSERT or FAIL was used"""
+ pass
+
+ def OnExit(self):
+ """Provide this member function for any processing which needs
+ to be done as the application is about to exit. OnExit is
+ called after destroying all application windows and controls,
+ but before wxWindows cleanup."""
+ pass
+
+ def OnInit(self):
+ """This must be provided by the application, and will usually
+ create the application's main window, optionally calling
+ App.SetTopWindow.
+
+ Return True to continue processing, False to exit the
+ application."""
+ pass
+
+ def OnInitGui(self):
+ """Called just after the platform's GUI has been initialized,
+ but before the App.OnInit() gets called. Rarely needed in
+ practice. Unlike App.OnInit(), does not need to return
+ True/False."""
+ pass
+
+ def Pending(self):
+ """Return True if unprocessed events are in the window system
+ event queue."""
+ pass
+
+ def ProcessIdle(self):
+ """Sends the EVT_IDLE event and is called inside the MainLoop.
+
+ You only need this if you implement your own main loop."""
+ pass
+
+ def SetAppName(self, name):
+ """Set the name of the application."""
+ pass
+
+ def SetAssertMode(self, mode):
+ """Lets you control how C++ assertions are processed.
+
+ Valid modes are: PYAPP_ASSERT_SUPPRESS,
+ PYAPP_ASSERT_EXCEPTION, and PYAPP_ASSERT_DIALOG. Using
+ _SUPPRESS will give you behavior like the old final builds and
+ the assert will be ignored, _EXCEPTION is the new default
+ described above, and _DIALOG is like the default in 2.3.3.1
+ and prior hybrid builds. You can also combine _EXCEPTION and
+ _DIALOG if you wish, although I don't know why you would."""
+ pass
+
+ def SetAuto3D(self, auto3D):
+ """Switches automatic 3D controls on or off. Windows only.
+
+ If auto3D is True, all controls will be created with 3D
+ appearances unless overridden for a control or dialog. The
+ default is True."""
+ pass
+
+ def SetClassName(self, name):
+ """Set the class name of the application."""
+ pass
+
+ def SetExitOnFrameDelete(self, flag):
+ """If flag is True (the default), the application will exit
+ when the top-level frame is deleted. If False, the
+ application will continue to run."""
+ pass
+
+ def SetPrintMode(self, mode):
+ """Deprecated."""
+ pass
+
+ def SetTopWindow(self, window):
+ """Set the 'top' window.
+
+ You can call this from within App.OnInit to let wxWindows
+ know which is the main window. You don't have to set the top
+ window; it is only a convenience so that (for example) certain
+ dialogs without parents can use a specific window as the top
+ window. If no top window is specified by the application,
+ wxWindows just uses the first frame or dialog in its top-level
+ window list, when it needs to use the top window."""
+ pass
+
+ def SetUseBestVisual(self, flag):
+ """Allows the programmer to specify whether the application
+ will use the best visual on systems that support several
+ visual on the same display. This is typically the case under
+ Solaris and IRIX, where the default visual is only 8-bit
+ whereas certain applications are supposed to run in TrueColour
+ mode.
+
+ Note that this function has to be called in the constructor of
+ the App instance and won't have any effect when called later
+ on.
+
+ This function currently only has effect under GTK."""
+ pass
+
+ def SetVendorName(self, name):
+ """Sets the name of application's vendor. The name will be
+ used in registry access."""
+ pass
+
+ def Yield(self, onlyIfNeeded=False):
+ """Yields control to pending messages in the windowing system.
+ This can be useful, for example, when a time-consuming process
+ writes to a text window. Without an occasional yield, the
+ text window will not be updated properly, and on systems with
+ cooperative multitasking, such as Windows 3.1 other processes
+ will not respond.
+
+ Caution should be exercised, however, since yielding may allow
+ the user to perform actions which are not compatible with the
+ current task. Disabling menu items or whole menus during
+ processing can avoid unwanted reentrance of code: see
+ wx.SafeYield for a better function.
+
+ Calling Yield() recursively is normally an error and an assert
+ failure is raised in debug build if such situation is
+ detected. However if the the onlyIfNeeded parameter is True,
+ the method will just silently return False instead."""
+ pass
+
+
+from wxPython.wx import wxPlatform
+_redirect = (wxPlatform == '__WXMSW__' or wxPlatform == '__WXMAC__')
+del wxPlatform
+
+
+class App(PyApp):
+ """The main application class.
+
+ Inherit from this class and implement an OnInit method that
+ creates a frame and then calls self.SetTopWindow(frame)."""
+
+ def __init__(self, redirect=_redirect, filename=None, useBestVisual=False):
+ """Create an App instance.
+
+ redirect defaults to True on Windows and Mac. If redirect is
+ True, stdio goes to an output window or a file if filename is
+ not None."""
+ pass
+
+
+del _redirect
+
+
+class PyOnDemandOutputWindow:
+ """Used by App to display stdout and stderr messages if app is
+ created using App(redirect=True). Mostly useful on Windows or
+ Mac where apps aren't always launched from the command line."""
+ pass
+
+
+class PySimpleApp(App):
+ """Use instead of App for simple apps with a simple frame or
+ dialog, particularly for testing."""
+
+ def __init__(self, flag=0):
+ """Create a PySimpleApp instance.
+
+ flag is the same as App's redirect parameter to redirect stdio."""
+ pass
+
+ def OnInit(self):
+ """Automatically does a wx.InitAllImageHandlers()."""
+ pass
+
+
+class PyWidgetTester(App):
+ """Use instead of App for testing widgets. Provides a frame
+ containing an instance of a widget.
+
+ Create a PyWidgetTester instance with the desired size for the
+ frame, then create the widget and show the frame using SetWidget."""
+
+ def __init__(self, size=(250, 100)):
+ """Create a PyWidgetTester instance, with no stdio redirection.
+
+ size is for the frame to hold the widget."""
+ pass
+
+ def OnInit(self):
+ """Creates a frame that will hold the widget to be tested."""
+ pass
+
+ def SetWidget(self, widgetClass, *args):
+ """Create a widgetClass instance using the supplied args and
+ with a frame as parent, then show the frame."""
+ pass
+
+
+class SingleInstanceChecker:
+ """Allows one to check that only a single instance of a program is
+ running. To do it, you should create an object of this class. As
+ long as this object is alive, calls to IsAnotherRunning() from
+ other processes will return True.
+
+ As the object should have the life span as big as possible, it
+ makes sense to create it either as a global or in App.OnInit()."""
+
+ def __init__(self, name, path=wx.EmptyString):
+ """Create a SingleInstanceChecker instance.
+
+ name should be as unique as possible. It is used as the mutex
+ name under Win32 and the lock file name under Unix.
+ App.GetAppName() and wx.GetUserId() are commonly used.
+
+ path is optional and is ignored under Win32 and used as the
+ directory to create the lock file in under Unix (default is
+ wx.GetHomeDir())."""
+ pass
+
+ def Create(self, name, path=wx.EmptyString):
+ """Create a SingleInstanceChecker instance."""
+ pass
+
+ def IsAnotherRunning(self):
+ """Return True if another copy of this program is already running."""
+ pass