]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_core_ex.py
Renamed the core namespace's submodules to have a leading underscore.
[wxWidgets.git] / wxPython / src / _core_ex.py
index 52edf3c95548fa3182dc568f6974277752360375..6c6ff3b1f9ec882b8ea6e0ce2cd77c9f98c87369 100644 (file)
@@ -6,6 +6,8 @@ try:
 except NameError:
     __builtins__.True = 1==1
     __builtins__.False = 1==0
+    def bool(value): return not not value
+    __builtins__.bool = bool
 
 
 
@@ -22,9 +24,9 @@ __wxPyPtrTypeMap['wxStatusBar95']   = 'wxStatusBar'
 from __version__ import *
 __version__ = VERSION_STRING
 
-assert MAJOR_VERSION == _core.MAJOR_VERSION, "wxPython/wxWindows version mismatch"
-assert MINOR_VERSION == _core.MINOR_VERSION, "wxPython/wxWindows version mismatch"
-if RELEASE_VERSION != _core.RELEASE_VERSION:
+assert MAJOR_VERSION == _core_.MAJOR_VERSION, "wxPython/wxWindows version mismatch"
+assert MINOR_VERSION == _core_.MINOR_VERSION, "wxPython/wxWindows version mismatch"
+if RELEASE_VERSION != _core_.RELEASE_VERSION:
     import warnings
     warnings.warn("wxPython/wxWindows release number mismatch")
 
@@ -62,7 +64,7 @@ class PyUnbornObjectError(AttributeError):
 
 class _wxPyUnbornObject(object):
     """
-    Some stock objects are created when the wx.core module is
+    Some stock objects are created when the wx._core module is
     imported, but their C++ instance is not created until the wx.App
     object is created and initialized.  These object instances will
     temporarily have their __class__ changed to this class so an
@@ -117,7 +119,7 @@ def CallAfter(callable, *args, **kw):
 
 class FutureCall:
     """
-    A convenience class for wxTimer, that calls the given callable
+    A convenience class for wx.Timer, that calls the given callable
     object once after the given amount of milliseconds, passing any
     positional or keyword args.  The return value of the callable is
     availbale after it has been run with the GetResult method.
@@ -134,6 +136,7 @@ class FutureCall:
         self.callable = callable
         self.SetArgs(*args, **kwargs)
         self.runCount = 0
+        self.running = False
         self.hasRun = False
         self.result = None
         self.timer = None
@@ -155,6 +158,7 @@ class FutureCall:
         self.Stop()
         self.timer = wx.PyTimer(self.Notify)
         self.timer.Start(self.millis, wx.TIMER_ONE_SHOT)
+        self.running = True
     Restart = Start
 
 
@@ -201,25 +205,46 @@ class FutureCall:
         """
         if self.callable and getattr(self.callable, 'im_self', True):
             self.runCount += 1
+            self.running = False
             self.result = self.callable(*self.args, **self.kwargs)
         self.hasRun = True
-        wx.CallAfter(self.Stop)
+        if not self.running:
+            # if it wasn't restarted, then cleanup
+            wx.CallAfter(self.Stop)
 
 
+
+#----------------------------------------------------------------------------
+# Control which items in this module should be documented by epydoc.
+# We allow only classes and functions, which will help reduce the size
+# of the docs by filtering out the zillions of constants, EVT objects,
+# and etc that don't make much sense by themselves, but are instead
+# documented (or will be) as part of the classes/functions/methods
+# where they should be used.
+
+def __docfilter__(name):
+    import types
+    obj = globals().get(name, None)
+    if type(obj) not in [type, types.ClassType, types.FunctionType, types.BuiltinFunctionType]:
+        return False
+    if name.startswith('_') or name.endswith('Ptr') or name.startswith('EVT'):
+        return False
+    return True
+
 #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------
 
 # Import other modules in this package that should show up in the
 # "core" wx namespace
-from gdi import *
-from windows import *
-from controls import *
-from misc import *
+from _gdi import *
+from _windows import *
+from _controls import *
+from _misc import *
 
 
 # Fixup the stock objects since they can't be used yet.  (They will be
 # restored in wx.PyApp.OnInit.)
-_core._wxPyFixStockObjects()
+_core_._wxPyFixStockObjects()
 
 #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------