]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/msw/_core.py
added OnSysColourChanged() (modified patch 1103439)
[wxWidgets.git] / wxPython / src / msw / _core.py
index adf89e87173fbb7dd842bc55a0e10d97c903d4f7..8f59b45efa98661c41c919b17c6a2a92e8fc6d7d 100644 (file)
@@ -3,6 +3,47 @@
 
 import _core_
 
 
 import _core_
 
+def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
+    if (name == "this"):
+        if isinstance(value, class_type):
+            self.__dict__[name] = value.this
+            if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown
+            del value.thisown
+            return
+    method = class_type.__swig_setmethods__.get(name,None)
+    if method: return method(self,value)
+    if (not static) or hasattr(self,name) or (name == "thisown"):
+        self.__dict__[name] = value
+    else:
+        raise AttributeError("You cannot add attributes to %s" % self)
+
+def _swig_setattr(self,class_type,name,value):
+    return _swig_setattr_nondynamic(self,class_type,name,value,0)
+
+def _swig_getattr(self,class_type,name):
+    method = class_type.__swig_getmethods__.get(name,None)
+    if method: return method(self)
+    raise AttributeError,name
+
+import types
+try:
+    _object = types.ObjectType
+    _newclass = 1
+except AttributeError:
+    class _object : pass
+    _newclass = 0
+del types
+
+
+def _swig_setattr_nondynamic_method(set):
+    def set_attr(self,name,value):
+        if hasattr(self,name) or (name in ("this", "thisown")):
+            set(self,name,value)
+        else:
+            raise AttributeError("You cannot add attributes to %s" % self)
+    return set_attr
+
+
 #// Give a reference to the dictionary of this module to the C++ extension
 #// code.
 _core_._wxPySetDictionary(vars())
 #// Give a reference to the dictionary of this module to the C++ extension
 #// code.
 _core_._wxPySetDictionary(vars())
@@ -12,6 +53,26 @@ _core_._wxPySetDictionary(vars())
 import sys as _sys
 wx = _sys.modules[__name__]
 
 import sys as _sys
 wx = _sys.modules[__name__]
 
+
+#----------------------------------------------------------------------------
+
+def _deprecated(callable, msg=None):
+    """
+    Create a wrapper function that will raise a DeprecationWarning
+    before calling the callable.
+    """
+    if msg is None:
+        msg = "%s is deprecated" % callable
+    def deprecatedWrapper(*args, **kwargs):
+        import warnings
+        warnings.warn(msg, DeprecationWarning, stacklevel=2)
+        return callable(*args, **kwargs)
+    deprecatedWrapper.__doc__ = msg
+    return deprecatedWrapper
+    
+                   
+#----------------------------------------------------------------------------
+
 NOT_FOUND = _core_.NOT_FOUND
 VSCROLL = _core_.VSCROLL
 HSCROLL = _core_.HSCROLL
 NOT_FOUND = _core_.NOT_FOUND
 VSCROLL = _core_.VSCROLL
 HSCROLL = _core_.HSCROLL
@@ -60,20 +121,12 @@ RA_HORIZONTAL = _core_.RA_HORIZONTAL
 RA_VERTICAL = _core_.RA_VERTICAL
 RA_SPECIFY_ROWS = _core_.RA_SPECIFY_ROWS
 RA_SPECIFY_COLS = _core_.RA_SPECIFY_COLS
 RA_VERTICAL = _core_.RA_VERTICAL
 RA_SPECIFY_ROWS = _core_.RA_SPECIFY_ROWS
 RA_SPECIFY_COLS = _core_.RA_SPECIFY_COLS
+RA_USE_CHECKBOX = _core_.RA_USE_CHECKBOX
 RB_GROUP = _core_.RB_GROUP
 RB_SINGLE = _core_.RB_SINGLE
 RB_GROUP = _core_.RB_GROUP
 RB_SINGLE = _core_.RB_SINGLE
-SL_HORIZONTAL = _core_.SL_HORIZONTAL
-SL_VERTICAL = _core_.SL_VERTICAL
-SL_AUTOTICKS = _core_.SL_AUTOTICKS
-SL_LABELS = _core_.SL_LABELS
-SL_LEFT = _core_.SL_LEFT
-SL_TOP = _core_.SL_TOP
-SL_RIGHT = _core_.SL_RIGHT
-SL_BOTTOM = _core_.SL_BOTTOM
-SL_BOTH = _core_.SL_BOTH
-SL_SELRANGE = _core_.SL_SELRANGE
 SB_HORIZONTAL = _core_.SB_HORIZONTAL
 SB_VERTICAL = _core_.SB_VERTICAL
 SB_HORIZONTAL = _core_.SB_HORIZONTAL
 SB_VERTICAL = _core_.SB_VERTICAL
+RB_USE_CHECKBOX = _core_.RB_USE_CHECKBOX
 ST_SIZEGRIP = _core_.ST_SIZEGRIP
 ST_NO_AUTORESIZE = _core_.ST_NO_AUTORESIZE
 FLOOD_SURFACE = _core_.FLOOD_SURFACE
 ST_SIZEGRIP = _core_.ST_SIZEGRIP
 ST_NO_AUTORESIZE = _core_.ST_NO_AUTORESIZE
 FLOOD_SURFACE = _core_.FLOOD_SURFACE
@@ -186,6 +239,29 @@ ID_NOTOALL = _core_.ID_NOTOALL
 ID_ABORT = _core_.ID_ABORT
 ID_RETRY = _core_.ID_RETRY
 ID_IGNORE = _core_.ID_IGNORE
 ID_ABORT = _core_.ID_ABORT
 ID_RETRY = _core_.ID_RETRY
 ID_IGNORE = _core_.ID_IGNORE
+ID_ADD = _core_.ID_ADD
+ID_REMOVE = _core_.ID_REMOVE
+ID_UP = _core_.ID_UP
+ID_DOWN = _core_.ID_DOWN
+ID_HOME = _core_.ID_HOME
+ID_REFRESH = _core_.ID_REFRESH
+ID_STOP = _core_.ID_STOP
+ID_INDEX = _core_.ID_INDEX
+ID_BOLD = _core_.ID_BOLD
+ID_ITALIC = _core_.ID_ITALIC
+ID_JUSTIFY_CENTER = _core_.ID_JUSTIFY_CENTER
+ID_JUSTIFY_FILL = _core_.ID_JUSTIFY_FILL
+ID_JUSTIFY_RIGHT = _core_.ID_JUSTIFY_RIGHT
+ID_JUSTIFY_LEFT = _core_.ID_JUSTIFY_LEFT
+ID_UNDERLINE = _core_.ID_UNDERLINE
+ID_INDENT = _core_.ID_INDENT
+ID_UNINDENT = _core_.ID_UNINDENT
+ID_ZOOM_100 = _core_.ID_ZOOM_100
+ID_ZOOM_FIT = _core_.ID_ZOOM_FIT
+ID_ZOOM_IN = _core_.ID_ZOOM_IN
+ID_ZOOM_OUT = _core_.ID_ZOOM_OUT
+ID_UNDELETE = _core_.ID_UNDELETE
+ID_REVERT_TO_SAVED = _core_.ID_REVERT_TO_SAVED
 ID_HIGHEST = _core_.ID_HIGHEST
 OPEN = _core_.OPEN
 SAVE = _core_.SAVE
 ID_HIGHEST = _core_.ID_HIGHEST
 OPEN = _core_.OPEN
 SAVE = _core_.SAVE
@@ -204,6 +280,8 @@ PD_CAN_ABORT = _core_.PD_CAN_ABORT
 PD_ELAPSED_TIME = _core_.PD_ELAPSED_TIME
 PD_ESTIMATED_TIME = _core_.PD_ESTIMATED_TIME
 PD_REMAINING_TIME = _core_.PD_REMAINING_TIME
 PD_ELAPSED_TIME = _core_.PD_ELAPSED_TIME
 PD_ESTIMATED_TIME = _core_.PD_ESTIMATED_TIME
 PD_REMAINING_TIME = _core_.PD_REMAINING_TIME
+PD_SMOOTH = _core_.PD_SMOOTH
+PD_CAN_SKIP = _core_.PD_CAN_SKIP
 DD_NEW_DIR_BUTTON = _core_.DD_NEW_DIR_BUTTON
 DD_DEFAULT_STYLE = _core_.DD_DEFAULT_STYLE
 MENU_TEAROFF = _core_.MENU_TEAROFF
 DD_NEW_DIR_BUTTON = _core_.DD_NEW_DIR_BUTTON
 DD_DEFAULT_STYLE = _core_.DD_DEFAULT_STYLE
 MENU_TEAROFF = _core_.MENU_TEAROFF
@@ -272,6 +350,9 @@ BORDER_RAISED = _core_.BORDER_RAISED
 BORDER_SUNKEN = _core_.BORDER_SUNKEN
 BORDER_DOUBLE = _core_.BORDER_DOUBLE
 BORDER_MASK = _core_.BORDER_MASK
 BORDER_SUNKEN = _core_.BORDER_SUNKEN
 BORDER_DOUBLE = _core_.BORDER_DOUBLE
 BORDER_MASK = _core_.BORDER_MASK
+BG_STYLE_SYSTEM = _core_.BG_STYLE_SYSTEM
+BG_STYLE_COLOUR = _core_.BG_STYLE_COLOUR
+BG_STYLE_CUSTOM = _core_.BG_STYLE_CUSTOM
 DEFAULT = _core_.DEFAULT
 DECORATIVE = _core_.DECORATIVE
 ROMAN = _core_.ROMAN
 DEFAULT = _core_.DEFAULT
 DECORATIVE = _core_.DECORATIVE
 ROMAN = _core_.ROMAN
@@ -624,10 +705,10 @@ CURSOR_MAX = _core_.CURSOR_MAX
 
 class Size(object):
     """
 
 class Size(object):
     """
-    wx.Size is a useful data structure used to represent the size of something.
-    It simply contians integer width and height proprtites.  In most places in
-    wxPython where a wx.Size is expected a (width,height) tuple can be used
-    instead.
+    wx.Size is a useful data structure used to represent the size of
+    something.  It simply contians integer width and height
+    proprtites.  In most places in wxPython where a wx.Size is
+    expected a (width, height) tuple can be used instead.
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSize instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSize instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -736,9 +817,8 @@ class Size(object):
         """
         SetDefaults(self, Size size)
 
         """
         SetDefaults(self, Size size)
 
-        Combine this size with the other one replacing the default
-        components of this object (i.e. equal to -1) with those of the
-        other.
+        Combine this size with the other one replacing the default components
+        of this object (i.e. equal to -1) with those of the other.
         """
         return _core_.Size_SetDefaults(*args, **kwargs)
 
         """
         return _core_.Size_SetDefaults(*args, **kwargs)
 
@@ -750,7 +830,7 @@ class Size(object):
         """
         return _core_.Size_Get(*args, **kwargs)
 
         """
         return _core_.Size_Get(*args, **kwargs)
 
-    asTuple = Get
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Size'+str(self.Get())
     def __len__(self):                   return len(self.Get())
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Size'+str(self.Get())
     def __len__(self):                   return len(self.Get())
@@ -775,9 +855,9 @@ _core_.Size_swigregister(SizePtr)
 
 class RealPoint(object):
     """
 
 class RealPoint(object):
     """
-    A data structure for representing a point or position with floating point x
-    and y properties.  In wxPython most places that expect a wx.RealPoint can also
-    accept a (x,y) tuple.
+    A data structure for representing a point or position with floating
+    point x and y properties.  In wxPython most places that expect a
+    wx.RealPoint can also accept a (x,y) tuple.
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxRealPoint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxRealPoint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -847,7 +927,7 @@ class RealPoint(object):
         """
         return _core_.RealPoint_Get(*args, **kwargs)
 
         """
         return _core_.RealPoint_Get(*args, **kwargs)
 
-    asTuple = Get
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.RealPoint'+str(self.Get())
     def __len__(self):                   return len(self.Get())
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.RealPoint'+str(self.Get())
     def __len__(self):                   return len(self.Get())
@@ -872,9 +952,9 @@ _core_.RealPoint_swigregister(RealPointPtr)
 
 class Point(object):
     """
 
 class Point(object):
     """
-    A data structure for representing a point or position with integer x and y
-    properties.  Most places in wxPython that expect a wx.Point can also accept a
-    (x,y) tuple.
+    A data structure for representing a point or position with integer x
+    and y properties.  Most places in wxPython that expect a wx.Point can
+    also accept a (x,y) tuple.
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPoint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPoint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -960,7 +1040,7 @@ class Point(object):
         """
         return _core_.Point_Get(*args, **kwargs)
 
         """
         return _core_.Point_Get(*args, **kwargs)
 
-    asTuple = Get
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Point'+str(self.Get())
     def __len__(self):                   return len(self.Get())
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Point'+str(self.Get())
     def __len__(self):                   return len(self.Get())
@@ -985,9 +1065,9 @@ _core_.Point_swigregister(PointPtr)
 
 class Rect(object):
     """
 
 class Rect(object):
     """
-    A class for representing and manipulating rectangles.  It has x, y, width and
-    height properties.  In wxPython most palces that expect a wx.Rect can also
-    accept a (x,y,width,height) tuple.
+    A class for representing and manipulating rectangles.  It has x, y,
+    width and height properties.  In wxPython most palces that expect a
+    wx.Rect can also accept a (x,y,width,height) tuple.
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxRect instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxRect instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -1114,8 +1194,24 @@ class Rect(object):
         """
         Inflate(self, int dx, int dy) -> Rect
 
         """
         Inflate(self, int dx, int dy) -> Rect
 
-        Increase the rectangle size by dx in x direction and dy in y direction. Both
-        (or one of) parameters may be negative to decrease the rectangle size.
+        Increases the size of the rectangle.
+
+        The left border is moved farther left and the right border is moved
+        farther right by ``dx``. The upper border is moved farther up and the
+        bottom border is moved farther down by ``dy``. (Note the the width and
+        height of the rectangle thus change by ``2*dx`` and ``2*dy``,
+        respectively.) If one or both of ``dx`` and ``dy`` are negative, the
+        opposite happens: the rectangle size decreases in the respective
+        direction.
+
+        The change is made to the rectangle inplace, if instead you need a
+        copy that is inflated, preserving the original then make the copy
+        first::
+
+            copy = wx.Rect(*original)
+            copy.Inflate(10,15)
+
+
         """
         return _core_.Rect_Inflate(*args, **kwargs)
 
         """
         return _core_.Rect_Inflate(*args, **kwargs)
 
@@ -1123,9 +1219,9 @@ class Rect(object):
         """
         Deflate(self, int dx, int dy) -> Rect
 
         """
         Deflate(self, int dx, int dy) -> Rect
 
-        Decrease the rectangle size by dx in x direction and dy in y direction. Both
-        (or one of) parameters may be negative to increase the rectngle size. This
-        method is the opposite of Inflate.
+        Decrease the rectangle size. This method is the opposite of `Inflate`
+        in that Deflate(a,b) is equivalent to Inflate(-a,-b).  Please refer to
+        `Inflate` for a full description.
         """
         return _core_.Rect_Deflate(*args, **kwargs)
 
         """
         return _core_.Rect_Deflate(*args, **kwargs)
 
@@ -1133,9 +1229,9 @@ class Rect(object):
         """
         OffsetXY(self, int dx, int dy)
 
         """
         OffsetXY(self, int dx, int dy)
 
-        Moves the rectangle by the specified offset. If dx is positive, the rectangle
-        is moved to the right, if dy is positive, it is moved to the bottom, otherwise
-        it is moved to the left or top respectively.
+        Moves the rectangle by the specified offset. If dx is positive, the
+        rectangle is moved to the right, if dy is positive, it is moved to the
+        bottom, otherwise it is moved to the left or top respectively.
         """
         return _core_.Rect_OffsetXY(*args, **kwargs)
 
         """
         return _core_.Rect_OffsetXY(*args, **kwargs)
 
@@ -1151,10 +1247,18 @@ class Rect(object):
         """
         Intersect(self, Rect rect) -> Rect
 
         """
         Intersect(self, Rect rect) -> Rect
 
-        Return the intersectsion of this rectangle and rect.
+        Returns the intersectsion of this rectangle and rect.
         """
         return _core_.Rect_Intersect(*args, **kwargs)
 
         """
         return _core_.Rect_Intersect(*args, **kwargs)
 
+    def Union(*args, **kwargs):
+        """
+        Union(self, Rect rect) -> Rect
+
+        Returns the union of this rectangle and rect.
+        """
+        return _core_.Rect_Union(*args, **kwargs)
+
     def __add__(*args, **kwargs):
         """
         __add__(self, Rect rect) -> Rect
     def __add__(*args, **kwargs):
         """
         __add__(self, Rect rect) -> Rect
@@ -1231,7 +1335,7 @@ class Rect(object):
         """
         return _core_.Rect_Get(*args, **kwargs)
 
         """
         return _core_.Rect_Get(*args, **kwargs)
 
-    asTuple = Get
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Rect'+str(self.Get())
     def __len__(self):                   return len(self.Get())
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Rect'+str(self.Get())
     def __len__(self):                   return len(self.Get())
@@ -1274,6 +1378,16 @@ def RectPS(*args, **kwargs):
     val.thisown = 1
     return val
 
     val.thisown = 1
     return val
 
+def RectS(*args, **kwargs):
+    """
+    RectS(Size size) -> Rect
+
+    Create a new Rect from a size only.
+    """
+    val = _core_.new_RectS(*args, **kwargs)
+    val.thisown = 1
+    return val
+
 
 def IntersectRect(*args, **kwargs):
     """
 
 def IntersectRect(*args, **kwargs):
     """
@@ -1285,7 +1399,10 @@ def IntersectRect(*args, **kwargs):
 #---------------------------------------------------------------------------
 
 class Point2D(object):
 #---------------------------------------------------------------------------
 
 class Point2D(object):
-    """wx.Point2Ds represent a point or a vector in a 2d coordinate system with floating point values."""
+    """
+    wx.Point2Ds represent a point or a vector in a 2d coordinate system
+    with floating point values.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPoint2D instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPoint2D instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1406,7 +1523,7 @@ class Point2D(object):
         """
         return _core_.Point2D_Get(*args, **kwargs)
 
         """
         return _core_.Point2D_Get(*args, **kwargs)
 
-    asTuple = Get
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Point2D'+str(self.Get())
     def __len__(self):                   return len(self.Get())
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.Point2D'+str(self.Get())
     def __len__(self):                   return len(self.Get())
@@ -1453,6 +1570,7 @@ FromStart = _core_.FromStart
 FromCurrent = _core_.FromCurrent
 FromEnd = _core_.FromEnd
 class InputStream(object):
 FromCurrent = _core_.FromCurrent
 FromEnd = _core_.FromEnd
 class InputStream(object):
+    """Proxy of C++ InputStream class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyInputStream instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyInputStream instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1461,6 +1579,12 @@ class InputStream(object):
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
+    def __del__(self, destroy=_core_.delete_InputStream):
+        """__del__(self)"""
+        try:
+            if self.thisown: destroy(self)
+        except: pass
+
     def close(*args, **kwargs):
         """close(self)"""
         return _core_.InputStream_close(*args, **kwargs)
     def close(*args, **kwargs):
         """close(self)"""
         return _core_.InputStream_close(*args, **kwargs)
@@ -1536,6 +1660,7 @@ DefaultPosition = cvar.DefaultPosition
 DefaultSize = cvar.DefaultSize
 
 class OutputStream(object):
 DefaultSize = cvar.DefaultSize
 
 class OutputStream(object):
+    """Proxy of C++ OutputStream class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxOutputStream instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxOutputStream instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -1554,6 +1679,7 @@ _core_.OutputStream_swigregister(OutputStreamPtr)
 #---------------------------------------------------------------------------
 
 class FSFile(Object):
 #---------------------------------------------------------------------------
 
 class FSFile(Object):
+    """Proxy of C++ FSFile class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFSFile instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFSFile instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1565,6 +1691,8 @@ class FSFile(Object):
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
+        self.thisown = 0   # It will normally be deleted by the user of the wxFileSystem
+
     def __del__(self, destroy=_core_.delete_FSFile):
         """__del__(self)"""
         try:
     def __del__(self, destroy=_core_.delete_FSFile):
         """__del__(self)"""
         try:
@@ -1600,6 +1728,7 @@ class FSFilePtr(FSFile):
 _core_.FSFile_swigregister(FSFilePtr)
 
 class CPPFileSystemHandler(object):
 _core_.FSFile_swigregister(FSFilePtr)
 
 class CPPFileSystemHandler(object):
+    """Proxy of C++ CPPFileSystemHandler class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFileSystemHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFileSystemHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -1612,6 +1741,7 @@ class CPPFileSystemHandlerPtr(CPPFileSystemHandler):
 _core_.CPPFileSystemHandler_swigregister(CPPFileSystemHandlerPtr)
 
 class FileSystemHandler(CPPFileSystemHandler):
 _core_.CPPFileSystemHandler_swigregister(CPPFileSystemHandlerPtr)
 
 class FileSystemHandler(CPPFileSystemHandler):
+    """Proxy of C++ FileSystemHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyFileSystemHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyFileSystemHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1671,6 +1801,7 @@ class FileSystemHandlerPtr(FileSystemHandler):
 _core_.FileSystemHandler_swigregister(FileSystemHandlerPtr)
 
 class FileSystem(Object):
 _core_.FileSystemHandler_swigregister(FileSystemHandlerPtr)
 
 class FileSystem(Object):
+    """Proxy of C++ FileSystem class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFileSystem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFileSystem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1706,20 +1837,25 @@ class FileSystem(Object):
         return _core_.FileSystem_FindNext(*args, **kwargs)
 
     def AddHandler(*args, **kwargs):
         return _core_.FileSystem_FindNext(*args, **kwargs)
 
     def AddHandler(*args, **kwargs):
-        """FileSystem.AddHandler(CPPFileSystemHandler handler)"""
+        """AddHandler(CPPFileSystemHandler handler)"""
         return _core_.FileSystem_AddHandler(*args, **kwargs)
 
     AddHandler = staticmethod(AddHandler)
     def CleanUpHandlers(*args, **kwargs):
         return _core_.FileSystem_AddHandler(*args, **kwargs)
 
     AddHandler = staticmethod(AddHandler)
     def CleanUpHandlers(*args, **kwargs):
-        """FileSystem.CleanUpHandlers()"""
+        """CleanUpHandlers()"""
         return _core_.FileSystem_CleanUpHandlers(*args, **kwargs)
 
     CleanUpHandlers = staticmethod(CleanUpHandlers)
     def FileNameToURL(*args, **kwargs):
         return _core_.FileSystem_CleanUpHandlers(*args, **kwargs)
 
     CleanUpHandlers = staticmethod(CleanUpHandlers)
     def FileNameToURL(*args, **kwargs):
-        """FileSystem.FileNameToURL(String filename) -> String"""
+        """FileNameToURL(String filename) -> String"""
         return _core_.FileSystem_FileNameToURL(*args, **kwargs)
 
     FileNameToURL = staticmethod(FileNameToURL)
         return _core_.FileSystem_FileNameToURL(*args, **kwargs)
 
     FileNameToURL = staticmethod(FileNameToURL)
+    def URLToFileName(*args, **kwargs):
+        """URLToFileName(String url) -> String"""
+        return _core_.FileSystem_URLToFileName(*args, **kwargs)
+
+    URLToFileName = staticmethod(URLToFileName)
 
 class FileSystemPtr(FileSystem):
     def __init__(self, this):
 
 class FileSystemPtr(FileSystem):
     def __init__(self, this):
@@ -1740,11 +1876,12 @@ def FileSystem_FileNameToURL(*args, **kwargs):
     """FileSystem_FileNameToURL(String filename) -> String"""
     return _core_.FileSystem_FileNameToURL(*args, **kwargs)
 
     """FileSystem_FileNameToURL(String filename) -> String"""
     return _core_.FileSystem_FileNameToURL(*args, **kwargs)
 
-
 def FileSystem_URLToFileName(*args, **kwargs):
     """FileSystem_URLToFileName(String url) -> String"""
     return _core_.FileSystem_URLToFileName(*args, **kwargs)
 def FileSystem_URLToFileName(*args, **kwargs):
     """FileSystem_URLToFileName(String url) -> String"""
     return _core_.FileSystem_URLToFileName(*args, **kwargs)
+
 class InternetFSHandler(CPPFileSystemHandler):
 class InternetFSHandler(CPPFileSystemHandler):
+    """Proxy of C++ InternetFSHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxInternetFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxInternetFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1770,6 +1907,7 @@ class InternetFSHandlerPtr(InternetFSHandler):
 _core_.InternetFSHandler_swigregister(InternetFSHandlerPtr)
 
 class ZipFSHandler(CPPFileSystemHandler):
 _core_.InternetFSHandler_swigregister(InternetFSHandlerPtr)
 
 class ZipFSHandler(CPPFileSystemHandler):
+    """Proxy of C++ ZipFSHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxZipFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxZipFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1814,16 +1952,25 @@ def __wxMemoryFSHandler_AddFile_wxBitmap(*args, **kwargs):
 def __wxMemoryFSHandler_AddFile_Data(*args, **kwargs):
     """__wxMemoryFSHandler_AddFile_Data(String filename, PyObject data)"""
     return _core_.__wxMemoryFSHandler_AddFile_Data(*args, **kwargs)
 def __wxMemoryFSHandler_AddFile_Data(*args, **kwargs):
     """__wxMemoryFSHandler_AddFile_Data(String filename, PyObject data)"""
     return _core_.__wxMemoryFSHandler_AddFile_Data(*args, **kwargs)
-def MemoryFSHandler_AddFile(filename, a, b=''):
-    if isinstance(a, wx.Image):
-        __wxMemoryFSHandler_AddFile_wxImage(filename, a, b)
-    elif isinstance(a, wx.Bitmap):
-        __wxMemoryFSHandler_AddFile_wxBitmap(filename, a, b)
-    elif type(a) == str:
-        __wxMemoryFSHandler_AddFile_Data(filename, a)
-    else: raise TypeError, 'wx.Image, wx.Bitmap or string expected'
+def MemoryFSHandler_AddFile(filename, dataItem, imgType=-1):
+    """
+    Add 'file' to the memory filesystem.  The dataItem parameter can
+    either be a `wx.Bitmap`, `wx.Image` or a string that can contain
+    arbitrary data.  If a bitmap or image is used then the imgType
+    parameter should specify what kind of image file it should be
+    written as, wx.BITMAP_TYPE_PNG, etc.
+    """
+    if isinstance(dataItem, wx.Image):
+        __wxMemoryFSHandler_AddFile_wxImage(filename, dataItem, imgType)
+    elif isinstance(dataItem, wx.Bitmap):
+        __wxMemoryFSHandler_AddFile_wxBitmap(filename, dataItem, imgType)
+    elif type(dataItem) == str:
+        __wxMemoryFSHandler_AddFile_Data(filename, dataItem)
+    else:
+        raise TypeError, 'wx.Image, wx.Bitmap or string expected'
 
 class MemoryFSHandler(CPPFileSystemHandler):
 
 class MemoryFSHandler(CPPFileSystemHandler):
+    """Proxy of C++ MemoryFSHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMemoryFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMemoryFSHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1833,7 +1980,7 @@ class MemoryFSHandler(CPPFileSystemHandler):
         self.thisown = 1
         del newobj.thisown
     def RemoveFile(*args, **kwargs):
         self.thisown = 1
         del newobj.thisown
     def RemoveFile(*args, **kwargs):
-        """MemoryFSHandler.RemoveFile(String filename)"""
+        """RemoveFile(String filename)"""
         return _core_.MemoryFSHandler_RemoveFile(*args, **kwargs)
 
     RemoveFile = staticmethod(RemoveFile)
         return _core_.MemoryFSHandler_RemoveFile(*args, **kwargs)
 
     RemoveFile = staticmethod(RemoveFile)
@@ -1869,6 +2016,7 @@ def MemoryFSHandler_RemoveFile(*args, **kwargs):
 #---------------------------------------------------------------------------
 
 class ImageHandler(Object):
 #---------------------------------------------------------------------------
 
 class ImageHandler(Object):
+    """Proxy of C++ ImageHandler class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxImageHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxImageHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -1917,6 +2065,7 @@ class ImageHandlerPtr(ImageHandler):
 _core_.ImageHandler_swigregister(ImageHandlerPtr)
 
 class ImageHistogram(object):
 _core_.ImageHandler_swigregister(ImageHandlerPtr)
 
 class ImageHistogram(object):
+    """Proxy of C++ ImageHistogram class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxImageHistogram instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxImageHistogram instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -1927,7 +2076,7 @@ class ImageHistogram(object):
         del newobj.thisown
     def MakeKey(*args, **kwargs):
         """
         del newobj.thisown
     def MakeKey(*args, **kwargs):
         """
-        ImageHistogram.MakeKey(unsigned char r, unsigned char g, unsigned char b) -> unsigned long
+        MakeKey(unsigned char r, unsigned char g, unsigned char b) -> unsigned long
 
         Get the key in the histogram for the given RGB values
         """
 
         Get the key in the histogram for the given RGB values
         """
@@ -1938,9 +2087,9 @@ class ImageHistogram(object):
         """
         FindFirstUnusedColour(int startR=1, int startG=0, int startB=0) -> (success, r, g, b)
 
         """
         FindFirstUnusedColour(int startR=1, int startG=0, int startB=0) -> (success, r, g, b)
 
-        Find first colour that is not used in the image and has higher RGB values than
-        startR, startG, startB.  Returns a tuple consisting of a success flag and rgb
-        values.
+        Find first colour that is not used in the image and has higher RGB
+        values than startR, startG, startB.  Returns a tuple consisting of a
+        success flag and rgb values.
         """
         return _core_.ImageHistogram_FindFirstUnusedColour(*args, **kwargs)
 
         """
         return _core_.ImageHistogram_FindFirstUnusedColour(*args, **kwargs)
 
@@ -1961,6 +2110,7 @@ def ImageHistogram_MakeKey(*args, **kwargs):
     return _core_.ImageHistogram_MakeKey(*args, **kwargs)
 
 class Image(Object):
     return _core_.ImageHistogram_MakeKey(*args, **kwargs)
 
 class Image(Object):
+    """Proxy of C++ Image class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxImage instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxImage instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2031,23 +2181,51 @@ class Image(Object):
         """
         FindFirstUnusedColour(int startR=1, int startG=0, int startB=0) -> (success, r, g, b)
 
         """
         FindFirstUnusedColour(int startR=1, int startG=0, int startB=0) -> (success, r, g, b)
 
-        Find first colour that is not used in the image and has higher RGB values than
-        startR, startG, startB.  Returns a tuple consisting of a success flag and rgb
-        values.
+        Find first colour that is not used in the image and has higher RGB
+        values than startR, startG, startB.  Returns a tuple consisting of a
+        success flag and rgb values.
         """
         return _core_.Image_FindFirstUnusedColour(*args, **kwargs)
 
         """
         return _core_.Image_FindFirstUnusedColour(*args, **kwargs)
 
+    def ConvertAlphaToMask(*args, **kwargs):
+        """
+        ConvertAlphaToMask(self, byte threshold=128) -> bool
+
+        If the image has alpha channel, this method converts it to mask. All pixels
+        with alpha value less than ``threshold`` are replaced with mask colour and the
+        alpha channel is removed. Mask colour is chosen automatically using
+        `FindFirstUnusedColour`.
+
+        If the image image doesn't have alpha channel, ConvertAlphaToMask does
+        nothing.
+        """
+        return _core_.Image_ConvertAlphaToMask(*args, **kwargs)
+
+    def ConvertColourToAlpha(*args, **kwargs):
+        """
+        ConvertColourToAlpha(self, unsigned char r, unsigned char g, unsigned char b) -> bool
+
+        This method converts an image where the original alpha information is
+        only available as a shades of a colour (actually shades of grey)
+        typically when you draw anti-aliased text into a bitmap. The DC
+        drawing routines draw grey values on the black background although
+        they actually mean to draw white with differnt alpha values.  This
+        method reverses it, assuming a black (!) background and white text.
+        The method will then fill up the whole image with the colour given.
+        """
+        return _core_.Image_ConvertColourToAlpha(*args, **kwargs)
+
     def SetMaskFromImage(*args, **kwargs):
         """SetMaskFromImage(self, Image mask, byte mr, byte mg, byte mb) -> bool"""
         return _core_.Image_SetMaskFromImage(*args, **kwargs)
 
     def CanRead(*args, **kwargs):
     def SetMaskFromImage(*args, **kwargs):
         """SetMaskFromImage(self, Image mask, byte mr, byte mg, byte mb) -> bool"""
         return _core_.Image_SetMaskFromImage(*args, **kwargs)
 
     def CanRead(*args, **kwargs):
-        """Image.CanRead(String name) -> bool"""
+        """CanRead(String name) -> bool"""
         return _core_.Image_CanRead(*args, **kwargs)
 
     CanRead = staticmethod(CanRead)
     def GetImageCount(*args, **kwargs):
         return _core_.Image_CanRead(*args, **kwargs)
 
     CanRead = staticmethod(CanRead)
     def GetImageCount(*args, **kwargs):
-        """Image.GetImageCount(String name, long type=BITMAP_TYPE_ANY) -> int"""
+        """GetImageCount(String name, long type=BITMAP_TYPE_ANY) -> int"""
         return _core_.Image_GetImageCount(*args, **kwargs)
 
     GetImageCount = staticmethod(GetImageCount)
         return _core_.Image_GetImageCount(*args, **kwargs)
 
     GetImageCount = staticmethod(GetImageCount)
@@ -2068,7 +2246,7 @@ class Image(Object):
         return _core_.Image_SaveMimeFile(*args, **kwargs)
 
     def CanReadStream(*args, **kwargs):
         return _core_.Image_SaveMimeFile(*args, **kwargs)
 
     def CanReadStream(*args, **kwargs):
-        """Image.CanReadStream(InputStream stream) -> bool"""
+        """CanReadStream(InputStream stream) -> bool"""
         return _core_.Image_CanReadStream(*args, **kwargs)
 
     CanReadStream = staticmethod(CanReadStream)
         return _core_.Image_CanReadStream(*args, **kwargs)
 
     CanReadStream = staticmethod(CanReadStream)
@@ -2219,27 +2397,27 @@ class Image(Object):
         return _core_.Image_ComputeHistogram(*args, **kwargs)
 
     def AddHandler(*args, **kwargs):
         return _core_.Image_ComputeHistogram(*args, **kwargs)
 
     def AddHandler(*args, **kwargs):
-        """Image.AddHandler(ImageHandler handler)"""
+        """AddHandler(ImageHandler handler)"""
         return _core_.Image_AddHandler(*args, **kwargs)
 
     AddHandler = staticmethod(AddHandler)
     def InsertHandler(*args, **kwargs):
         return _core_.Image_AddHandler(*args, **kwargs)
 
     AddHandler = staticmethod(AddHandler)
     def InsertHandler(*args, **kwargs):
-        """Image.InsertHandler(ImageHandler handler)"""
+        """InsertHandler(ImageHandler handler)"""
         return _core_.Image_InsertHandler(*args, **kwargs)
 
     InsertHandler = staticmethod(InsertHandler)
     def RemoveHandler(*args, **kwargs):
         return _core_.Image_InsertHandler(*args, **kwargs)
 
     InsertHandler = staticmethod(InsertHandler)
     def RemoveHandler(*args, **kwargs):
-        """Image.RemoveHandler(String name) -> bool"""
+        """RemoveHandler(String name) -> bool"""
         return _core_.Image_RemoveHandler(*args, **kwargs)
 
     RemoveHandler = staticmethod(RemoveHandler)
     def GetImageExtWildcard(*args, **kwargs):
         return _core_.Image_RemoveHandler(*args, **kwargs)
 
     RemoveHandler = staticmethod(RemoveHandler)
     def GetImageExtWildcard(*args, **kwargs):
-        """Image.GetImageExtWildcard() -> String"""
+        """GetImageExtWildcard() -> String"""
         return _core_.Image_GetImageExtWildcard(*args, **kwargs)
 
     GetImageExtWildcard = staticmethod(GetImageExtWildcard)
     def ConvertToBitmap(*args, **kwargs):
         return _core_.Image_GetImageExtWildcard(*args, **kwargs)
 
     GetImageExtWildcard = staticmethod(GetImageExtWildcard)
     def ConvertToBitmap(*args, **kwargs):
-        """ConvertToBitmap(self) -> Bitmap"""
+        """ConvertToBitmap(self, int depth=-1) -> Bitmap"""
         return _core_.Image_ConvertToBitmap(*args, **kwargs)
 
     def ConvertToMonoBitmap(*args, **kwargs):
         return _core_.Image_ConvertToBitmap(*args, **kwargs)
 
     def ConvertToMonoBitmap(*args, **kwargs):
@@ -2273,12 +2451,9 @@ def ImageFromStreamMime(*args, **kwargs):
     val.thisown = 1
     return val
 
     val.thisown = 1
     return val
 
-def EmptyImage(*args):
-    """
-    EmptyImage(int width=0, int height=0, bool clear=True) -> Image
-    EmptyImage(Size size, bool clear=True) -> Image
-    """
-    val = _core_.new_EmptyImage(*args)
+def EmptyImage(*args, **kwargs):
+    """EmptyImage(int width=0, int height=0, bool clear=True) -> Image"""
+    val = _core_.new_EmptyImage(*args, **kwargs)
     val.thisown = 1
     return val
 
     val.thisown = 1
     return val
 
@@ -2294,6 +2469,12 @@ def ImageFromData(*args, **kwargs):
     val.thisown = 1
     return val
 
     val.thisown = 1
     return val
 
+def ImageFromDataWithAlpha(*args, **kwargs):
+    """ImageFromDataWithAlpha(int width, int height, unsigned char data, unsigned char alpha) -> Image"""
+    val = _core_.new_ImageFromDataWithAlpha(*args, **kwargs)
+    val.thisown = 1
+    return val
+
 def Image_CanRead(*args, **kwargs):
     """Image_CanRead(String name) -> bool"""
     return _core_.Image_CanRead(*args, **kwargs)
 def Image_CanRead(*args, **kwargs):
     """Image_CanRead(String name) -> bool"""
     return _core_.Image_CanRead(*args, **kwargs)
@@ -2322,10 +2503,13 @@ def Image_GetImageExtWildcard(*args, **kwargs):
     """Image_GetImageExtWildcard() -> String"""
     return _core_.Image_GetImageExtWildcard(*args, **kwargs)
 
     """Image_GetImageExtWildcard() -> String"""
     return _core_.Image_GetImageExtWildcard(*args, **kwargs)
 
+def InitAllImageHandlers():
+    """
+    The former functionality of InitAllImageHanders is now done internal to
+    the _core_ extension module and so this function has become a simple NOP.
+    """
+    pass
 
 
-def InitAllImageHandlers(*args, **kwargs):
-    """InitAllImageHandlers()"""
-    return _core_.InitAllImageHandlers(*args, **kwargs)
 IMAGE_RESOLUTION_INCHES = _core_.IMAGE_RESOLUTION_INCHES
 IMAGE_RESOLUTION_CM = _core_.IMAGE_RESOLUTION_CM
 BMP_24BPP = _core_.BMP_24BPP
 IMAGE_RESOLUTION_INCHES = _core_.IMAGE_RESOLUTION_INCHES
 IMAGE_RESOLUTION_CM = _core_.IMAGE_RESOLUTION_CM
 BMP_24BPP = _core_.BMP_24BPP
@@ -2338,6 +2522,7 @@ BMP_4BPP = _core_.BMP_4BPP
 BMP_1BPP = _core_.BMP_1BPP
 BMP_1BPP_BW = _core_.BMP_1BPP_BW
 class BMPHandler(ImageHandler):
 BMP_1BPP = _core_.BMP_1BPP
 BMP_1BPP_BW = _core_.BMP_1BPP_BW
 class BMPHandler(ImageHandler):
+    """Proxy of C++ BMPHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxBMPHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxBMPHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2361,6 +2546,7 @@ IMAGE_OPTION_RESOLUTION = cvar.IMAGE_OPTION_RESOLUTION
 IMAGE_OPTION_RESOLUTIONUNIT = cvar.IMAGE_OPTION_RESOLUTIONUNIT
 
 class ICOHandler(BMPHandler):
 IMAGE_OPTION_RESOLUTIONUNIT = cvar.IMAGE_OPTION_RESOLUTIONUNIT
 
 class ICOHandler(BMPHandler):
+    """Proxy of C++ ICOHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxICOHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxICOHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2378,6 +2564,7 @@ class ICOHandlerPtr(ICOHandler):
 _core_.ICOHandler_swigregister(ICOHandlerPtr)
 
 class CURHandler(ICOHandler):
 _core_.ICOHandler_swigregister(ICOHandlerPtr)
 
 class CURHandler(ICOHandler):
+    """Proxy of C++ CURHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCURHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCURHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2395,6 +2582,7 @@ class CURHandlerPtr(CURHandler):
 _core_.CURHandler_swigregister(CURHandlerPtr)
 
 class ANIHandler(CURHandler):
 _core_.CURHandler_swigregister(CURHandlerPtr)
 
 class ANIHandler(CURHandler):
+    """Proxy of C++ ANIHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxANIHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxANIHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2412,6 +2600,7 @@ class ANIHandlerPtr(ANIHandler):
 _core_.ANIHandler_swigregister(ANIHandlerPtr)
 
 class PNGHandler(ImageHandler):
 _core_.ANIHandler_swigregister(ANIHandlerPtr)
 
 class PNGHandler(ImageHandler):
+    """Proxy of C++ PNGHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPNGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPNGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2429,6 +2618,7 @@ class PNGHandlerPtr(PNGHandler):
 _core_.PNGHandler_swigregister(PNGHandlerPtr)
 
 class GIFHandler(ImageHandler):
 _core_.PNGHandler_swigregister(PNGHandlerPtr)
 
 class GIFHandler(ImageHandler):
+    """Proxy of C++ GIFHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGIFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGIFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2446,6 +2636,7 @@ class GIFHandlerPtr(GIFHandler):
 _core_.GIFHandler_swigregister(GIFHandlerPtr)
 
 class PCXHandler(ImageHandler):
 _core_.GIFHandler_swigregister(GIFHandlerPtr)
 
 class PCXHandler(ImageHandler):
+    """Proxy of C++ PCXHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPCXHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPCXHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2463,6 +2654,7 @@ class PCXHandlerPtr(PCXHandler):
 _core_.PCXHandler_swigregister(PCXHandlerPtr)
 
 class JPEGHandler(ImageHandler):
 _core_.PCXHandler_swigregister(PCXHandlerPtr)
 
 class JPEGHandler(ImageHandler):
+    """Proxy of C++ JPEGHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxJPEGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxJPEGHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2480,6 +2672,7 @@ class JPEGHandlerPtr(JPEGHandler):
 _core_.JPEGHandler_swigregister(JPEGHandlerPtr)
 
 class PNMHandler(ImageHandler):
 _core_.JPEGHandler_swigregister(JPEGHandlerPtr)
 
 class PNMHandler(ImageHandler):
+    """Proxy of C++ PNMHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPNMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPNMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2497,6 +2690,7 @@ class PNMHandlerPtr(PNMHandler):
 _core_.PNMHandler_swigregister(PNMHandlerPtr)
 
 class XPMHandler(ImageHandler):
 _core_.PNMHandler_swigregister(PNMHandlerPtr)
 
 class XPMHandler(ImageHandler):
+    """Proxy of C++ XPMHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxXPMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxXPMHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2514,6 +2708,7 @@ class XPMHandlerPtr(XPMHandler):
 _core_.XPMHandler_swigregister(XPMHandlerPtr)
 
 class TIFFHandler(ImageHandler):
 _core_.XPMHandler_swigregister(XPMHandlerPtr)
 
 class TIFFHandler(ImageHandler):
+    """Proxy of C++ TIFFHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxTIFFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxTIFFHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2530,9 +2725,46 @@ class TIFFHandlerPtr(TIFFHandler):
         self.__class__ = TIFFHandler
 _core_.TIFFHandler_swigregister(TIFFHandlerPtr)
 
         self.__class__ = TIFFHandler
 _core_.TIFFHandler_swigregister(TIFFHandlerPtr)
 
+QUANTIZE_INCLUDE_WINDOWS_COLOURS = _core_.QUANTIZE_INCLUDE_WINDOWS_COLOURS
+QUANTIZE_FILL_DESTINATION_IMAGE = _core_.QUANTIZE_FILL_DESTINATION_IMAGE
+class Quantize(object):
+    """Performs quantization, or colour reduction, on a wxImage."""
+    def __init__(self): raise RuntimeError, "No constructor defined"
+    def __repr__(self):
+        return "<%s.%s; proxy of C++ wxQuantize instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
+    def Quantize(*args, **kwargs):
+        """
+        Quantize(Image src, Image dest, int desiredNoColours=236, int flags=wxQUANTIZE_INCLUDE_WINDOWS_COLOURS|wxQUANTIZE_FILL_DESTINATION_IMAGE) -> bool
+
+        Reduce the colours in the source image and put the result into the
+        destination image, setting the palette in the destination if
+        needed. Both images may be the same, to overwrite the source image.
+        """
+        return _core_.Quantize_Quantize(*args, **kwargs)
+
+    Quantize = staticmethod(Quantize)
+
+class QuantizePtr(Quantize):
+    def __init__(self, this):
+        self.this = this
+        if not hasattr(self,"thisown"): self.thisown = 0
+        self.__class__ = Quantize
+_core_.Quantize_swigregister(QuantizePtr)
+
+def Quantize_Quantize(*args, **kwargs):
+    """
+    Quantize_Quantize(Image src, Image dest, int desiredNoColours=236, int flags=wxQUANTIZE_INCLUDE_WINDOWS_COLOURS|wxQUANTIZE_FILL_DESTINATION_IMAGE) -> bool
+
+    Reduce the colours in the source image and put the result into the
+    destination image, setting the palette in the destination if
+    needed. Both images may be the same, to overwrite the source image.
+    """
+    return _core_.Quantize_Quantize(*args, **kwargs)
+
 #---------------------------------------------------------------------------
 
 class EvtHandler(Object):
 #---------------------------------------------------------------------------
 
 class EvtHandler(Object):
+    """Proxy of C++ EvtHandler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxEvtHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxEvtHandler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -2586,34 +2818,47 @@ class EvtHandler(Object):
         return _core_.EvtHandler_Disconnect(*args, **kwargs)
 
     def _setOORInfo(*args, **kwargs):
         return _core_.EvtHandler_Disconnect(*args, **kwargs)
 
     def _setOORInfo(*args, **kwargs):
-        """_setOORInfo(self, PyObject _self)"""
+        """_setOORInfo(self, PyObject _self, bool incref=True)"""
         return _core_.EvtHandler__setOORInfo(*args, **kwargs)
 
     def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
         """
         Bind an event to an event handler.
 
         return _core_.EvtHandler__setOORInfo(*args, **kwargs)
 
     def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
         """
         Bind an event to an event handler.
 
-          event     One of the EVT_* objects that specifies the
-                    type of event to bind,
+        :param event: One of the EVT_* objects that specifies the
+                      type of event to bind,
+
+        :param handler: A callable object to be invoked when the
+                      event is delivered to self.  Pass None to
+                      disconnect an event handler.
 
 
-          handler   A callable object to be invoked when the event
-                    is delivered to self.  Pass None to disconnect an
-                    event handler.
+        :param source: Sometimes the event originates from a
+                      different window than self, but you still
+                      want to catch it in self.  (For example, a
+                      button event delivered to a frame.)  By
+                      passing the source of the event, the event
+                      handling system is able to differentiate
+                      between the same event type from different
+                      controls.
 
 
-          source    Sometimes the event originates from a different window
-                    than self, but you still want to catch it in self.  (For
-                    example, a button event delivered to a frame.)  By
-                    passing the source of the event, the event handling
-                    system is able to differentiate between the same event
-                    type from different controls.
+        :param id: Used to spcify the event source by ID instead
+                   of instance.
 
 
-          id,id2    Used for menu IDs or for event types that require a
-                    range of IDs
+        :param id2: Used when it is desirable to bind a handler
+                      to a range of IDs, such as with EVT_MENU_RANGE.
         """
         if source is not None:
             id  = source.GetId()
         event.Bind(self, id, id2, handler)              
 
         """
         if source is not None:
             id  = source.GetId()
         event.Bind(self, id, id2, handler)              
 
+    def Unbind(self, event, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
+        """
+        Disconencts the event handler binding for event from self.
+        Returns True if successful.
+        """
+        if source is not None:
+            id  = source.GetId()
+        return event.Unbind(self, id, id2)              
 
 
 class EvtHandlerPtr(EvtHandler):
 
 
 class EvtHandlerPtr(EvtHandler):
@@ -2646,6 +2891,14 @@ class PyEventBinder(object):
         for et in self.evtType:
             target.Connect(id1, id2, et, function)
 
         for et in self.evtType:
             target.Connect(id1, id2, et, function)
 
+
+    def Unbind(self, target, id1, id2):
+        """Remove an event binding."""
+        success = 0
+        for et in self.evtType:
+            success += target.Disconnect(id1, id2, et)
+        return success != 0
+
     
     def __call__(self, *args):
         """
     
     def __call__(self, *args):
         """
@@ -2983,6 +3236,7 @@ EVT_CONTEXT_MENU = wx.PyEventBinder( wxEVT_CONTEXT_MENU )
 #---------------------------------------------------------------------------
 
 class Event(Object):
 #---------------------------------------------------------------------------
 
 class Event(Object):
+    """Proxy of C++ Event class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -3029,7 +3283,18 @@ class Event(Object):
         return _core_.Event_IsCommandEvent(*args, **kwargs)
 
     def Skip(*args, **kwargs):
         return _core_.Event_IsCommandEvent(*args, **kwargs)
 
     def Skip(*args, **kwargs):
-        """Skip(self, bool skip=True)"""
+        """
+        Skip(self, bool skip=True)
+
+        Called by an event handler, it controls whether additional event
+        handlers bound to this event will be called after the current event
+        handler returns.  Skip(false) (the default setting) will prevent
+        additional event handlers from being called and control will be
+        returned to the sender of the event immediately after the current
+        handler has finished.  Skip(True) will cause the event processing
+        system to continue searching for a handler function for this event.
+
+        """
         return _core_.Event_Skip(*args, **kwargs)
 
     def GetSkipped(*args, **kwargs):
         return _core_.Event_Skip(*args, **kwargs)
 
     def GetSkipped(*args, **kwargs):
@@ -3063,6 +3328,7 @@ _core_.Event_swigregister(EventPtr)
 #---------------------------------------------------------------------------
 
 class PropagationDisabler(object):
 #---------------------------------------------------------------------------
 
 class PropagationDisabler(object):
+    """Proxy of C++ PropagationDisabler class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPropagationDisabler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPropagationDisabler instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3086,6 +3352,7 @@ class PropagationDisablerPtr(PropagationDisabler):
 _core_.PropagationDisabler_swigregister(PropagationDisablerPtr)
 
 class PropagateOnce(object):
 _core_.PropagationDisabler_swigregister(PropagationDisablerPtr)
 
 class PropagateOnce(object):
+    """Proxy of C++ PropagateOnce class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPropagateOnce instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPropagateOnce instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3111,6 +3378,7 @@ _core_.PropagateOnce_swigregister(PropagateOncePtr)
 #---------------------------------------------------------------------------
 
 class CommandEvent(Event):
 #---------------------------------------------------------------------------
 
 class CommandEvent(Event):
+    """Proxy of C++ CommandEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3171,6 +3439,7 @@ _core_.CommandEvent_swigregister(CommandEventPtr)
 #---------------------------------------------------------------------------
 
 class NotifyEvent(CommandEvent):
 #---------------------------------------------------------------------------
 
 class NotifyEvent(CommandEvent):
+    """Proxy of C++ NotifyEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxNotifyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxNotifyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3202,6 +3471,7 @@ _core_.NotifyEvent_swigregister(NotifyEventPtr)
 #---------------------------------------------------------------------------
 
 class ScrollEvent(CommandEvent):
 #---------------------------------------------------------------------------
 
 class ScrollEvent(CommandEvent):
+    """Proxy of C++ ScrollEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxScrollEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxScrollEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3240,6 +3510,7 @@ _core_.ScrollEvent_swigregister(ScrollEventPtr)
 #---------------------------------------------------------------------------
 
 class ScrollWinEvent(Event):
 #---------------------------------------------------------------------------
 
 class ScrollWinEvent(Event):
+    """Proxy of C++ ScrollWinEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxScrollWinEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxScrollWinEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3280,6 +3551,7 @@ MOUSE_BTN_LEFT = _core_.MOUSE_BTN_LEFT
 MOUSE_BTN_MIDDLE = _core_.MOUSE_BTN_MIDDLE
 MOUSE_BTN_RIGHT = _core_.MOUSE_BTN_RIGHT
 class MouseEvent(Event):
 MOUSE_BTN_MIDDLE = _core_.MOUSE_BTN_MIDDLE
 MOUSE_BTN_RIGHT = _core_.MOUSE_BTN_RIGHT
 class MouseEvent(Event):
+    """Proxy of C++ MouseEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMouseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMouseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3332,6 +3604,20 @@ class MouseEvent(Event):
         """ShiftDown(self) -> bool"""
         return _core_.MouseEvent_ShiftDown(*args, **kwargs)
 
         """ShiftDown(self) -> bool"""
         return _core_.MouseEvent_ShiftDown(*args, **kwargs)
 
+    def CmdDown(*args, **kwargs):
+        """
+        CmdDown(self) -> bool
+
+        "Cmd" is a pseudo key which is the same as Control for PC and Unix
+        platforms but the special "Apple" (a.k.a as "Command") key on
+        Macs: it makes often sense to use it instead of, say, `ControlDown`
+        because Cmd key is used for the same thing under Mac as Ctrl
+        elsewhere. The Ctrl still exists, it's just not used for this
+        purpose. So for non-Mac platforms this is the same as `ControlDown`
+        and Macs this is the same as `MetaDown`.
+        """
+        return _core_.MouseEvent_CmdDown(*args, **kwargs)
+
     def LeftDown(*args, **kwargs):
         """LeftDown(self) -> bool"""
         return _core_.MouseEvent_LeftDown(*args, **kwargs)
     def LeftDown(*args, **kwargs):
         """LeftDown(self) -> bool"""
         return _core_.MouseEvent_LeftDown(*args, **kwargs)
@@ -3400,7 +3686,8 @@ class MouseEvent(Event):
         """
         GetPosition(self) -> Point
 
         """
         GetPosition(self) -> Point
 
-        Returns the position of the mouse in window coordinates when the event happened.
+        Returns the position of the mouse in window coordinates when the event
+        happened.
         """
         return _core_.MouseEvent_GetPosition(*args, **kwargs)
 
         """
         return _core_.MouseEvent_GetPosition(*args, **kwargs)
 
@@ -3408,7 +3695,8 @@ class MouseEvent(Event):
         """
         GetPositionTuple() -> (x,y)
 
         """
         GetPositionTuple() -> (x,y)
 
-        Returns the position of the mouse in window coordinates when the event happened.
+        Returns the position of the mouse in window coordinates when the event
+        happened.
         """
         return _core_.MouseEvent_GetPositionTuple(*args, **kwargs)
 
         """
         return _core_.MouseEvent_GetPositionTuple(*args, **kwargs)
 
@@ -3463,6 +3751,7 @@ _core_.MouseEvent_swigregister(MouseEventPtr)
 #---------------------------------------------------------------------------
 
 class SetCursorEvent(Event):
 #---------------------------------------------------------------------------
 
 class SetCursorEvent(Event):
+    """Proxy of C++ SetCursorEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSetCursorEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSetCursorEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3502,6 +3791,7 @@ _core_.SetCursorEvent_swigregister(SetCursorEventPtr)
 #---------------------------------------------------------------------------
 
 class KeyEvent(Event):
 #---------------------------------------------------------------------------
 
 class KeyEvent(Event):
+    """Proxy of C++ KeyEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3526,6 +3816,20 @@ class KeyEvent(Event):
         """ShiftDown(self) -> bool"""
         return _core_.KeyEvent_ShiftDown(*args, **kwargs)
 
         """ShiftDown(self) -> bool"""
         return _core_.KeyEvent_ShiftDown(*args, **kwargs)
 
+    def CmdDown(*args, **kwargs):
+        """
+        CmdDown(self) -> bool
+
+        "Cmd" is a pseudo key which is the same as Control for PC and Unix
+        platforms but the special "Apple" (a.k.a as "Command") key on
+        Macs: it makes often sense to use it instead of, say, `ControlDown`
+        because Cmd key is used for the same thing under Mac as Ctrl
+        elsewhere. The Ctrl still exists, it's just not used for this
+        purpose. So for non-Mac platforms this is the same as `ControlDown`
+        and Macs this is the same as `MetaDown`.
+        """
+        return _core_.KeyEvent_CmdDown(*args, **kwargs)
+
     def HasModifiers(*args, **kwargs):
         """HasModifiers(self) -> bool"""
         return _core_.KeyEvent_HasModifiers(*args, **kwargs)
     def HasModifiers(*args, **kwargs):
         """HasModifiers(self) -> bool"""
         return _core_.KeyEvent_HasModifiers(*args, **kwargs)
@@ -3535,10 +3839,11 @@ class KeyEvent(Event):
         return _core_.KeyEvent_GetKeyCode(*args, **kwargs)
 
     KeyCode = GetKeyCode 
         return _core_.KeyEvent_GetKeyCode(*args, **kwargs)
 
     KeyCode = GetKeyCode 
-    def GetUniChar(*args, **kwargs):
-        """GetUniChar(self) -> int"""
-        return _core_.KeyEvent_GetUniChar(*args, **kwargs)
+    def GetUnicodeKey(*args, **kwargs):
+        """GetUnicodeKey(self) -> int"""
+        return _core_.KeyEvent_GetUnicodeKey(*args, **kwargs)
 
 
+    GetUniChar = GetUnicodeKey 
     def GetRawKeyCode(*args, **kwargs):
         """GetRawKeyCode(self) -> unsigned int"""
         return _core_.KeyEvent_GetRawKeyCode(*args, **kwargs)
     def GetRawKeyCode(*args, **kwargs):
         """GetRawKeyCode(self) -> unsigned int"""
         return _core_.KeyEvent_GetRawKeyCode(*args, **kwargs)
@@ -3592,6 +3897,7 @@ _core_.KeyEvent_swigregister(KeyEventPtr)
 #---------------------------------------------------------------------------
 
 class SizeEvent(Event):
 #---------------------------------------------------------------------------
 
 class SizeEvent(Event):
+    """Proxy of C++ SizeEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3629,6 +3935,7 @@ _core_.SizeEvent_swigregister(SizeEventPtr)
 #---------------------------------------------------------------------------
 
 class MoveEvent(Event):
 #---------------------------------------------------------------------------
 
 class MoveEvent(Event):
+    """Proxy of C++ MoveEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMoveEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMoveEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3653,8 +3960,9 @@ class MoveEvent(Event):
         """SetPosition(self, Point pos)"""
         return _core_.MoveEvent_SetPosition(*args, **kwargs)
 
         """SetPosition(self, Point pos)"""
         return _core_.MoveEvent_SetPosition(*args, **kwargs)
 
-    m_pos = property(_core_.MoveEvent_m_pos_get, _core_.MoveEvent_m_pos_set)
-    m_rect = property(_core_.MoveEvent_m_rect_get, _core_.MoveEvent_m_rect_set)
+    m_pos =  property(GetPosition, SetPosition)
+    m_rect = property(GetRect, SetRect)
+
 
 class MoveEventPtr(MoveEvent):
     def __init__(self, this):
 
 class MoveEventPtr(MoveEvent):
     def __init__(self, this):
@@ -3666,6 +3974,7 @@ _core_.MoveEvent_swigregister(MoveEventPtr)
 #---------------------------------------------------------------------------
 
 class PaintEvent(Event):
 #---------------------------------------------------------------------------
 
 class PaintEvent(Event):
+    """Proxy of C++ PaintEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3683,6 +3992,7 @@ class PaintEventPtr(PaintEvent):
 _core_.PaintEvent_swigregister(PaintEventPtr)
 
 class NcPaintEvent(Event):
 _core_.PaintEvent_swigregister(PaintEventPtr)
 
 class NcPaintEvent(Event):
+    """Proxy of C++ NcPaintEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxNcPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxNcPaintEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3702,6 +4012,7 @@ _core_.NcPaintEvent_swigregister(NcPaintEventPtr)
 #---------------------------------------------------------------------------
 
 class EraseEvent(Event):
 #---------------------------------------------------------------------------
 
 class EraseEvent(Event):
+    """Proxy of C++ EraseEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxEraseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxEraseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3725,6 +4036,7 @@ _core_.EraseEvent_swigregister(EraseEventPtr)
 #---------------------------------------------------------------------------
 
 class FocusEvent(Event):
 #---------------------------------------------------------------------------
 
 class FocusEvent(Event):
+    """Proxy of C++ FocusEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3752,6 +4064,7 @@ _core_.FocusEvent_swigregister(FocusEventPtr)
 #---------------------------------------------------------------------------
 
 class ChildFocusEvent(CommandEvent):
 #---------------------------------------------------------------------------
 
 class ChildFocusEvent(CommandEvent):
+    """Proxy of C++ ChildFocusEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxChildFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxChildFocusEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3775,6 +4088,7 @@ _core_.ChildFocusEvent_swigregister(ChildFocusEventPtr)
 #---------------------------------------------------------------------------
 
 class ActivateEvent(Event):
 #---------------------------------------------------------------------------
 
 class ActivateEvent(Event):
+    """Proxy of C++ ActivateEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxActivateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxActivateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3798,6 +4112,7 @@ _core_.ActivateEvent_swigregister(ActivateEventPtr)
 #---------------------------------------------------------------------------
 
 class InitDialogEvent(Event):
 #---------------------------------------------------------------------------
 
 class InitDialogEvent(Event):
+    """Proxy of C++ InitDialogEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxInitDialogEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxInitDialogEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3817,6 +4132,7 @@ _core_.InitDialogEvent_swigregister(InitDialogEventPtr)
 #---------------------------------------------------------------------------
 
 class MenuEvent(Event):
 #---------------------------------------------------------------------------
 
 class MenuEvent(Event):
+    """Proxy of C++ MenuEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3848,6 +4164,7 @@ _core_.MenuEvent_swigregister(MenuEventPtr)
 #---------------------------------------------------------------------------
 
 class CloseEvent(Event):
 #---------------------------------------------------------------------------
 
 class CloseEvent(Event):
+    """Proxy of C++ CloseEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCloseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxCloseEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3891,6 +4208,7 @@ _core_.CloseEvent_swigregister(CloseEventPtr)
 #---------------------------------------------------------------------------
 
 class ShowEvent(Event):
 #---------------------------------------------------------------------------
 
 class ShowEvent(Event):
+    """Proxy of C++ ShowEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxShowEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxShowEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3918,6 +4236,7 @@ _core_.ShowEvent_swigregister(ShowEventPtr)
 #---------------------------------------------------------------------------
 
 class IconizeEvent(Event):
 #---------------------------------------------------------------------------
 
 class IconizeEvent(Event):
+    """Proxy of C++ IconizeEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxIconizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxIconizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3941,6 +4260,7 @@ _core_.IconizeEvent_swigregister(IconizeEventPtr)
 #---------------------------------------------------------------------------
 
 class MaximizeEvent(Event):
 #---------------------------------------------------------------------------
 
 class MaximizeEvent(Event):
+    """Proxy of C++ MaximizeEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMaximizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMaximizeEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -3960,6 +4280,7 @@ _core_.MaximizeEvent_swigregister(MaximizeEventPtr)
 #---------------------------------------------------------------------------
 
 class DropFilesEvent(Event):
 #---------------------------------------------------------------------------
 
 class DropFilesEvent(Event):
+    """Proxy of C++ DropFilesEvent class"""
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxDropFilesEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxDropFilesEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -3988,6 +4309,7 @@ _core_.DropFilesEvent_swigregister(DropFilesEventPtr)
 UPDATE_UI_PROCESS_ALL = _core_.UPDATE_UI_PROCESS_ALL
 UPDATE_UI_PROCESS_SPECIFIED = _core_.UPDATE_UI_PROCESS_SPECIFIED
 class UpdateUIEvent(CommandEvent):
 UPDATE_UI_PROCESS_ALL = _core_.UPDATE_UI_PROCESS_ALL
 UPDATE_UI_PROCESS_SPECIFIED = _core_.UPDATE_UI_PROCESS_SPECIFIED
 class UpdateUIEvent(CommandEvent):
+    """Proxy of C++ UpdateUIEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxUpdateUIEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxUpdateUIEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4033,32 +4355,32 @@ class UpdateUIEvent(CommandEvent):
         return _core_.UpdateUIEvent_SetText(*args, **kwargs)
 
     def SetUpdateInterval(*args, **kwargs):
         return _core_.UpdateUIEvent_SetText(*args, **kwargs)
 
     def SetUpdateInterval(*args, **kwargs):
-        """UpdateUIEvent.SetUpdateInterval(long updateInterval)"""
+        """SetUpdateInterval(long updateInterval)"""
         return _core_.UpdateUIEvent_SetUpdateInterval(*args, **kwargs)
 
     SetUpdateInterval = staticmethod(SetUpdateInterval)
     def GetUpdateInterval(*args, **kwargs):
         return _core_.UpdateUIEvent_SetUpdateInterval(*args, **kwargs)
 
     SetUpdateInterval = staticmethod(SetUpdateInterval)
     def GetUpdateInterval(*args, **kwargs):
-        """UpdateUIEvent.GetUpdateInterval() -> long"""
+        """GetUpdateInterval() -> long"""
         return _core_.UpdateUIEvent_GetUpdateInterval(*args, **kwargs)
 
     GetUpdateInterval = staticmethod(GetUpdateInterval)
     def CanUpdate(*args, **kwargs):
         return _core_.UpdateUIEvent_GetUpdateInterval(*args, **kwargs)
 
     GetUpdateInterval = staticmethod(GetUpdateInterval)
     def CanUpdate(*args, **kwargs):
-        """UpdateUIEvent.CanUpdate(Window win) -> bool"""
+        """CanUpdate(Window win) -> bool"""
         return _core_.UpdateUIEvent_CanUpdate(*args, **kwargs)
 
     CanUpdate = staticmethod(CanUpdate)
     def ResetUpdateTime(*args, **kwargs):
         return _core_.UpdateUIEvent_CanUpdate(*args, **kwargs)
 
     CanUpdate = staticmethod(CanUpdate)
     def ResetUpdateTime(*args, **kwargs):
-        """UpdateUIEvent.ResetUpdateTime()"""
+        """ResetUpdateTime()"""
         return _core_.UpdateUIEvent_ResetUpdateTime(*args, **kwargs)
 
     ResetUpdateTime = staticmethod(ResetUpdateTime)
     def SetMode(*args, **kwargs):
         return _core_.UpdateUIEvent_ResetUpdateTime(*args, **kwargs)
 
     ResetUpdateTime = staticmethod(ResetUpdateTime)
     def SetMode(*args, **kwargs):
-        """UpdateUIEvent.SetMode(int mode)"""
+        """SetMode(int mode)"""
         return _core_.UpdateUIEvent_SetMode(*args, **kwargs)
 
     SetMode = staticmethod(SetMode)
     def GetMode(*args, **kwargs):
         return _core_.UpdateUIEvent_SetMode(*args, **kwargs)
 
     SetMode = staticmethod(SetMode)
     def GetMode(*args, **kwargs):
-        """UpdateUIEvent.GetMode() -> int"""
+        """GetMode() -> int"""
         return _core_.UpdateUIEvent_GetMode(*args, **kwargs)
 
     GetMode = staticmethod(GetMode)
         return _core_.UpdateUIEvent_GetMode(*args, **kwargs)
 
     GetMode = staticmethod(GetMode)
@@ -4097,6 +4419,7 @@ def UpdateUIEvent_GetMode(*args, **kwargs):
 #---------------------------------------------------------------------------
 
 class SysColourChangedEvent(Event):
 #---------------------------------------------------------------------------
 
 class SysColourChangedEvent(Event):
+    """Proxy of C++ SysColourChangedEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSysColourChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSysColourChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4116,6 +4439,7 @@ _core_.SysColourChangedEvent_swigregister(SysColourChangedEventPtr)
 #---------------------------------------------------------------------------
 
 class MouseCaptureChangedEvent(Event):
 #---------------------------------------------------------------------------
 
 class MouseCaptureChangedEvent(Event):
+    """Proxy of C++ MouseCaptureChangedEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMouseCaptureChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMouseCaptureChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4139,6 +4463,7 @@ _core_.MouseCaptureChangedEvent_swigregister(MouseCaptureChangedEventPtr)
 #---------------------------------------------------------------------------
 
 class DisplayChangedEvent(Event):
 #---------------------------------------------------------------------------
 
 class DisplayChangedEvent(Event):
+    """Proxy of C++ DisplayChangedEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxDisplayChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxDisplayChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4158,6 +4483,7 @@ _core_.DisplayChangedEvent_swigregister(DisplayChangedEventPtr)
 #---------------------------------------------------------------------------
 
 class PaletteChangedEvent(Event):
 #---------------------------------------------------------------------------
 
 class PaletteChangedEvent(Event):
+    """Proxy of C++ PaletteChangedEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPaletteChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPaletteChangedEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4185,6 +4511,7 @@ _core_.PaletteChangedEvent_swigregister(PaletteChangedEventPtr)
 #---------------------------------------------------------------------------
 
 class QueryNewPaletteEvent(Event):
 #---------------------------------------------------------------------------
 
 class QueryNewPaletteEvent(Event):
+    """Proxy of C++ QueryNewPaletteEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxQueryNewPaletteEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxQueryNewPaletteEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4212,6 +4539,7 @@ _core_.QueryNewPaletteEvent_swigregister(QueryNewPaletteEventPtr)
 #---------------------------------------------------------------------------
 
 class NavigationKeyEvent(Event):
 #---------------------------------------------------------------------------
 
 class NavigationKeyEvent(Event):
+    """Proxy of C++ NavigationKeyEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxNavigationKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxNavigationKeyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4225,7 +4553,7 @@ class NavigationKeyEvent(Event):
         return _core_.NavigationKeyEvent_GetDirection(*args, **kwargs)
 
     def SetDirection(*args, **kwargs):
         return _core_.NavigationKeyEvent_GetDirection(*args, **kwargs)
 
     def SetDirection(*args, **kwargs):
-        """SetDirection(self, bool bForward)"""
+        """SetDirection(self, bool forward)"""
         return _core_.NavigationKeyEvent_SetDirection(*args, **kwargs)
 
     def IsWindowChange(*args, **kwargs):
         return _core_.NavigationKeyEvent_SetDirection(*args, **kwargs)
 
     def IsWindowChange(*args, **kwargs):
@@ -4233,9 +4561,13 @@ class NavigationKeyEvent(Event):
         return _core_.NavigationKeyEvent_IsWindowChange(*args, **kwargs)
 
     def SetWindowChange(*args, **kwargs):
         return _core_.NavigationKeyEvent_IsWindowChange(*args, **kwargs)
 
     def SetWindowChange(*args, **kwargs):
-        """SetWindowChange(self, bool bIs)"""
+        """SetWindowChange(self, bool ischange)"""
         return _core_.NavigationKeyEvent_SetWindowChange(*args, **kwargs)
 
         return _core_.NavigationKeyEvent_SetWindowChange(*args, **kwargs)
 
+    def SetFlags(*args, **kwargs):
+        """SetFlags(self, long flags)"""
+        return _core_.NavigationKeyEvent_SetFlags(*args, **kwargs)
+
     def GetCurrentFocus(*args, **kwargs):
         """GetCurrentFocus(self) -> Window"""
         return _core_.NavigationKeyEvent_GetCurrentFocus(*args, **kwargs)
     def GetCurrentFocus(*args, **kwargs):
         """GetCurrentFocus(self) -> Window"""
         return _core_.NavigationKeyEvent_GetCurrentFocus(*args, **kwargs)
@@ -4244,6 +4576,9 @@ class NavigationKeyEvent(Event):
         """SetCurrentFocus(self, Window win)"""
         return _core_.NavigationKeyEvent_SetCurrentFocus(*args, **kwargs)
 
         """SetCurrentFocus(self, Window win)"""
         return _core_.NavigationKeyEvent_SetCurrentFocus(*args, **kwargs)
 
+    IsBackward = _core_.NavigationKeyEvent_IsBackward
+    IsForward = _core_.NavigationKeyEvent_IsForward
+    WinChange = _core_.NavigationKeyEvent_WinChange
 
 class NavigationKeyEventPtr(NavigationKeyEvent):
     def __init__(self, this):
 
 class NavigationKeyEventPtr(NavigationKeyEvent):
     def __init__(self, this):
@@ -4255,6 +4590,7 @@ _core_.NavigationKeyEvent_swigregister(NavigationKeyEventPtr)
 #---------------------------------------------------------------------------
 
 class WindowCreateEvent(CommandEvent):
 #---------------------------------------------------------------------------
 
 class WindowCreateEvent(CommandEvent):
+    """Proxy of C++ WindowCreateEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxWindowCreateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxWindowCreateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4276,6 +4612,7 @@ class WindowCreateEventPtr(WindowCreateEvent):
 _core_.WindowCreateEvent_swigregister(WindowCreateEventPtr)
 
 class WindowDestroyEvent(CommandEvent):
 _core_.WindowCreateEvent_swigregister(WindowCreateEventPtr)
 
 class WindowDestroyEvent(CommandEvent):
+    """Proxy of C++ WindowDestroyEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxWindowDestroyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxWindowDestroyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4299,6 +4636,7 @@ _core_.WindowDestroyEvent_swigregister(WindowDestroyEventPtr)
 #---------------------------------------------------------------------------
 
 class ContextMenuEvent(CommandEvent):
 #---------------------------------------------------------------------------
 
 class ContextMenuEvent(CommandEvent):
+    """Proxy of C++ ContextMenuEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxContextMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxContextMenuEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4328,6 +4666,7 @@ _core_.ContextMenuEvent_swigregister(ContextMenuEventPtr)
 IDLE_PROCESS_ALL = _core_.IDLE_PROCESS_ALL
 IDLE_PROCESS_SPECIFIED = _core_.IDLE_PROCESS_SPECIFIED
 class IdleEvent(Event):
 IDLE_PROCESS_ALL = _core_.IDLE_PROCESS_ALL
 IDLE_PROCESS_SPECIFIED = _core_.IDLE_PROCESS_SPECIFIED
 class IdleEvent(Event):
+    """Proxy of C++ IdleEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxIdleEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxIdleEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4345,17 +4684,17 @@ class IdleEvent(Event):
         return _core_.IdleEvent_MoreRequested(*args, **kwargs)
 
     def SetMode(*args, **kwargs):
         return _core_.IdleEvent_MoreRequested(*args, **kwargs)
 
     def SetMode(*args, **kwargs):
-        """IdleEvent.SetMode(int mode)"""
+        """SetMode(int mode)"""
         return _core_.IdleEvent_SetMode(*args, **kwargs)
 
     SetMode = staticmethod(SetMode)
     def GetMode(*args, **kwargs):
         return _core_.IdleEvent_SetMode(*args, **kwargs)
 
     SetMode = staticmethod(SetMode)
     def GetMode(*args, **kwargs):
-        """IdleEvent.GetMode() -> int"""
+        """GetMode() -> int"""
         return _core_.IdleEvent_GetMode(*args, **kwargs)
 
     GetMode = staticmethod(GetMode)
     def CanSend(*args, **kwargs):
         return _core_.IdleEvent_GetMode(*args, **kwargs)
 
     GetMode = staticmethod(GetMode)
     def CanSend(*args, **kwargs):
-        """IdleEvent.CanSend(Window win) -> bool"""
+        """CanSend(Window win) -> bool"""
         return _core_.IdleEvent_CanSend(*args, **kwargs)
 
     CanSend = staticmethod(CanSend)
         return _core_.IdleEvent_CanSend(*args, **kwargs)
 
     CanSend = staticmethod(CanSend)
@@ -4382,6 +4721,7 @@ def IdleEvent_CanSend(*args, **kwargs):
 #---------------------------------------------------------------------------
 
 class PyEvent(Event):
 #---------------------------------------------------------------------------
 
 class PyEvent(Event):
+    """Proxy of C++ PyEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4415,6 +4755,7 @@ class PyEventPtr(PyEvent):
 _core_.PyEvent_swigregister(PyEventPtr)
 
 class PyCommandEvent(CommandEvent):
 _core_.PyEvent_swigregister(PyEventPtr)
 
 class PyCommandEvent(CommandEvent):
+    """Proxy of C++ PyCommandEvent class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyCommandEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4447,6 +4788,35 @@ class PyCommandEventPtr(PyCommandEvent):
         self.__class__ = PyCommandEvent
 _core_.PyCommandEvent_swigregister(PyCommandEventPtr)
 
         self.__class__ = PyCommandEvent
 _core_.PyCommandEvent_swigregister(PyCommandEventPtr)
 
+class DateEvent(CommandEvent):
+    """Proxy of C++ DateEvent class"""
+    def __repr__(self):
+        return "<%s.%s; proxy of C++ wxDateEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
+    def __init__(self, *args, **kwargs):
+        """__init__(self, Window win, DateTime dt, wxEventType type) -> DateEvent"""
+        newobj = _core_.new_DateEvent(*args, **kwargs)
+        self.this = newobj.this
+        self.thisown = 1
+        del newobj.thisown
+    def GetDate(*args, **kwargs):
+        """GetDate(self) -> DateTime"""
+        return _core_.DateEvent_GetDate(*args, **kwargs)
+
+    def SetDate(*args, **kwargs):
+        """SetDate(self, DateTime date)"""
+        return _core_.DateEvent_SetDate(*args, **kwargs)
+
+
+class DateEventPtr(DateEvent):
+    def __init__(self, this):
+        self.this = this
+        if not hasattr(self,"thisown"): self.thisown = 0
+        self.__class__ = DateEvent
+_core_.DateEvent_swigregister(DateEventPtr)
+
+wxEVT_DATE_CHANGED = _core_.wxEVT_DATE_CHANGED
+EVT_DATE_CHANGED = wx.PyEventBinder( wxEVT_DATE_CHANGED, 1 )
+
 #---------------------------------------------------------------------------
 
 PYAPP_ASSERT_SUPPRESS = _core_.PYAPP_ASSERT_SUPPRESS
 #---------------------------------------------------------------------------
 
 PYAPP_ASSERT_SUPPRESS = _core_.PYAPP_ASSERT_SUPPRESS
@@ -4456,6 +4826,10 @@ PYAPP_ASSERT_LOG = _core_.PYAPP_ASSERT_LOG
 PRINT_WINDOWS = _core_.PRINT_WINDOWS
 PRINT_POSTSCRIPT = _core_.PRINT_POSTSCRIPT
 class PyApp(EvtHandler):
 PRINT_WINDOWS = _core_.PRINT_WINDOWS
 PRINT_POSTSCRIPT = _core_.PRINT_POSTSCRIPT
 class PyApp(EvtHandler):
+    """
+    The ``wx.PyApp`` class is an *implementation detail*, please use the
+    `wx.App` class (or some other derived class) instead.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyApp instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyApp instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -4493,8 +4867,8 @@ class PyApp(EvtHandler):
         """
         SetAppName(self, String name)
 
         """
         SetAppName(self, String name)
 
-        Set the application name. This value may be used automatically
-        by wx.Config and such.
+        Set the application name. This value may be used automatically by
+        `wx.Config` and such.
         """
         return _core_.PyApp_SetAppName(*args, **kwargs)
 
         """
         return _core_.PyApp_SetAppName(*args, **kwargs)
 
@@ -4510,8 +4884,8 @@ class PyApp(EvtHandler):
         """
         SetClassName(self, String name)
 
         """
         SetClassName(self, String name)
 
-        Set the application's class name. This value may be used for X-resources if
-        applicable for the platform
+        Set the application's class name. This value may be used for
+        X-resources if applicable for the platform
         """
         return _core_.PyApp_SetClassName(*args, **kwargs)
 
         """
         return _core_.PyApp_SetClassName(*args, **kwargs)
 
@@ -4527,8 +4901,8 @@ class PyApp(EvtHandler):
         """
         SetVendorName(self, String name)
 
         """
         SetVendorName(self, String name)
 
-        Set the application's vendor name. This value may be used automatically
-        by wx.Config and such.
+        Set the application's vendor name. This value may be used
+        automatically by `wx.Config` and such.
         """
         return _core_.PyApp_SetVendorName(*args, **kwargs)
 
         """
         return _core_.PyApp_SetVendorName(*args, **kwargs)
 
@@ -4536,11 +4910,14 @@ class PyApp(EvtHandler):
         """
         GetTraits(self) -> wxAppTraits
 
         """
         GetTraits(self) -> wxAppTraits
 
-        Create the app traits object to which we delegate for everything which either
-        should be configurable by the user (then he can change the default behaviour
-        simply by overriding CreateTraits() and returning his own traits object) or
-        which is GUI/console dependent as then wx.AppTraits allows us to abstract the
-        differences behind the common facade
+        Return (and create if necessary) the app traits object to which we
+        delegate for everything which either should be configurable by the
+        user (then he can change the default behaviour simply by overriding
+        CreateTraits() and returning his own traits object) or which is
+        GUI/console dependent as then wx.AppTraits allows us to abstract the
+        differences behind the common facade.
+
+        :todo: Add support for overriding CreateAppTraits in wxPython.
         """
         return _core_.PyApp_GetTraits(*args, **kwargs)
 
         """
         return _core_.PyApp_GetTraits(*args, **kwargs)
 
@@ -4548,9 +4925,9 @@ class PyApp(EvtHandler):
         """
         ProcessPendingEvents(self)
 
         """
         ProcessPendingEvents(self)
 
-        Process all events in the Pending Events list -- it is necessary to call this
-        function to process posted events. This happens during each event loop
-        iteration.
+        Process all events in the Pending Events list -- it is necessary to
+        call this function to process posted events. This normally happens
+        during each event loop iteration.
         """
         return _core_.PyApp_ProcessPendingEvents(*args, **kwargs)
 
         """
         return _core_.PyApp_ProcessPendingEvents(*args, **kwargs)
 
@@ -4558,14 +4935,16 @@ class PyApp(EvtHandler):
         """
         Yield(self, bool onlyIfNeeded=False) -> bool
 
         """
         Yield(self, bool onlyIfNeeded=False) -> bool
 
-        Process all currently pending events right now, instead of waiting until
-        return to the event loop.  It is an error to call Yield() recursively unless
-        the value of onlyIfNeeded is True.
+        Process all currently pending events right now, instead of waiting
+        until return to the event loop.  It is an error to call ``Yield``
+        recursively unless the value of ``onlyIfNeeded`` is True.
+
+        :warning: This function is dangerous as it can lead to unexpected
+              reentrancies (i.e. when called from an event handler it may
+              result in calling the same event handler again), use with
+              extreme care or, better, don't use at all!
 
 
-        WARNING: This function is dangerous as it can lead to unexpected
-                 reentrancies (i.e. when called from an event handler it
-                 may result in calling the same event handler again), use
-                 with _extreme_ care or, better, don't use at all!
+        :see: `wx.Yield`, `wx.YieldIfNeeded`, `wx.SafeYield`
 
         """
         return _core_.PyApp_Yield(*args, **kwargs)
 
         """
         return _core_.PyApp_Yield(*args, **kwargs)
@@ -4574,15 +4953,27 @@ class PyApp(EvtHandler):
         """
         WakeUpIdle(self)
 
         """
         WakeUpIdle(self)
 
-        Make sure that idle events are sent again
+        Make sure that idle events are sent again.
+        :see: `wx.WakeUpIdle`
         """
         return _core_.PyApp_WakeUpIdle(*args, **kwargs)
 
         """
         return _core_.PyApp_WakeUpIdle(*args, **kwargs)
 
+    def IsMainLoopRunning(*args, **kwargs):
+        """
+        IsMainLoopRunning() -> bool
+
+        Returns True if we're running the main loop, i.e. if the events can
+        currently be dispatched.
+        """
+        return _core_.PyApp_IsMainLoopRunning(*args, **kwargs)
+
+    IsMainLoopRunning = staticmethod(IsMainLoopRunning)
     def MainLoop(*args, **kwargs):
         """
         MainLoop(self) -> int
 
     def MainLoop(*args, **kwargs):
         """
         MainLoop(self) -> int
 
-        Execute the main GUI loop, the function returns when the loop ends.
+        Execute the main GUI loop, the function doesn't normally return until
+        all top level windows have been closed and destroyed.
         """
         return _core_.PyApp_MainLoop(*args, **kwargs)
 
         """
         return _core_.PyApp_MainLoop(*args, **kwargs)
 
@@ -4591,6 +4982,7 @@ class PyApp(EvtHandler):
         Exit(self)
 
         Exit the main loop thus terminating the application.
         Exit(self)
 
         Exit the main loop thus terminating the application.
+        :see: `wx.Exit`
         """
         return _core_.PyApp_Exit(*args, **kwargs)
 
         """
         return _core_.PyApp_Exit(*args, **kwargs)
 
@@ -4598,8 +4990,8 @@ class PyApp(EvtHandler):
         """
         ExitMainLoop(self)
 
         """
         ExitMainLoop(self)
 
-        Exit the main GUI loop during the next iteration (i.e. it does not
-        stop the program immediately!)
+        Exit the main GUI loop during the next iteration of the main
+        loop, (i.e. it does not stop the program immediately!)
         """
         return _core_.PyApp_ExitMainLoop(*args, **kwargs)
 
         """
         return _core_.PyApp_ExitMainLoop(*args, **kwargs)
 
@@ -4624,9 +5016,9 @@ class PyApp(EvtHandler):
         """
         ProcessIdle(self) -> bool
 
         """
         ProcessIdle(self) -> bool
 
-        Called from the MainLoop when the application becomes idle and sends an
-        IdleEvent to all interested parties.  Returns True is more idle events are
-        needed, False if not.
+        Called from the MainLoop when the application becomes idle (there are
+        no pending events) and sends a `wx.IdleEvent` to all interested
+        parties.  Returns True if more idle events are needed, False if not.
         """
         return _core_.PyApp_ProcessIdle(*args, **kwargs)
 
         """
         return _core_.PyApp_ProcessIdle(*args, **kwargs)
 
@@ -4634,8 +5026,8 @@ class PyApp(EvtHandler):
         """
         SendIdleEvents(self, Window win, IdleEvent event) -> bool
 
         """
         SendIdleEvents(self, Window win, IdleEvent event) -> bool
 
-        Send idle event to window and all subwindows.  Returns True if more idle time
-        is requested.
+        Send idle event to window and all subwindows.  Returns True if more
+        idle time is requested.
         """
         return _core_.PyApp_SendIdleEvents(*args, **kwargs)
 
         """
         return _core_.PyApp_SendIdleEvents(*args, **kwargs)
 
@@ -4651,7 +5043,7 @@ class PyApp(EvtHandler):
         """
         SetTopWindow(self, Window win)
 
         """
         SetTopWindow(self, Window win)
 
-        Set the "main" top level window
+        Set the *main* top level window
         """
         return _core_.PyApp_SetTopWindow(*args, **kwargs)
 
         """
         return _core_.PyApp_SetTopWindow(*args, **kwargs)
 
@@ -4659,9 +5051,9 @@ class PyApp(EvtHandler):
         """
         GetTopWindow(self) -> Window
 
         """
         GetTopWindow(self) -> Window
 
-        Return the "main" top level window (if it hadn't been set previously with
-        SetTopWindow(), will return just some top level window and, if there not any,
-        will return None)
+        Return the *main* top level window (if it hadn't been set previously
+        with SetTopWindow(), will return just some top level window and, if
+        there not any, will return None)
         """
         return _core_.PyApp_GetTopWindow(*args, **kwargs)
 
         """
         return _core_.PyApp_GetTopWindow(*args, **kwargs)
 
@@ -4669,12 +5061,11 @@ class PyApp(EvtHandler):
         """
         SetExitOnFrameDelete(self, bool flag)
 
         """
         SetExitOnFrameDelete(self, bool flag)
 
-        Control the exit behaviour: by default, the program will exit the main loop
-        (and so, usually, terminate) when the last top-level program window is
-        deleted.  Beware that if you disable this behaviour (with
-        SetExitOnFrameDelete(False)), you'll have to call ExitMainLoop() explicitly
-        from somewhere.
-
+        Control the exit behaviour: by default, the program will exit the main
+        loop (and so, usually, terminate) when the last top-level program
+        window is deleted.  Beware that if you disable this behaviour (with
+        SetExitOnFrameDelete(False)), you'll have to call ExitMainLoop()
+        explicitly from somewhere.
         """
         return _core_.PyApp_SetExitOnFrameDelete(*args, **kwargs)
 
         """
         return _core_.PyApp_SetExitOnFrameDelete(*args, **kwargs)
 
@@ -4690,8 +5081,8 @@ class PyApp(EvtHandler):
         """
         SetUseBestVisual(self, bool flag)
 
         """
         SetUseBestVisual(self, bool flag)
 
-        Set whether the app should try to use the best available visual on systems
-        where more than one is available, (Sun, SGI, XFree86 4, etc.)
+        Set whether the app should try to use the best available visual on
+        systems where more than one is available, (Sun, SGI, XFree86 4, etc.)
         """
         return _core_.PyApp_SetUseBestVisual(*args, **kwargs)
 
         """
         return _core_.PyApp_SetUseBestVisual(*args, **kwargs)
 
@@ -4715,14 +5106,7 @@ class PyApp(EvtHandler):
         """
         SetAssertMode(self, int mode)
 
         """
         SetAssertMode(self, int mode)
 
-        Set the OnAssert behaviour for debug and hybrid builds.  The following flags
-        may be or'd together:
-
-         wx.PYAPP_ASSERT_SUPPRESS         Don't do anything
-         wx.PYAPP_ASSERT_EXCEPTION        Turn it into a Python exception if possible (default)
-         wx.PYAPP_ASSERT_DIALOG           Display a message dialog
-         wx.PYAPP_ASSERT_LOG              Write the assertion info to the wx.Log
-
+        Set the OnAssert behaviour for debug and hybrid builds.
         """
         return _core_.PyApp_SetAssertMode(*args, **kwargs)
 
         """
         return _core_.PyApp_SetAssertMode(*args, **kwargs)
 
@@ -4735,52 +5119,52 @@ class PyApp(EvtHandler):
         return _core_.PyApp_GetAssertMode(*args, **kwargs)
 
     def GetMacSupportPCMenuShortcuts(*args, **kwargs):
         return _core_.PyApp_GetAssertMode(*args, **kwargs)
 
     def GetMacSupportPCMenuShortcuts(*args, **kwargs):
-        """PyApp.GetMacSupportPCMenuShortcuts() -> bool"""
+        """GetMacSupportPCMenuShortcuts() -> bool"""
         return _core_.PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs)
 
     GetMacSupportPCMenuShortcuts = staticmethod(GetMacSupportPCMenuShortcuts)
     def GetMacAboutMenuItemId(*args, **kwargs):
         return _core_.PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs)
 
     GetMacSupportPCMenuShortcuts = staticmethod(GetMacSupportPCMenuShortcuts)
     def GetMacAboutMenuItemId(*args, **kwargs):
-        """PyApp.GetMacAboutMenuItemId() -> long"""
+        """GetMacAboutMenuItemId() -> long"""
         return _core_.PyApp_GetMacAboutMenuItemId(*args, **kwargs)
 
     GetMacAboutMenuItemId = staticmethod(GetMacAboutMenuItemId)
     def GetMacPreferencesMenuItemId(*args, **kwargs):
         return _core_.PyApp_GetMacAboutMenuItemId(*args, **kwargs)
 
     GetMacAboutMenuItemId = staticmethod(GetMacAboutMenuItemId)
     def GetMacPreferencesMenuItemId(*args, **kwargs):
-        """PyApp.GetMacPreferencesMenuItemId() -> long"""
+        """GetMacPreferencesMenuItemId() -> long"""
         return _core_.PyApp_GetMacPreferencesMenuItemId(*args, **kwargs)
 
     GetMacPreferencesMenuItemId = staticmethod(GetMacPreferencesMenuItemId)
     def GetMacExitMenuItemId(*args, **kwargs):
         return _core_.PyApp_GetMacPreferencesMenuItemId(*args, **kwargs)
 
     GetMacPreferencesMenuItemId = staticmethod(GetMacPreferencesMenuItemId)
     def GetMacExitMenuItemId(*args, **kwargs):
-        """PyApp.GetMacExitMenuItemId() -> long"""
+        """GetMacExitMenuItemId() -> long"""
         return _core_.PyApp_GetMacExitMenuItemId(*args, **kwargs)
 
     GetMacExitMenuItemId = staticmethod(GetMacExitMenuItemId)
     def GetMacHelpMenuTitleName(*args, **kwargs):
         return _core_.PyApp_GetMacExitMenuItemId(*args, **kwargs)
 
     GetMacExitMenuItemId = staticmethod(GetMacExitMenuItemId)
     def GetMacHelpMenuTitleName(*args, **kwargs):
-        """PyApp.GetMacHelpMenuTitleName() -> String"""
+        """GetMacHelpMenuTitleName() -> String"""
         return _core_.PyApp_GetMacHelpMenuTitleName(*args, **kwargs)
 
     GetMacHelpMenuTitleName = staticmethod(GetMacHelpMenuTitleName)
     def SetMacSupportPCMenuShortcuts(*args, **kwargs):
         return _core_.PyApp_GetMacHelpMenuTitleName(*args, **kwargs)
 
     GetMacHelpMenuTitleName = staticmethod(GetMacHelpMenuTitleName)
     def SetMacSupportPCMenuShortcuts(*args, **kwargs):
-        """PyApp.SetMacSupportPCMenuShortcuts(bool val)"""
+        """SetMacSupportPCMenuShortcuts(bool val)"""
         return _core_.PyApp_SetMacSupportPCMenuShortcuts(*args, **kwargs)
 
     SetMacSupportPCMenuShortcuts = staticmethod(SetMacSupportPCMenuShortcuts)
     def SetMacAboutMenuItemId(*args, **kwargs):
         return _core_.PyApp_SetMacSupportPCMenuShortcuts(*args, **kwargs)
 
     SetMacSupportPCMenuShortcuts = staticmethod(SetMacSupportPCMenuShortcuts)
     def SetMacAboutMenuItemId(*args, **kwargs):
-        """PyApp.SetMacAboutMenuItemId(long val)"""
+        """SetMacAboutMenuItemId(long val)"""
         return _core_.PyApp_SetMacAboutMenuItemId(*args, **kwargs)
 
     SetMacAboutMenuItemId = staticmethod(SetMacAboutMenuItemId)
     def SetMacPreferencesMenuItemId(*args, **kwargs):
         return _core_.PyApp_SetMacAboutMenuItemId(*args, **kwargs)
 
     SetMacAboutMenuItemId = staticmethod(SetMacAboutMenuItemId)
     def SetMacPreferencesMenuItemId(*args, **kwargs):
-        """PyApp.SetMacPreferencesMenuItemId(long val)"""
+        """SetMacPreferencesMenuItemId(long val)"""
         return _core_.PyApp_SetMacPreferencesMenuItemId(*args, **kwargs)
 
     SetMacPreferencesMenuItemId = staticmethod(SetMacPreferencesMenuItemId)
     def SetMacExitMenuItemId(*args, **kwargs):
         return _core_.PyApp_SetMacPreferencesMenuItemId(*args, **kwargs)
 
     SetMacPreferencesMenuItemId = staticmethod(SetMacPreferencesMenuItemId)
     def SetMacExitMenuItemId(*args, **kwargs):
-        """PyApp.SetMacExitMenuItemId(long val)"""
+        """SetMacExitMenuItemId(long val)"""
         return _core_.PyApp_SetMacExitMenuItemId(*args, **kwargs)
 
     SetMacExitMenuItemId = staticmethod(SetMacExitMenuItemId)
     def SetMacHelpMenuTitleName(*args, **kwargs):
         return _core_.PyApp_SetMacExitMenuItemId(*args, **kwargs)
 
     SetMacExitMenuItemId = staticmethod(SetMacExitMenuItemId)
     def SetMacHelpMenuTitleName(*args, **kwargs):
-        """PyApp.SetMacHelpMenuTitleName(String val)"""
+        """SetMacHelpMenuTitleName(String val)"""
         return _core_.PyApp_SetMacHelpMenuTitleName(*args, **kwargs)
 
     SetMacHelpMenuTitleName = staticmethod(SetMacHelpMenuTitleName)
         return _core_.PyApp_SetMacHelpMenuTitleName(*args, **kwargs)
 
     SetMacHelpMenuTitleName = staticmethod(SetMacHelpMenuTitleName)
@@ -4794,11 +5178,10 @@ class PyApp(EvtHandler):
 
     def GetComCtl32Version(*args, **kwargs):
         """
 
     def GetComCtl32Version(*args, **kwargs):
         """
-        PyApp.GetComCtl32Version() -> int
+        GetComCtl32Version() -> int
 
 
-        Returns 400, 470, 471, etc. for comctl32.dll 4.00, 4.70, 4.71 or
-        0 if it wasn't found at all.  Raises an exception on non-Windows
-        platforms.
+        Returns 400, 470, 471, etc. for comctl32.dll 4.00, 4.70, 4.71 or 0 if
+        it wasn't found at all.  Raises an exception on non-Windows platforms.
         """
         return _core_.PyApp_GetComCtl32Version(*args, **kwargs)
 
         """
         return _core_.PyApp_GetComCtl32Version(*args, **kwargs)
 
@@ -4811,6 +5194,15 @@ class PyAppPtr(PyApp):
         self.__class__ = PyApp
 _core_.PyApp_swigregister(PyAppPtr)
 
         self.__class__ = PyApp
 _core_.PyApp_swigregister(PyAppPtr)
 
+def PyApp_IsMainLoopRunning(*args, **kwargs):
+    """
+    PyApp_IsMainLoopRunning() -> bool
+
+    Returns True if we're running the main loop, i.e. if the events can
+    currently be dispatched.
+    """
+    return _core_.PyApp_IsMainLoopRunning(*args, **kwargs)
+
 def PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs):
     """PyApp_GetMacSupportPCMenuShortcuts() -> bool"""
     return _core_.PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs)
 def PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs):
     """PyApp_GetMacSupportPCMenuShortcuts() -> bool"""
     return _core_.PyApp_GetMacSupportPCMenuShortcuts(*args, **kwargs)
@@ -4855,9 +5247,8 @@ def PyApp_GetComCtl32Version(*args, **kwargs):
     """
     PyApp_GetComCtl32Version() -> int
 
     """
     PyApp_GetComCtl32Version() -> int
 
-    Returns 400, 470, 471, etc. for comctl32.dll 4.00, 4.70, 4.71 or
-    0 if it wasn't found at all.  Raises an exception on non-Windows
-    platforms.
+    Returns 400, 470, 471, etc. for comctl32.dll 4.00, 4.70, 4.71 or 0 if
+    it wasn't found at all.  Raises an exception on non-Windows platforms.
     """
     return _core_.PyApp_GetComCtl32Version(*args, **kwargs)
 
     """
     return _core_.PyApp_GetComCtl32Version(*args, **kwargs)
 
@@ -4892,12 +5283,13 @@ def SafeYield(*args, **kwargs):
     """
     SafeYield(Window win=None, bool onlyIfNeeded=False) -> bool
 
     """
     SafeYield(Window win=None, bool onlyIfNeeded=False) -> bool
 
-    This function is similar to wx.Yield, except that it disables the user input
-    to all program windows before calling wx.Yield and re-enables it again
-    afterwards. If win is not None, this window will remain enabled, allowing the
-    implementation of some limited user interaction.
+    This function is similar to `wx.Yield`, except that it disables the
+    user input to all program windows before calling `wx.Yield` and
+    re-enables it again afterwards. If ``win`` is not None, this window
+    will remain enabled, allowing the implementation of some limited user
+    interaction.
 
 
-    Returns the result of the call to wx.Yield.
+    :Returns: the result of the call to `wx.Yield`.
     """
     return _core_.SafeYield(*args, **kwargs)
 
     """
     return _core_.SafeYield(*args, **kwargs)
 
@@ -4905,7 +5297,8 @@ def WakeUpIdle(*args, **kwargs):
     """
     WakeUpIdle()
 
     """
     WakeUpIdle()
 
-    Cause the message queue to become empty again, so idle events will be sent.
+    Cause the message queue to become empty again, so idle events will be
+    sent.
     """
     return _core_.WakeUpIdle(*args, **kwargs)
 
     """
     return _core_.WakeUpIdle(*args, **kwargs)
 
@@ -4913,7 +5306,8 @@ def PostEvent(*args, **kwargs):
     """
     PostEvent(EvtHandler dest, Event event)
 
     """
     PostEvent(EvtHandler dest, Event event)
 
-    Send an event to a window or other wx.EvtHandler to be processed later.
+    Send an event to a window or other wx.EvtHandler to be processed
+    later.
     """
     return _core_.PostEvent(*args, **kwargs)
 
     """
     return _core_.PostEvent(*args, **kwargs)
 
@@ -4921,7 +5315,8 @@ def App_CleanUp(*args, **kwargs):
     """
     App_CleanUp()
 
     """
     App_CleanUp()
 
-    For internal use only, it is used to cleanup after wxWindows when Python shuts down.
+    For internal use only, it is used to cleanup after wxWidgets when
+    Python shuts down.
     """
     return _core_.App_CleanUp(*args, **kwargs)
 
     """
     return _core_.App_CleanUp(*args, **kwargs)
 
@@ -4932,6 +5327,30 @@ def GetApp(*args, **kwargs):
     Return a reference to the current wx.App object.
     """
     return _core_.GetApp(*args, **kwargs)
     Return a reference to the current wx.App object.
     """
     return _core_.GetApp(*args, **kwargs)
+
+def SetDefaultPyEncoding(*args, **kwargs):
+    """
+    SetDefaultPyEncoding(string encoding)
+
+    Sets the encoding that wxPython will use when it needs to convert a
+    Python string or unicode object to or from a wxString.
+
+    The default encoding is the value of ``locale.getdefaultlocale()[1]``
+    but please be aware that the default encoding within the same locale
+    may be slightly different on different platforms.  For example, please
+    see http://www.alanwood.net/demos/charsetdiffs.html for differences
+    between the common latin/roman encodings.
+    """
+    return _core_.SetDefaultPyEncoding(*args, **kwargs)
+
+def GetDefaultPyEncoding(*args, **kwargs):
+    """
+    GetDefaultPyEncoding() -> string
+
+    Gets the current encoding that wxPython will use when it needs to
+    convert a Python string or unicode object to or from a wxString.
+    """
+    return _core_.GetDefaultPyEncoding(*args, **kwargs)
 #----------------------------------------------------------------------
 
 class PyOnDemandOutputWindow:
 #----------------------------------------------------------------------
 
 class PyOnDemandOutputWindow:
@@ -4944,6 +5363,8 @@ class PyOnDemandOutputWindow:
     def __init__(self, title = "wxPython: stdout/stderr"):
         self.frame  = None
         self.title  = title
     def __init__(self, title = "wxPython: stdout/stderr"):
         self.frame  = None
         self.title  = title
+        self.pos    = wx.DefaultPosition
+        self.size   = (450, 300)
         self.parent = None
 
     def SetParent(self, parent):
         self.parent = None
 
     def SetParent(self, parent):
@@ -4952,12 +5373,11 @@ class PyOnDemandOutputWindow:
 
 
     def CreateOutputWindow(self, st):
 
 
     def CreateOutputWindow(self, st):
-        self.frame = wx.Frame(self.parent, -1, self.title,
-                              style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
+        self.frame = wx.Frame(self.parent, -1, self.title, self.pos, self.size,
+                              style=wx.DEFAULT_FRAME_STYLE)
         self.text  = wx.TextCtrl(self.frame, -1, "",
         self.text  = wx.TextCtrl(self.frame, -1, "",
-                                 style = wx.TE_MULTILINE | wx.TE_READONLY)
+                                 style=wx.TE_MULTILINE|wx.TE_READONLY)
         self.text.AppendText(st)
         self.text.AppendText(st)
-        self.frame.SetSize((450, 300))
         self.frame.Show(True)
         EVT_CLOSE(self.frame, self.OnCloseWindow)
         
         self.frame.Show(True)
         EVT_CLOSE(self.frame, self.OnCloseWindow)
         
@@ -4993,6 +5413,10 @@ class PyOnDemandOutputWindow:
             wx.CallAfter(self.frame.Close)
 
 
             wx.CallAfter(self.frame.Close)
 
 
+    def flush(self):
+        pass
+    
+
 
 #----------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------
 
@@ -5000,12 +5424,61 @@ _defRedirect = (wx.Platform == '__WXMSW__' or wx.Platform == '__WXMAC__')
 
 class App(wx.PyApp):
     """
 
 class App(wx.PyApp):
     """
-    The main application class.  Derive from this and implement an OnInit
-    method that creates a frame and then calls self.SetTopWindow(frame)
+    The ``wx.App`` class represents the application and is used to:
+
+      * bootstrap the wxPython system and initialize the underlying
+        gui toolkit
+      * set and get application-wide properties
+      * implement the windowing system main message or event loop,
+        and to dispatch events to window instances
+      * etc.
+
+    Every application must have a ``wx.App`` instance, and all
+    creation of UI objects should be delayed until after the
+    ``wx.App`` object has been created in order to ensure that the gui
+    platform and wxWidgets have been fully initialized.
+
+    Normally you would derive from this class and implement an
+    ``OnInit`` method that creates a frame and then calls
+    ``self.SetTopWindow(frame)``.
+
+    :see: `wx.PySimpleApp` for a simpler app class that can be used
+           directly.
     """
     """
+    
     outputWindowClass = PyOnDemandOutputWindow
 
     outputWindowClass = PyOnDemandOutputWindow
 
-    def __init__(self, redirect=_defRedirect, filename=None, useBestVisual=False):
+    def __init__(self, redirect=_defRedirect, filename=None,
+                 useBestVisual=False, clearSigInt=True):
+        """
+        Construct a ``wx.App`` object.  
+
+        :param redirect: Should ``sys.stdout`` and ``sys.stderr`` be
+            redirected?  Defaults to True on Windows and Mac, False
+            otherwise.  If `filename` is None then output will be
+            redirected to a window that pops up as needed.  (You can
+            control what kind of window is created for the output by
+            resetting the class variable ``outputWindowClass`` to a
+            class of your choosing.)
+
+        :param filename: The name of a file to redirect output to, if
+            redirect is True.
+
+        :param useBestVisual: Should the app try to use the best
+            available visual provided by the system (only relevant on
+            systems that have more than one visual.)  This parameter
+            must be used instead of calling `SetUseBestVisual` later
+            on because it must be set before the underlying GUI
+            toolkit is initialized.
+
+        :param clearSigInt: Should SIGINT be cleared?  This allows the
+            app to terminate upon a Ctrl-C in the console like other
+            GUI apps will.
+
+        :note: You should override OnInit to do applicaition
+            initialization to ensure that the system, toolkit and
+            wxWidgets are fully initialized.
+        """
         wx.PyApp.__init__(self)
 
         if wx.Platform == "__WXMAC__":
         wx.PyApp.__init__(self)
 
         if wx.Platform == "__WXMAC__":
@@ -5017,6 +5490,8 @@ This program needs access to the screen. Please run with 'pythonw',
 not 'python', and only when you are logged in on the main display of
 your Mac."""
                     _sys.exit(1)
 not 'python', and only when you are logged in on the main display of
 your Mac."""
                     _sys.exit(1)
+            except SystemExit:
+                raise
             except:
                 pass
 
             except:
                 pass
 
@@ -5029,11 +5504,12 @@ your Mac."""
         # KeyboardInterrupt???)  but will later segfault on exit.  By
         # setting the default handler then the app will exit, as
         # expected (depending on platform.)
         # KeyboardInterrupt???)  but will later segfault on exit.  By
         # setting the default handler then the app will exit, as
         # expected (depending on platform.)
-        try:
-            import signal
-            signal.signal(signal.SIGINT, signal.SIG_DFL)
-        except:
-            pass
+        if clearSigInt:
+            try:
+                import signal
+                signal.signal(signal.SIGINT, signal.SIG_DFL)
+            except:
+                pass
 
         # Save and redirect the stdio to a window?
         self.stdioWin = None
 
         # Save and redirect the stdio to a window?
         self.stdioWin = None
@@ -5041,6 +5517,9 @@ your Mac."""
         if redirect:
             self.RedirectStdio(filename)
 
         if redirect:
             self.RedirectStdio(filename)
 
+        # Use Python's install prefix as the default  
+        wx.StandardPaths.Get().SetInstallPrefix(_sys.prefix)
+
         # This finishes the initialization of wxWindows and then calls
         # the OnInit that should be present in the derived class
         self._BootstrapApp()
         # This finishes the initialization of wxWindows and then calls
         # the OnInit that should be present in the derived class
         self._BootstrapApp()
@@ -5079,8 +5558,24 @@ your Mac."""
         _sys.stdout, _sys.stderr = self.saveStdio
 
 
         _sys.stdout, _sys.stderr = self.saveStdio
 
 
+    def SetOutputWindowAttributes(self, title=None, pos=None, size=None):
+        """
+        Set the title, position and/or size of the output window if
+        the stdio has been redirected.  This should be called before
+        any output would cause the output window to be created.
+        """
+        if self.stdioWin:
+            if title is not None:
+                self.stdioWin.title = title
+            if pos is not None:
+                self.stdioWin.pos = pos
+            if size is not None:
+                self.stdioWin.size = size
+            
+
+
 
 
-# change from wxPyApp_ to wxApp_
+# change from wx.PyApp_XX to wx.App_XX
 App_GetMacSupportPCMenuShortcuts = _core_.PyApp_GetMacSupportPCMenuShortcuts
 App_GetMacAboutMenuItemId        = _core_.PyApp_GetMacAboutMenuItemId
 App_GetMacPreferencesMenuItemId  = _core_.PyApp_GetMacPreferencesMenuItemId
 App_GetMacSupportPCMenuShortcuts = _core_.PyApp_GetMacSupportPCMenuShortcuts
 App_GetMacAboutMenuItemId        = _core_.PyApp_GetMacAboutMenuItemId
 App_GetMacPreferencesMenuItemId  = _core_.PyApp_GetMacPreferencesMenuItemId
@@ -5099,16 +5594,28 @@ class PySimpleApp(wx.App):
     """
     A simple application class.  You can just create one of these and
     then then make your top level windows later, and not have to worry
     """
     A simple application class.  You can just create one of these and
     then then make your top level windows later, and not have to worry
-    about OnInit."""
+    about OnInit.  For example::
 
 
-    def __init__(self, redirect=False, filename=None, useBestVisual=False):
-        wx.App.__init__(self, redirect, filename, useBestVisual)
+        app = wx.PySimpleApp()
+        frame = wx.Frame(None, title='Hello World')
+        frame.Show()
+        app.MainLoop()
+
+    :see: `wx.App` 
+    """
+
+    def __init__(self, redirect=False, filename=None,
+                 useBestVisual=False, clearSigInt=True):
+        """
+        :see: `wx.App.__init__`
+        """
+        wx.App.__init__(self, redirect, filename, useBestVisual, clearSigInt)
         
     def OnInit(self):
         
     def OnInit(self):
-        wx.InitAllImageHandlers()
         return True
 
 
         return True
 
 
+
 # Is anybody using this one?
 class PyWidgetTester(wx.App):
     def __init__(self, size = (250, 100)):
 # Is anybody using this one?
 class PyWidgetTester(wx.App):
     def __init__(self, size = (250, 100)):
@@ -5120,15 +5627,15 @@ class PyWidgetTester(wx.App):
         self.SetTopWindow(self.frame)
         return True
 
         self.SetTopWindow(self.frame)
         return True
 
-    def SetWidget(self, widgetClass, *args):
-        w = widgetClass(self.frame, *args)
+    def SetWidget(self, widgetClass, *args, **kwargs):
+        w = widgetClass(self.frame, *args, **kwargs)
         self.frame.Show(True)
 
 #----------------------------------------------------------------------------
 # DO NOT hold any other references to this object.  This is how we
         self.frame.Show(True)
 
 #----------------------------------------------------------------------------
 # DO NOT hold any other references to this object.  This is how we
-# know when to cleanup system resources that wxWin is holding.  When
+# know when to cleanup system resources that wxWidgets is holding.  When
 # the sys module is unloaded, the refcount on sys.__wxPythonCleanup
 # the sys module is unloaded, the refcount on sys.__wxPythonCleanup
-# goes to zero and it calls the wxApp_CleanUp function.
+# goes to zero and it calls the wx.App_CleanUp function.
 
 class __wxPyCleanup:
     def __init__(self):
 
 class __wxPyCleanup:
     def __init__(self):
@@ -5139,22 +5646,95 @@ class __wxPyCleanup:
 _sys.__wxPythonCleanup = __wxPyCleanup()
 
 ## # another possible solution, but it gets called too early...
 _sys.__wxPythonCleanup = __wxPyCleanup()
 
 ## # another possible solution, but it gets called too early...
-## if sys.version[0] == '2':
-##     import atexit
-##     atexit.register(_core_.wxApp_CleanUp)
-## else:
-##     sys.exitfunc = _core_.wxApp_CleanUp
+## import atexit
+## atexit.register(_core_.wxApp_CleanUp)
 
 
 #----------------------------------------------------------------------------
 
 #---------------------------------------------------------------------------
 
 
 
 #----------------------------------------------------------------------------
 
 #---------------------------------------------------------------------------
 
+class EventLoop(object):
+    """Proxy of C++ EventLoop class"""
+    def __repr__(self):
+        return "<%s.%s; proxy of C++ wxEventLoop instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
+    def __init__(self, *args, **kwargs):
+        """__init__(self) -> EventLoop"""
+        newobj = _core_.new_EventLoop(*args, **kwargs)
+        self.this = newobj.this
+        self.thisown = 1
+        del newobj.thisown
+    def __del__(self, destroy=_core_.delete_EventLoop):
+        """__del__(self)"""
+        try:
+            if self.thisown: destroy(self)
+        except: pass
+
+    def Run(*args, **kwargs):
+        """Run(self) -> int"""
+        return _core_.EventLoop_Run(*args, **kwargs)
+
+    def Exit(*args, **kwargs):
+        """Exit(self, int rc=0)"""
+        return _core_.EventLoop_Exit(*args, **kwargs)
+
+    def Pending(*args, **kwargs):
+        """Pending(self) -> bool"""
+        return _core_.EventLoop_Pending(*args, **kwargs)
+
+    def Dispatch(*args, **kwargs):
+        """Dispatch(self) -> bool"""
+        return _core_.EventLoop_Dispatch(*args, **kwargs)
+
+    def IsRunning(*args, **kwargs):
+        """IsRunning(self) -> bool"""
+        return _core_.EventLoop_IsRunning(*args, **kwargs)
+
+    def GetActive(*args, **kwargs):
+        """GetActive() -> EventLoop"""
+        return _core_.EventLoop_GetActive(*args, **kwargs)
+
+    GetActive = staticmethod(GetActive)
+    def SetActive(*args, **kwargs):
+        """SetActive(EventLoop loop)"""
+        return _core_.EventLoop_SetActive(*args, **kwargs)
+
+    SetActive = staticmethod(SetActive)
+
+class EventLoopPtr(EventLoop):
+    def __init__(self, this):
+        self.this = this
+        if not hasattr(self,"thisown"): self.thisown = 0
+        self.__class__ = EventLoop
+_core_.EventLoop_swigregister(EventLoopPtr)
+
+def EventLoop_GetActive(*args, **kwargs):
+    """EventLoop_GetActive() -> EventLoop"""
+    return _core_.EventLoop_GetActive(*args, **kwargs)
+
+def EventLoop_SetActive(*args, **kwargs):
+    """EventLoop_SetActive(EventLoop loop)"""
+    return _core_.EventLoop_SetActive(*args, **kwargs)
+
+#---------------------------------------------------------------------------
+
 class AcceleratorEntry(object):
 class AcceleratorEntry(object):
+    """
+    A class used to define items in an `wx.AcceleratorTable`.  wxPython
+    programs can choose to use wx.AcceleratorEntry objects, but using a
+    list of 3-tuple of integers (flags, keyCode, cmdID) usually works just
+    as well.  See `__init__` for  of the tuple values.
+
+    :see: `wx.AcceleratorTable`
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxAcceleratorEntry instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxAcceleratorEntry instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int flags=0, int keyCode=0, int cmd=0, MenuItem item=None) -> AcceleratorEntry"""
+        """
+        __init__(self, int flags=0, int keyCode=0, int cmdID=0) -> AcceleratorEntry
+
+        Construct a wx.AcceleratorEntry.
+        """
         newobj = _core_.new_AcceleratorEntry(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         newobj = _core_.new_AcceleratorEntry(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -5166,27 +5746,36 @@ class AcceleratorEntry(object):
         except: pass
 
     def Set(*args, **kwargs):
         except: pass
 
     def Set(*args, **kwargs):
-        """Set(self, int flags, int keyCode, int cmd, MenuItem item=None)"""
-        return _core_.AcceleratorEntry_Set(*args, **kwargs)
-
-    def SetMenuItem(*args, **kwargs):
-        """SetMenuItem(self, MenuItem item)"""
-        return _core_.AcceleratorEntry_SetMenuItem(*args, **kwargs)
+        """
+        Set(self, int flags, int keyCode, int cmd)
 
 
-    def GetMenuItem(*args, **kwargs):
-        """GetMenuItem(self) -> MenuItem"""
-        return _core_.AcceleratorEntry_GetMenuItem(*args, **kwargs)
+        (Re)set the attributes of a wx.AcceleratorEntry.
+        :see `__init__`
+        """
+        return _core_.AcceleratorEntry_Set(*args, **kwargs)
 
     def GetFlags(*args, **kwargs):
 
     def GetFlags(*args, **kwargs):
-        """GetFlags(self) -> int"""
+        """
+        GetFlags(self) -> int
+
+        Get the AcceleratorEntry's flags.
+        """
         return _core_.AcceleratorEntry_GetFlags(*args, **kwargs)
 
     def GetKeyCode(*args, **kwargs):
         return _core_.AcceleratorEntry_GetFlags(*args, **kwargs)
 
     def GetKeyCode(*args, **kwargs):
-        """GetKeyCode(self) -> int"""
+        """
+        GetKeyCode(self) -> int
+
+        Get the AcceleratorEntry's keycode.
+        """
         return _core_.AcceleratorEntry_GetKeyCode(*args, **kwargs)
 
     def GetCommand(*args, **kwargs):
         return _core_.AcceleratorEntry_GetKeyCode(*args, **kwargs)
 
     def GetCommand(*args, **kwargs):
-        """GetCommand(self) -> int"""
+        """
+        GetCommand(self) -> int
+
+        Get the AcceleratorEntry's command ID.
+        """
         return _core_.AcceleratorEntry_GetCommand(*args, **kwargs)
 
 
         return _core_.AcceleratorEntry_GetCommand(*args, **kwargs)
 
 
@@ -5198,14 +5787,22 @@ class AcceleratorEntryPtr(AcceleratorEntry):
 _core_.AcceleratorEntry_swigregister(AcceleratorEntryPtr)
 
 class AcceleratorTable(Object):
 _core_.AcceleratorEntry_swigregister(AcceleratorEntryPtr)
 
 class AcceleratorTable(Object):
+    """
+    An accelerator table allows the application to specify a table of
+    keyboard shortcuts for menus or other commands. On Windows, menu or
+    button commands are supported; on GTK, only menu commands are
+    supported.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxAcceleratorTable instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
         """
         __init__(entries) -> AcceleratorTable
 
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxAcceleratorTable instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
         """
         __init__(entries) -> AcceleratorTable
 
-        Construct an AcceleratorTable from a list of AcceleratorEntry items or
-        3-tuples (flags, keyCode, cmdID)
+        Construct an AcceleratorTable from a list of `wx.AcceleratorEntry`
+        items or or of 3-tuples (flags, keyCode, cmdID)
+
+        :see: `wx.AcceleratorEntry`
         """
         newobj = _core_.new_AcceleratorTable(*args, **kwargs)
         self.this = newobj.this
         """
         newobj = _core_.new_AcceleratorTable(*args, **kwargs)
         self.this = newobj.this
@@ -5313,25 +5910,6 @@ class Window(EvtHandler):
         tries to close the window. It doesn't close the window itself,
         however.  If force is False (the default) then the window's close
         handler will be allowed to veto the destruction of the window.
         tries to close the window. It doesn't close the window itself,
         however.  If force is False (the default) then the window's close
         handler will be allowed to veto the destruction of the window.
-
-        Usually Close is only used with the top level windows (wx.Frame and
-        wx.Dialog classes) as the others are not supposed to have any special
-        EVT_CLOSE logic.
-
-        The close handler should check whether the window is being deleted
-        forcibly, using wx.CloseEvent.GetForce, in which case it should
-        destroy the window using wx.Window.Destroy.
-
-        Note that calling Close does not guarantee that the window will be
-        destroyed; but it provides a way to simulate a manual close of a
-        window, which may or may not be implemented by destroying the
-        window. The default EVT_CLOSE handler for wx.Dialog does not
-        necessarily delete the dialog, since it will simply simulate an
-        wxID_CANCEL event which is handled by the appropriate button event
-        handler and may do anything at all.
-
-        To guarantee that the window will be destroyed, call wx.Window.Destroy
-        instead.
         """
         return _core_.Window_Close(*args, **kwargs)
 
         """
         return _core_.Window_Close(*args, **kwargs)
 
@@ -5354,7 +5932,8 @@ class Window(EvtHandler):
         """
         DestroyChildren(self) -> bool
 
         """
         DestroyChildren(self) -> bool
 
-        Destroys all children of a window. Called automatically by the destructor.
+        Destroys all children of a window. Called automatically by the
+        destructor.
         """
         return _core_.Window_DestroyChildren(*args, **kwargs)
 
         """
         return _core_.Window_DestroyChildren(*args, **kwargs)
 
@@ -5394,13 +5973,12 @@ class Window(EvtHandler):
         """
         GetLabel(self) -> String
 
         """
         GetLabel(self) -> String
 
-        Generic way of getting a label from any window, for
-        identification purposes.  The interpretation of this function
-        differs from class to class. For frames and dialogs, the value
-        returned is the title. For buttons or static text controls, it is
-        the button text. This function can be useful for meta-programs
-        such as testing tools or special-needs access programs)which
-        need to identify windows by name.
+        Generic way of getting a label from any window, for identification
+        purposes.  The interpretation of this function differs from class to
+        class. For frames and dialogs, the value returned is the title. For
+        buttons or static text controls, it is the button text. This function
+        can be useful for meta-programs such as testing tools or special-needs
+        access programs)which need to identify windows by name.
         """
         return _core_.Window_GetLabel(*args, **kwargs)
 
         """
         return _core_.Window_GetLabel(*args, **kwargs)
 
@@ -5408,8 +5986,8 @@ class Window(EvtHandler):
         """
         SetName(self, String name)
 
         """
         SetName(self, String name)
 
-        Sets the window's name.  The window name is used for ressource
-        setting in X, it is not the same as the window title/label
+        Sets the window's name.  The window name is used for ressource setting
+        in X, it is not the same as the window title/label
         """
         return _core_.Window_SetName(*args, **kwargs)
 
         """
         return _core_.Window_SetName(*args, **kwargs)
 
@@ -5417,9 +5995,9 @@ class Window(EvtHandler):
         """
         GetName(self) -> String
 
         """
         GetName(self) -> String
 
-        Returns the windows name.  This name is not guaranteed to be
-        unique; it is up to the programmer to supply an appropriate name
-        in the window constructor or via wx.Window.SetName.
+        Returns the windows name.  This name is not guaranteed to be unique;
+        it is up to the programmer to supply an appropriate name in the window
+        constructor or via wx.Window.SetName.
         """
         return _core_.Window_GetName(*args, **kwargs)
 
         """
         return _core_.Window_GetName(*args, **kwargs)
 
@@ -5427,14 +6005,8 @@ class Window(EvtHandler):
         """
         SetWindowVariant(self, int variant)
 
         """
         SetWindowVariant(self, int variant)
 
-        Sets the variant of the window/font size to use for this window,
-        if the platform supports variants, for example, wxMac.  Variant values are:
-
-            wx.WINDOW_VARIANT_NORMAL    Normal size
-            wx.WINDOW_VARIANT_SMALL     Smaller size (about 25 % smaller than normal)
-            wx.WINDOW_VARIANT_MINI      Mini size (about 33 % smaller than normal)
-            wx.WINDOW_VARIANT_LARGE     Large size (about 25 % larger than normal)
-
+        Sets the variant of the window/font size to use for this window, if
+        the platform supports variants, for example, wxMac.
         """
         return _core_.Window_SetWindowVariant(*args, **kwargs)
 
         """
         return _core_.Window_SetWindowVariant(*args, **kwargs)
 
@@ -5466,7 +6038,7 @@ class Window(EvtHandler):
 
     def NewControlId(*args, **kwargs):
         """
 
     def NewControlId(*args, **kwargs):
         """
-        Window.NewControlId() -> int
+        NewControlId() -> int
 
         Generate a control id for the controls which were not given one.
         """
 
         Generate a control id for the controls which were not given one.
         """
@@ -5475,20 +6047,20 @@ class Window(EvtHandler):
     NewControlId = staticmethod(NewControlId)
     def NextControlId(*args, **kwargs):
         """
     NewControlId = staticmethod(NewControlId)
     def NextControlId(*args, **kwargs):
         """
-        Window.NextControlId(int winid) -> int
+        NextControlId(int winid) -> int
 
         Get the id of the control following the one with the given
 
         Get the id of the control following the one with the given
-        (autogenerated) id
+        autogenerated) id
         """
         return _core_.Window_NextControlId(*args, **kwargs)
 
     NextControlId = staticmethod(NextControlId)
     def PrevControlId(*args, **kwargs):
         """
         """
         return _core_.Window_NextControlId(*args, **kwargs)
 
     NextControlId = staticmethod(NextControlId)
     def PrevControlId(*args, **kwargs):
         """
-        Window.PrevControlId(int winid) -> int
+        PrevControlId(int winid) -> int
 
         Get the id of the control preceding the one with the given
 
         Get the id of the control preceding the one with the given
-        (autogenerated) id
+        autogenerated) id
         """
         return _core_.Window_PrevControlId(*args, **kwargs)
 
         """
         return _core_.Window_PrevControlId(*args, **kwargs)
 
@@ -5507,11 +6079,18 @@ class Window(EvtHandler):
 
         Sets the position and size of the window in pixels.  The sizeFlags
         parameter indicates the interpretation of the other params if they are
 
         Sets the position and size of the window in pixels.  The sizeFlags
         parameter indicates the interpretation of the other params if they are
-        -1.  wx.SIZE_AUTO*: a -1 indicates that a class-specific default
-        shoudl be used.  wx.SIZE_USE_EXISTING: existing dimensions should be
-        used if -1 values are supplied.  wxSIZE_ALLOW_MINUS_ONE: allow
-        dimensions of -1 and less to be interpreted as real dimensions, not
-        default values.
+        equal to -1.
+
+            ========================  ======================================
+            wx.SIZE_AUTO              A -1 indicates that a class-specific
+                                      default should be used.
+            wx.SIZE_USE_EXISTING      Axisting dimensions should be used if
+                                      -1 values are supplied.
+            wxSIZE_ALLOW_MINUS_ONE    Allow dimensions of -1 and less to be
+                                      interpreted as real dimensions, not
+                                      default values.
+            ========================  ======================================
+
         """
         return _core_.Window_SetDimensions(*args, **kwargs)
 
         """
         return _core_.Window_SetDimensions(*args, **kwargs)
 
@@ -5548,6 +6127,15 @@ class Window(EvtHandler):
         """
         return _core_.Window_MoveXY(*args, **kwargs)
 
         """
         return _core_.Window_MoveXY(*args, **kwargs)
 
+    def SetBestFittingSize(*args, **kwargs):
+        """
+        SetBestFittingSize(self, Size size=DefaultSize)
+
+        A 'Smart' SetSize that will fill in default size components with the
+        window's *best size* values.  Also set's the minsize for use with sizers.
+        """
+        return _core_.Window_SetBestFittingSize(*args, **kwargs)
+
     def Raise(*args, **kwargs):
         """
         Raise(self)
     def Raise(*args, **kwargs):
         """
         Raise(self)
@@ -5676,7 +6264,7 @@ class Window(EvtHandler):
         """
         GetClientRect(self) -> Rect
 
         """
         GetClientRect(self) -> Rect
 
-        Get the client area position and size as a wx.Rect object.
+        Get the client area position and size as a `wx.Rect` object.
         """
         return _core_.Window_GetClientRect(*args, **kwargs)
 
         """
         return _core_.Window_GetClientRect(*args, **kwargs)
 
@@ -5684,12 +6272,12 @@ class Window(EvtHandler):
         """
         GetBestSize(self) -> Size
 
         """
         GetBestSize(self) -> Size
 
-        This functions returns the best acceptable minimal size for the
-        window, if applicable. For example, for a static text control, it will be
-        the minimal size such that the control label is not truncated. For
-        windows containing subwindows (suzh aswx.Panel), the size returned
-        by this function will be the same as the size the window would have
-        had after calling Fit.
+        This function returns the best acceptable minimal size for the
+        window, if applicable. For example, for a static text control, it will
+        be the minimal size such that the control label is not truncated. For
+        windows containing subwindows (suzh aswx.Panel), the size returned by
+        this function will be the same as the size the window would have had
+        after calling Fit.
         """
         return _core_.Window_GetBestSize(*args, **kwargs)
 
         """
         return _core_.Window_GetBestSize(*args, **kwargs)
 
@@ -5697,15 +6285,35 @@ class Window(EvtHandler):
         """
         GetBestSizeTuple() -> (width, height)
 
         """
         GetBestSizeTuple() -> (width, height)
 
-        This functions returns the best acceptable minimal size for the
-        window, if applicable. For example, for a static text control, it will be
-        the minimal size such that the control label is not truncated. For
-        windows containing subwindows (suzh aswx.Panel), the size returned
-        by this function will be the same as the size the window would have
-        had after calling Fit.
+        This function returns the best acceptable minimal size for the
+        window, if applicable. For example, for a static text control, it will
+        be the minimal size such that the control label is not truncated. For
+        windows containing subwindows (suzh aswx.Panel), the size returned by
+        this function will be the same as the size the window would have had
+        after calling Fit.
         """
         return _core_.Window_GetBestSizeTuple(*args, **kwargs)
 
         """
         return _core_.Window_GetBestSizeTuple(*args, **kwargs)
 
+    def InvalidateBestSize(*args, **kwargs):
+        """
+        InvalidateBestSize(self)
+
+        Reset the cached best size value so it will be recalculated the next
+        time it is needed.
+        """
+        return _core_.Window_InvalidateBestSize(*args, **kwargs)
+
+    def GetBestFittingSize(*args, **kwargs):
+        """
+        GetBestFittingSize(self) -> Size
+
+        This function will merge the window's best size into the window's
+        minimum size, giving priority to the min size components, and returns
+        the results.
+
+        """
+        return _core_.Window_GetBestFittingSize(*args, **kwargs)
+
     def GetAdjustedBestSize(*args, **kwargs):
         """
         GetAdjustedBestSize(self) -> Size
     def GetAdjustedBestSize(*args, **kwargs):
         """
         GetAdjustedBestSize(self) -> Size
@@ -5777,35 +6385,88 @@ class Window(EvtHandler):
         """
         return _core_.Window_FitInside(*args, **kwargs)
 
         """
         return _core_.Window_FitInside(*args, **kwargs)
 
-    def SetSizeHints(*args):
+    def SetSizeHints(*args, **kwargs):
         """
         SetSizeHints(self, int minW, int minH, int maxW=-1, int maxH=-1, int incW=-1, 
             int incH=-1)
         """
         SetSizeHints(self, int minW, int minH, int maxW=-1, int maxH=-1, int incW=-1, 
             int incH=-1)
-        SetSizeHints(self, Size minSize, Size maxSize=DefaultSize, Size incSize=DefaultSize)
 
         Allows specification of minimum and maximum window sizes, and window
         size increments. If a pair of values is not set (or set to -1), the
         default values will be used.  If this function is called, the user
 
         Allows specification of minimum and maximum window sizes, and window
         size increments. If a pair of values is not set (or set to -1), the
         default values will be used.  If this function is called, the user
-        will not be able to size the window outside the given bounds. The
-        resizing increments are only significant under Motif or Xt.
+        will not be able to size the window outside the given bounds (if it is
+        a top-level window.)  Sizers will also inspect the minimum window size
+        and will use that value if set when calculating layout.
+
+        The resizing increments are only significant under Motif or Xt.
+        """
+        return _core_.Window_SetSizeHints(*args, **kwargs)
+
+    def SetSizeHintsSz(*args, **kwargs):
+        """
+        SetSizeHintsSz(self, Size minSize, Size maxSize=DefaultSize, Size incSize=DefaultSize)
+
+        Allows specification of minimum and maximum window sizes, and window
+        size increments. If a pair of values is not set (or set to -1), the
+        default values will be used.  If this function is called, the user
+        will not be able to size the window outside the given bounds (if it is
+        a top-level window.)  Sizers will also inspect the minimum window size
+        and will use that value if set when calculating layout.
+
+        The resizing increments are only significant under Motif or Xt.
         """
         """
-        return _core_.Window_SetSizeHints(*args)
+        return _core_.Window_SetSizeHintsSz(*args, **kwargs)
 
 
-    def SetVirtualSizeHints(*args):
+    def SetVirtualSizeHints(*args, **kwargs):
         """
         SetVirtualSizeHints(self, int minW, int minH, int maxW=-1, int maxH=-1)
         """
         SetVirtualSizeHints(self, int minW, int minH, int maxW=-1, int maxH=-1)
-        SetVirtualSizeHints(self, Size minSize, Size maxSize=DefaultSize)
 
         Allows specification of minimum and maximum virtual window sizes. If a
         pair of values is not set (or set to -1), the default values will be
         used.  If this function is called, the user will not be able to size
         the virtual area of the window outside the given bounds.
         """
 
         Allows specification of minimum and maximum virtual window sizes. If a
         pair of values is not set (or set to -1), the default values will be
         used.  If this function is called, the user will not be able to size
         the virtual area of the window outside the given bounds.
         """
-        return _core_.Window_SetVirtualSizeHints(*args)
+        return _core_.Window_SetVirtualSizeHints(*args, **kwargs)
 
 
-    def GetMinWidth(*args, **kwargs):
-        """GetMinWidth(self) -> int"""
-        return _core_.Window_GetMinWidth(*args, **kwargs)
+    def SetVirtualSizeHintsSz(*args, **kwargs):
+        """
+        SetVirtualSizeHintsSz(self, Size minSize, Size maxSize=DefaultSize)
+
+        Allows specification of minimum and maximum virtual window sizes. If a
+        pair of values is not set (or set to -1), the default values will be
+        used.  If this function is called, the user will not be able to size
+        the virtual area of the window outside the given bounds.
+        """
+        return _core_.Window_SetVirtualSizeHintsSz(*args, **kwargs)
+
+    def GetMaxSize(*args, **kwargs):
+        """GetMaxSize(self) -> Size"""
+        return _core_.Window_GetMaxSize(*args, **kwargs)
+
+    def GetMinSize(*args, **kwargs):
+        """GetMinSize(self) -> Size"""
+        return _core_.Window_GetMinSize(*args, **kwargs)
+
+    def SetMinSize(*args, **kwargs):
+        """
+        SetMinSize(self, Size minSize)
+
+        A more convenient method than `SetSizeHints` for setting just the
+        min size.
+        """
+        return _core_.Window_SetMinSize(*args, **kwargs)
+
+    def SetMaxSize(*args, **kwargs):
+        """
+        SetMaxSize(self, Size maxSize)
+
+        A more convenient method than `SetSizeHints` for setting just the
+        max size.
+        """
+        return _core_.Window_SetMaxSize(*args, **kwargs)
+
+    def GetMinWidth(*args, **kwargs):
+        """GetMinWidth(self) -> int"""
+        return _core_.Window_GetMinWidth(*args, **kwargs)
 
     def GetMinHeight(*args, **kwargs):
         """GetMinHeight(self) -> int"""
 
     def GetMinHeight(*args, **kwargs):
         """GetMinHeight(self) -> int"""
@@ -5819,14 +6480,6 @@ class Window(EvtHandler):
         """GetMaxHeight(self) -> int"""
         return _core_.Window_GetMaxHeight(*args, **kwargs)
 
         """GetMaxHeight(self) -> int"""
         return _core_.Window_GetMaxHeight(*args, **kwargs)
 
-    def GetMaxSize(*args, **kwargs):
-        """GetMaxSize(self) -> Size"""
-        return _core_.Window_GetMaxSize(*args, **kwargs)
-
-    def GetMinSize(*args, **kwargs):
-        """GetMinSize(self) -> Size"""
-        return _core_.Window_GetMinSize(*args, **kwargs)
-
     def SetVirtualSize(*args, **kwargs):
         """
         SetVirtualSize(self, Size size)
     def SetVirtualSize(*args, **kwargs):
         """
         SetVirtualSize(self, Size size)
@@ -5936,10 +6589,10 @@ class Window(EvtHandler):
         """
         SetWindowStyleFlag(self, long style)
 
         """
         SetWindowStyleFlag(self, long style)
 
-        Sets the style of the window. Please note that some styles cannot
-        be changed after the window creation and that Refresh() might
-        need to be called after changing the others for the change to
-        take place immediately.
+        Sets the style of the window. Please note that some styles cannot be
+        changed after the window creation and that Refresh() might need to be
+        called after changing the others for the change to take place
+        immediately.
         """
         return _core_.Window_SetWindowStyleFlag(*args, **kwargs)
 
         """
         return _core_.Window_SetWindowStyleFlag(*args, **kwargs)
 
@@ -6041,7 +6694,7 @@ class Window(EvtHandler):
 
     def FindFocus(*args, **kwargs):
         """
 
     def FindFocus(*args, **kwargs):
         """
-        Window.FindFocus() -> Window
+        FindFocus() -> Window
 
         Returns the window or control that currently has the keyboard focus,
         or None.
 
         Returns the window or control that currently has the keyboard focus,
         or None.
@@ -6092,6 +6745,39 @@ class Window(EvtHandler):
         """
         return _core_.Window_SetTmpDefaultItem(*args, **kwargs)
 
         """
         return _core_.Window_SetTmpDefaultItem(*args, **kwargs)
 
+    def Navigate(*args, **kwargs):
+        """
+        Navigate(self, int flags=NavigationKeyEvent.IsForward) -> bool
+
+        Does keyboard navigation from this window to another, by sending a
+        `wx.NavigationKeyEvent`.
+        """
+        return _core_.Window_Navigate(*args, **kwargs)
+
+    def MoveAfterInTabOrder(*args, **kwargs):
+        """
+        MoveAfterInTabOrder(self, Window win)
+
+        Moves this window in the tab navigation order after the specified
+        sibling window.  This means that when the user presses the TAB key on
+        that other window, the focus switches to this window.
+
+        The default tab order is the same as creation order.  This function
+        and `MoveBeforeInTabOrder` allow to change it after creating all the
+        windows.
+
+        """
+        return _core_.Window_MoveAfterInTabOrder(*args, **kwargs)
+
+    def MoveBeforeInTabOrder(*args, **kwargs):
+        """
+        MoveBeforeInTabOrder(self, Window win)
+
+        Same as `MoveAfterInTabOrder` except that it inserts this window just
+        before win instead of putting it right after it.
+        """
+        return _core_.Window_MoveBeforeInTabOrder(*args, **kwargs)
+
     def GetChildren(*args, **kwargs):
         """
         GetChildren(self) -> PyObject
     def GetChildren(*args, **kwargs):
         """
         GetChildren(self) -> PyObject
@@ -6115,7 +6801,8 @@ class Window(EvtHandler):
         """
         GetGrandParent(self) -> Window
 
         """
         GetGrandParent(self) -> Window
 
-        Returns the parent of the parent of this window, or None if there isn't one.
+        Returns the parent of the parent of this window, or None if there
+        isn't one.
         """
         return _core_.Window_GetGrandParent(*args, **kwargs)
 
         """
         return _core_.Window_GetGrandParent(*args, **kwargs)
 
@@ -6195,7 +6882,7 @@ class Window(EvtHandler):
         substitute another, for example to allow central implementation of
         event-handling for a variety of different window classes.
 
         substitute another, for example to allow central implementation of
         event-handling for a variety of different window classes.
 
-        It is usually better to use wx.Window.PushEventHandler since this sets
+        It is usually better to use `wx.Window.PushEventHandler` since this sets
         up a chain of event handlers, where an event not handled by one event
         handler is handed to the next one in the chain.
         """
         up a chain of event handlers, where an event not handled by one event
         handler is handed to the next one in the chain.
         """
@@ -6214,7 +6901,7 @@ class Window(EvtHandler):
 
         wx.Window.PushEventHandler allows an application to set up a chain of
         event handlers, where an event not handled by one event handler is
 
         wx.Window.PushEventHandler allows an application to set up a chain of
         event handlers, where an event not handled by one event handler is
-        handed to the next one in the chain. Use wx.Window.PopEventHandler to
+        handed to the next one in the chain. Use `wx.Window.PopEventHandler` to
         remove the event handler.
         """
         return _core_.Window_PushEventHandler(*args, **kwargs)
         remove the event handler.
         """
         return _core_.Window_PushEventHandler(*args, **kwargs)
@@ -6233,11 +6920,11 @@ class Window(EvtHandler):
         """
         RemoveEventHandler(self, EvtHandler handler) -> bool
 
         """
         RemoveEventHandler(self, EvtHandler handler) -> bool
 
-        Find the given handler in the event handler chain and remove (but
-        not delete) it from the event handler chain, return True if it was
-        found and False otherwise (this also results in an assert failure so
-        this function should only be called when the handler is supposed to
-        be there.)
+        Find the given handler in the event handler chain and remove (but not
+        delete) it from the event handler chain, return True if it was found
+        and False otherwise (this also results in an assert failure so this
+        function should only be called when the handler is supposed to be
+        there.)
         """
         return _core_.Window_RemoveEventHandler(*args, **kwargs)
 
         """
         return _core_.Window_RemoveEventHandler(*args, **kwargs)
 
@@ -6265,9 +6952,9 @@ class Window(EvtHandler):
         Validate(self) -> bool
 
         Validates the current values of the child controls using their
         Validate(self) -> bool
 
         Validates the current values of the child controls using their
-        validators.  If the window has wx.WS_EX_VALIDATE_RECURSIVELY
-        extra style flag set, the method will also call Validate() of all
-        child windows.  Returns false if any of the validations failed.
+        validators.  If the window has wx.WS_EX_VALIDATE_RECURSIVELY extra
+        style flag set, the method will also call Validate() of all child
+        windows.  Returns false if any of the validations failed.
         """
         return _core_.Window_Validate(*args, **kwargs)
 
         """
         return _core_.Window_Validate(*args, **kwargs)
 
@@ -6275,10 +6962,10 @@ class Window(EvtHandler):
         """
         TransferDataToWindow(self) -> bool
 
         """
         TransferDataToWindow(self) -> bool
 
-        Transfers values to child controls from data areas specified by
-        their validators.  If the window has wx.WS_EX_VALIDATE_RECURSIVELY
-        extra style flag set, the method will also call
-        TransferDataToWindow() of all child windows.
+        Transfers values to child controls from data areas specified by their
+        validators.  If the window has wx.WS_EX_VALIDATE_RECURSIVELY extra
+        style flag set, the method will also call TransferDataToWindow() of
+        all child windows.
         """
         return _core_.Window_TransferDataToWindow(*args, **kwargs)
 
         """
         return _core_.Window_TransferDataToWindow(*args, **kwargs)
 
@@ -6286,11 +6973,10 @@ class Window(EvtHandler):
         """
         TransferDataFromWindow(self) -> bool
 
         """
         TransferDataFromWindow(self) -> bool
 
-        Transfers values from child controls to data areas specified by
-        their validators. Returns false if a transfer failed.  If the
-        window has wx.WS_EX_VALIDATE_RECURSIVELY extra style flag set, the
-        method will also call TransferDataFromWindow() of all child
-        windows.
+        Transfers values from child controls to data areas specified by their
+        validators. Returns false if a transfer failed.  If the window has
+        wx.WS_EX_VALIDATE_RECURSIVELY extra style flag set, the method will
+        also call TransferDataFromWindow() of all child windows.
         """
         return _core_.Window_TransferDataFromWindow(*args, **kwargs)
 
         """
         return _core_.Window_TransferDataFromWindow(*args, **kwargs)
 
@@ -6298,8 +6984,8 @@ class Window(EvtHandler):
         """
         InitDialog(self)
 
         """
         InitDialog(self)
 
-        Sends an EVT_INIT_DIALOG event, whose handler usually transfers
-        data to the dialog via validators.
+        Sends an EVT_INIT_DIALOG event, whose handler usually transfers data
+        to the dialog via validators.
         """
         return _core_.Window_InitDialog(*args, **kwargs)
 
         """
         return _core_.Window_InitDialog(*args, **kwargs)
 
@@ -6437,7 +7123,7 @@ class Window(EvtHandler):
 
     def GetCapture(*args, **kwargs):
         """
 
     def GetCapture(*args, **kwargs):
         """
-        Window.GetCapture() -> Window
+        GetCapture() -> Window
 
         Returns the window which currently captures the mouse or None
         """
 
         Returns the window which currently captures the mouse or None
         """
@@ -6464,7 +7150,7 @@ class Window(EvtHandler):
 
     def RefreshRect(*args, **kwargs):
         """
 
     def RefreshRect(*args, **kwargs):
         """
-        RefreshRect(self, Rect rect)
+        RefreshRect(self, Rect rect, bool eraseBackground=True)
 
         Redraws the contents of the given rectangle: the area inside it will
         be repainted.  This is the same as Refresh but has a nicer syntax.
 
         Redraws the contents of the given rectangle: the area inside it will
         be repainted.  This is the same as Refresh but has a nicer syntax.
@@ -6498,10 +7184,11 @@ class Window(EvtHandler):
         """
         Freeze(self)
 
         """
         Freeze(self)
 
-        Freezes the window or, in other words, prevents any updates from taking place
-        on screen, the window is not redrawn at all. Thaw must be called to reenable
-        window redrawing.  Calls to Freeze/Thaw may be nested, with the actual Thaw
-        being delayed until all the nesting has been undone.
+        Freezes the window or, in other words, prevents any updates from
+        taking place on screen, the window is not redrawn at all. Thaw must be
+        called to reenable window redrawing.  Calls to Freeze/Thaw may be
+        nested, with the actual Thaw being delayed until all the nesting has
+        been undone.
 
         This method is useful for visual appearance optimization (for example,
         it is a good idea to use it before inserting large amount of text into
 
         This method is useful for visual appearance optimization (for example,
         it is a good idea to use it before inserting large amount of text into
@@ -6516,8 +7203,8 @@ class Window(EvtHandler):
         Thaw(self)
 
         Reenables window updating after a previous call to Freeze.  Calls to
         Thaw(self)
 
         Reenables window updating after a previous call to Freeze.  Calls to
-        Freeze/Thaw may be nested, so Thaw must be called the same number of times
-        that Freeze was before the window will be updated.
+        Freeze/Thaw may be nested, so Thaw must be called the same number of
+        times that Freeze was before the window will be updated.
         """
         return _core_.Window_Thaw(*args, **kwargs)
 
         """
         return _core_.Window_Thaw(*args, **kwargs)
 
@@ -6585,28 +7272,28 @@ class Window(EvtHandler):
         """
         GetDefaultAttributes(self) -> VisualAttributes
 
         """
         GetDefaultAttributes(self) -> VisualAttributes
 
-        Get the default attributes for an instance of this class.  This
-        is useful if you want to use the same font or colour in your own
-        control as in a standard control -- which is a much better idea
-        than hard coding specific colours or fonts which might look
-        completely out of place on the users system, especially if it
-        uses themes.
+        Get the default attributes for an instance of this class.  This is
+        useful if you want to use the same font or colour in your own control
+        as in a standard control -- which is a much better idea than hard
+        coding specific colours or fonts which might look completely out of
+        place on the user's system, especially if it uses themes.
         """
         return _core_.Window_GetDefaultAttributes(*args, **kwargs)
 
     def GetClassDefaultAttributes(*args, **kwargs):
         """
         """
         return _core_.Window_GetDefaultAttributes(*args, **kwargs)
 
     def GetClassDefaultAttributes(*args, **kwargs):
         """
-        Window.GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
+        GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
 
 
-        Get the default attributes for this class.  This is useful if
-        you want to use the same font or colour in your own control as
-        in a standard control -- which is a much better idea than hard
-        coding specific colours or fonts which might look completely out
-        of place on the users system, especially if it uses themes.
+        Get the default attributes for this class.  This is useful if you want
+        to use the same font or colour in your own control as in a standard
+        control -- which is a much better idea than hard coding specific
+        colours or fonts which might look completely out of place on the
+        user's system, especially if it uses themes.
 
         The variant parameter is only relevant under Mac currently and is
 
         The variant parameter is only relevant under Mac currently and is
-        ignore under other platforms. Under Mac, it will change the size of the
-        returned font. See SetWindowVariant for more about this.
+        ignore under other platforms. Under Mac, it will change the size of
+        the returned font. See `wx.Window.SetWindowVariant` for more about
+        this.
         """
         return _core_.Window_GetClassDefaultAttributes(*args, **kwargs)
 
         """
         return _core_.Window_GetClassDefaultAttributes(*args, **kwargs)
 
@@ -6618,22 +7305,23 @@ class Window(EvtHandler):
         Sets the background colour of the window.  Returns True if the colour
         was changed.  The background colour is usually painted by the default
         EVT_ERASE_BACKGROUND event handler function under Windows and
         Sets the background colour of the window.  Returns True if the colour
         was changed.  The background colour is usually painted by the default
         EVT_ERASE_BACKGROUND event handler function under Windows and
-        automatically under GTK.
+        automatically under GTK.  Using `wx.NullColour` will reset the window
+        to the default background colour.
 
 
-        Note that setting the background colour does not cause an immediate
-        refresh, so you may wish to call ClearBackground or Refresh after
+        Note that setting the background colour may not cause an immediate
+        refresh, so you may wish to call `ClearBackground` or `Refresh` after
         calling this function.
 
         calling this function.
 
-        Use this function with care under GTK+ as the new appearance of the
-        window might not look equally well when used with themes, i.e GTK+'s
-        ability to change its look as the user wishes with run-time loadable
-        modules.
+        Using this function will disable attempts to use themes for this
+        window, if the system supports them.  Use with care since usually the
+        themes represent the appearance chosen by the user to be used for all
+        applications on the system.
         """
         return _core_.Window_SetBackgroundColour(*args, **kwargs)
 
         """
         return _core_.Window_SetBackgroundColour(*args, **kwargs)
 
-    def SetDefaultBackgroundColour(*args, **kwargs):
-        """SetDefaultBackgroundColour(self, Colour colour)"""
-        return _core_.Window_SetDefaultBackgroundColour(*args, **kwargs)
+    def SetOwnBackgroundColour(*args, **kwargs):
+        """SetOwnBackgroundColour(self, Colour colour)"""
+        return _core_.Window_SetOwnBackgroundColour(*args, **kwargs)
 
     def SetForegroundColour(*args, **kwargs):
         """
 
     def SetForegroundColour(*args, **kwargs):
         """
@@ -6646,9 +7334,9 @@ class Window(EvtHandler):
         """
         return _core_.Window_SetForegroundColour(*args, **kwargs)
 
         """
         return _core_.Window_SetForegroundColour(*args, **kwargs)
 
-    def SetDefaultForegroundColour(*args, **kwargs):
-        """SetDefaultForegroundColour(self, Colour colour)"""
-        return _core_.Window_SetDefaultForegroundColour(*args, **kwargs)
+    def SetOwnForegroundColour(*args, **kwargs):
+        """SetOwnForegroundColour(self, Colour colour)"""
+        return _core_.Window_SetOwnForegroundColour(*args, **kwargs)
 
     def GetBackgroundColour(*args, **kwargs):
         """
 
     def GetBackgroundColour(*args, **kwargs):
         """
@@ -6668,6 +7356,54 @@ class Window(EvtHandler):
         """
         return _core_.Window_GetForegroundColour(*args, **kwargs)
 
         """
         return _core_.Window_GetForegroundColour(*args, **kwargs)
 
+    def SetBackgroundStyle(*args, **kwargs):
+        """
+        SetBackgroundStyle(self, int style) -> bool
+
+        Returns the background style of the window. The background style
+        indicates how the background of the window is drawn.
+
+            ======================  ========================================
+            wx.BG_STYLE_SYSTEM      The background colour or pattern should
+                                    be determined by the system
+            wx.BG_STYLE_COLOUR      The background should be a solid colour
+            wx.BG_STYLE_CUSTOM      The background will be implemented by the
+                                    application.
+            ======================  ========================================
+
+        On GTK+, use of wx.BG_STYLE_CUSTOM allows the flicker-free drawing of
+        a custom background, such as a tiled bitmap. Currently the style has
+        no effect on other platforms.
+
+        :see: `GetBackgroundStyle`, `SetBackgroundColour`
+        """
+        return _core_.Window_SetBackgroundStyle(*args, **kwargs)
+
+    def GetBackgroundStyle(*args, **kwargs):
+        """
+        GetBackgroundStyle(self) -> int
+
+        Returns the background style of the window.
+
+        :see: `SetBackgroundStyle`
+        """
+        return _core_.Window_GetBackgroundStyle(*args, **kwargs)
+
+    def HasTransparentBackground(*args, **kwargs):
+        """
+        HasTransparentBackground(self) -> bool
+
+        Returns True if this window's background is transparent (as, for
+        example, for `wx.StaticText`) and should show the parent window's
+        background.
+
+        This method is mostly used internally by the library itself and you
+        normally shouldn't have to call it. You may, however, have to override
+        it in your custom control classes to ensure that background is painted
+        correctly.
+        """
+        return _core_.Window_HasTransparentBackground(*args, **kwargs)
+
     def SetCursor(*args, **kwargs):
         """
         SetCursor(self, Cursor cursor) -> bool
     def SetCursor(*args, **kwargs):
         """
         SetCursor(self, Cursor cursor) -> bool
@@ -6696,9 +7432,9 @@ class Window(EvtHandler):
         """
         return _core_.Window_SetFont(*args, **kwargs)
 
         """
         return _core_.Window_SetFont(*args, **kwargs)
 
-    def SetDefaultFont(*args, **kwargs):
-        """SetDefaultFont(self, Font font)"""
-        return _core_.Window_SetDefaultFont(*args, **kwargs)
+    def SetOwnFont(*args, **kwargs):
+        """SetOwnFont(self, Font font)"""
+        return _core_.Window_SetOwnFont(*args, **kwargs)
 
     def GetFont(*args, **kwargs):
         """
 
     def GetFont(*args, **kwargs):
         """
@@ -6829,46 +7565,30 @@ class Window(EvtHandler):
         wx.UpdateUIEvent.SetMode or wx.UpdateUIEvent.SetUpdateInterval to
         limit the overhead that wxWindows incurs by sending update UI events
         in idle time.
         wx.UpdateUIEvent.SetMode or wx.UpdateUIEvent.SetUpdateInterval to
         limit the overhead that wxWindows incurs by sending update UI events
         in idle time.
-
-        The flags should be a bitlist of one or more of the following values:
-
-            wx.UPDATE_UI_NONE          No particular value
-            wx.UPDATE_UI_RECURSE       Call the function for descendants
-            wx.UPDATE_UI_FROMIDLE      Invoked from OnIdle
-
-        If you are calling this function from an OnIdle function, make sure
-        you pass the wx.UPDATE_UI_FROMIDLE flag, since this tells the window to
-        only update the UI elements that need to be updated in idle time. Some
-        windows update their elements only when necessary, for example when a
-        menu is about to be shown. The following is an example of how to call
-        UpdateWindowUI from an idle function.
-
-            def OnIdle(self, evt):
-                if wx.UpdateUIEvent.CanUpdate(self):
-                    self.UpdateWindowUI(wx.UPDATE_UI_FROMIDLE);
-
         """
         return _core_.Window_UpdateWindowUI(*args, **kwargs)
 
     def PopupMenuXY(*args, **kwargs):
         """
         """
         return _core_.Window_UpdateWindowUI(*args, **kwargs)
 
     def PopupMenuXY(*args, **kwargs):
         """
-        PopupMenuXY(self, Menu menu, int x, int y) -> bool
+        PopupMenuXY(self, Menu menu, int x=-1, int y=-1) -> bool
 
 
-        Pops up the given menu at the specified coordinates, relative to this
-        window, and returns control when the user has dismissed the menu. If a
-        menu item is selected, the corresponding menu event is generated and
-        will be processed as usual.
+        Pops up the given menu at the specified coordinates, relative to this window,
+        and returns control when the user has dismissed the menu. If a menu item is
+        selected, the corresponding menu event is generated and will be processed as
+        usual.  If the default position is given then the current position of the
+        mouse cursor will be used.
         """
         return _core_.Window_PopupMenuXY(*args, **kwargs)
 
     def PopupMenu(*args, **kwargs):
         """
         """
         return _core_.Window_PopupMenuXY(*args, **kwargs)
 
     def PopupMenu(*args, **kwargs):
         """
-        PopupMenu(self, Menu menu, Point pos) -> bool
+        PopupMenu(self, Menu menu, Point pos=DefaultPosition) -> bool
 
 
-        Pops up the given menu at the specified coordinates, relative to this
-        window, and returns control when the user has dismissed the menu. If a
-        menu item is selected, the corresponding menu event is generated and
-        will be processed as usual.
+        Pops up the given menu at the specified coordinates, relative to this window,
+        and returns control when the user has dismissed the menu. If a menu item is
+        selected, the corresponding menu event is generated and will be processed as
+        usual.  If the default position is given then the current position of the
+        mouse cursor will be used.
         """
         return _core_.Window_PopupMenu(*args, **kwargs)
 
         """
         return _core_.Window_PopupMenu(*args, **kwargs)
 
@@ -6882,6 +7602,22 @@ class Window(EvtHandler):
         """
         return _core_.Window_GetHandle(*args, **kwargs)
 
         """
         return _core_.Window_GetHandle(*args, **kwargs)
 
+    def AssociateHandle(*args, **kwargs):
+        """
+        AssociateHandle(self, long handle)
+
+        Associate the window with a new native handle
+        """
+        return _core_.Window_AssociateHandle(*args, **kwargs)
+
+    def DissociateHandle(*args, **kwargs):
+        """
+        DissociateHandle(self)
+
+        Dissociate the current native handle from the window
+        """
+        return _core_.Window_DissociateHandle(*args, **kwargs)
+
     def OnPaint(*args, **kwargs):
         """OnPaint(self, PaintEvent event)"""
         return _core_.Window_OnPaint(*args, **kwargs)
     def OnPaint(*args, **kwargs):
         """OnPaint(self, PaintEvent event)"""
         return _core_.Window_OnPaint(*args, **kwargs)
@@ -6896,22 +7632,10 @@ class Window(EvtHandler):
 
     def SetScrollbar(*args, **kwargs):
         """
 
     def SetScrollbar(*args, **kwargs):
         """
-        SetScrollbar(self, int orientation, int pos, int thumbvisible, int range, 
+        SetScrollbar(self, int orientation, int position, int thumbSize, int range, 
             bool refresh=True)
 
         Sets the scrollbar properties of a built-in scrollbar.
             bool refresh=True)
 
         Sets the scrollbar properties of a built-in scrollbar.
-
-            orientation: Determines the scrollbar whose page size is to be
-                         set. May be wx.HORIZONTAL or wx.VERTICAL.
-
-            position:    The position of the scrollbar in scroll units.
-
-            thumbSize:   The size of the thumb, or visible portion of the
-                         scrollbar, in scroll units.
-
-            range:       The maximum position of the scrollbar.
-
-            refresh:     True to redraw the scrollbar, false otherwise.
         """
         return _core_.Window_SetScrollbar(*args, **kwargs)
 
         """
         return _core_.Window_SetScrollbar(*args, **kwargs)
 
@@ -6955,16 +7679,6 @@ class Window(EvtHandler):
         accordingly.  Use this function to optimise your scrolling
         implementations, to minimise the area that must be redrawn. Note that
         it is rarely required to call this function from a user program.
         accordingly.  Use this function to optimise your scrolling
         implementations, to minimise the area that must be redrawn. Note that
         it is rarely required to call this function from a user program.
-
-            dx:   Amount to scroll horizontally.
-
-            dy:   Amount to scroll vertically.
-
-            rect: Rectangle to invalidate. If this is None, the whole window
-                  is invalidated. If you pass a rectangle corresponding to the
-                  area of the window exposed by the scroll, your painting
-                  handler can optimize painting by checking for the
-                  invalidated region.
         """
         return _core_.Window_ScrollWindow(*args, **kwargs)
 
         """
         return _core_.Window_ScrollWindow(*args, **kwargs)
 
@@ -6983,7 +7697,7 @@ class Window(EvtHandler):
         """
         ScrollPages(self, int pages) -> bool
 
         """
         ScrollPages(self, int pages) -> bool
 
-        If the platform and window class supports it,  scrolls the window by
+        If the platform and window class supports it, scrolls the window by
         the given number of pages down, if pages is positive, or up if pages
         is negative.  Returns True if the window was scrolled, False if it was
         already on top/bottom and nothing was done.
         the given number of pages down, if pages is positive, or up if pages
         is negative.  Returns True if the window was scrolled, False if it was
         already on top/bottom and nothing was done.
@@ -7166,7 +7880,7 @@ class Window(EvtHandler):
         layout sizer object is already owned by the window, it will be deleted
         if the deleteOld parameter is true. Note that this function will also
         call SetAutoLayout implicitly with a True parameter if the sizer is
         layout sizer object is already owned by the window, it will be deleted
         if the deleteOld parameter is true. Note that this function will also
         call SetAutoLayout implicitly with a True parameter if the sizer is
-        non-NoneL and False otherwise.
+        non-None, and False otherwise.
         """
         return _core_.Window_SetSizer(*args, **kwargs)
 
         """
         return _core_.Window_SetSizer(*args, **kwargs)
 
@@ -7210,30 +7924,30 @@ class Window(EvtHandler):
         """
         InheritAttributes(self)
 
         """
         InheritAttributes(self)
 
-        This function is (or should be, in case of custom controls)
-        called during window creation to intelligently set up the window
-        visual attributes, that is the font and the foreground and
-        background colours.
-
-        By 'intelligently' the following is meant: by default, all
-        windows use their own default attributes. However if some of the
-        parent's attributes are explicitly changed (that is, using
-        SetFont and not SetDefaultFont) and if the corresponding
-        attribute hadn't been explicitly set for this window itself, then
-        this window takes the same value as used by the parent. In
-        addition, if the window overrides ShouldInheritColours to return
-        false, the colours will not be changed no matter what and only
-        the font might.
-
-        This rather complicated logic is necessary in order to accomodate
-        the different usage scenarius. The most common one is when all
-        default attributes are used and in this case, nothing should be
-        inherited as in modern GUIs different controls use different
-        fonts (and colours) than their siblings so they can't inherit the
-        same value from the parent. However it was also deemed desirable
-        to allow to simply change the attributes of all children at once
-        by just changing the font or colour of their common parent, hence
-        in this case we do inherit the parents attributes.
+        This function is (or should be, in case of custom controls) called
+        during window creation to intelligently set up the window visual
+        attributes, that is the font and the foreground and background
+        colours.
+
+        By 'intelligently' the following is meant: by default, all windows use
+        their own default attributes. However if some of the parent's
+        attributes are explicitly changed (that is, using SetFont and not
+        SetOwnFont) and if the corresponding attribute hadn't been
+        explicitly set for this window itself, then this window takes the same
+        value as used by the parent. In addition, if the window overrides
+        ShouldInheritColours to return false, the colours will not be changed
+        no matter what and only the font might.
+
+        This rather complicated logic is necessary in order to accommodate the
+        different usage scenarios. The most common one is when all default
+        attributes are used and in this case, nothing should be inherited as
+        in modern GUIs different controls use different fonts (and colours)
+        than their siblings so they can't inherit the same value from the
+        parent. However it was also deemed desirable to allow to simply change
+        the attributes of all children at once by just changing the font or
+        colour of their common parent, hence in this case we do inherit the
+        parents attributes.
+
         """
         return _core_.Window_InheritAttributes(*args, **kwargs)
 
         """
         return _core_.Window_InheritAttributes(*args, **kwargs)
 
@@ -7242,11 +7956,11 @@ class Window(EvtHandler):
         ShouldInheritColours(self) -> bool
 
         Return true from here to allow the colours of this window to be
         ShouldInheritColours(self) -> bool
 
         Return true from here to allow the colours of this window to be
-        changed by InheritAttributes, returning false forbids inheriting
-        them from the parent window.
+        changed by InheritAttributes, returning false forbids inheriting them
+        from the parent window.
 
 
-        The base class version returns false, but this method is
-        overridden in wxControl where it returns true.
+        The base class version returns false, but this method is overridden in
+        wxControl where it returns true.
         """
         return _core_.Window_ShouldInheritColours(*args, **kwargs)
 
         """
         return _core_.Window_ShouldInheritColours(*args, **kwargs)
 
@@ -7294,7 +8008,7 @@ def Window_NextControlId(*args, **kwargs):
     Window_NextControlId(int winid) -> int
 
     Get the id of the control following the one with the given
     Window_NextControlId(int winid) -> int
 
     Get the id of the control following the one with the given
-    (autogenerated) id
+    autogenerated) id
     """
     return _core_.Window_NextControlId(*args, **kwargs)
 
     """
     return _core_.Window_NextControlId(*args, **kwargs)
 
@@ -7303,7 +8017,7 @@ def Window_PrevControlId(*args, **kwargs):
     Window_PrevControlId(int winid) -> int
 
     Get the id of the control preceding the one with the given
     Window_PrevControlId(int winid) -> int
 
     Get the id of the control preceding the one with the given
-    (autogenerated) id
+    autogenerated) id
     """
     return _core_.Window_PrevControlId(*args, **kwargs)
 
     """
     return _core_.Window_PrevControlId(*args, **kwargs)
 
@@ -7328,15 +8042,16 @@ def Window_GetClassDefaultAttributes(*args, **kwargs):
     """
     Window_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
 
     """
     Window_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
 
-    Get the default attributes for this class.  This is useful if
-    you want to use the same font or colour in your own control as
-    in a standard control -- which is a much better idea than hard
-    coding specific colours or fonts which might look completely out
-    of place on the users system, especially if it uses themes.
+    Get the default attributes for this class.  This is useful if you want
+    to use the same font or colour in your own control as in a standard
+    control -- which is a much better idea than hard coding specific
+    colours or fonts which might look completely out of place on the
+    user's system, especially if it uses themes.
 
     The variant parameter is only relevant under Mac currently and is
 
     The variant parameter is only relevant under Mac currently and is
-    ignore under other platforms. Under Mac, it will change the size of the
-    returned font. See SetWindowVariant for more about this.
+    ignore under other platforms. Under Mac, it will change the size of
+    the returned font. See `wx.Window.SetWindowVariant` for more about
+    this.
     """
     return _core_.Window_GetClassDefaultAttributes(*args, **kwargs)
 
     """
     return _core_.Window_GetClassDefaultAttributes(*args, **kwargs)
 
@@ -7404,6 +8119,7 @@ def Window_FromHWND(*args, **kwargs):
 #---------------------------------------------------------------------------
 
 class Validator(EvtHandler):
 #---------------------------------------------------------------------------
 
 class Validator(EvtHandler):
+    """Proxy of C++ Validator class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxValidator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxValidator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -7439,12 +8155,12 @@ class Validator(EvtHandler):
         return _core_.Validator_SetWindow(*args, **kwargs)
 
     def IsSilent(*args, **kwargs):
         return _core_.Validator_SetWindow(*args, **kwargs)
 
     def IsSilent(*args, **kwargs):
-        """Validator.IsSilent() -> bool"""
+        """IsSilent() -> bool"""
         return _core_.Validator_IsSilent(*args, **kwargs)
 
     IsSilent = staticmethod(IsSilent)
     def SetBellOnError(*args, **kwargs):
         return _core_.Validator_IsSilent(*args, **kwargs)
 
     IsSilent = staticmethod(IsSilent)
     def SetBellOnError(*args, **kwargs):
-        """Validator.SetBellOnError(int doIt=True)"""
+        """SetBellOnError(int doIt=True)"""
         return _core_.Validator_SetBellOnError(*args, **kwargs)
 
     SetBellOnError = staticmethod(SetBellOnError)
         return _core_.Validator_SetBellOnError(*args, **kwargs)
 
     SetBellOnError = staticmethod(SetBellOnError)
@@ -7465,6 +8181,7 @@ def Validator_SetBellOnError(*args, **kwargs):
     return _core_.Validator_SetBellOnError(*args, **kwargs)
 
 class PyValidator(Validator):
     return _core_.Validator_SetBellOnError(*args, **kwargs)
 
 class PyValidator(Validator):
+    """Proxy of C++ PyValidator class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyValidator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPyValidator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -7492,6 +8209,7 @@ _core_.PyValidator_swigregister(PyValidatorPtr)
 #---------------------------------------------------------------------------
 
 class Menu(EvtHandler):
 #---------------------------------------------------------------------------
 
 class Menu(EvtHandler):
+    """Proxy of C++ Menu class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenu instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenu instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -7741,6 +8459,7 @@ DefaultValidator = cvar.DefaultValidator
 #---------------------------------------------------------------------------
 
 class MenuBar(Window):
 #---------------------------------------------------------------------------
 
 class MenuBar(Window):
+    """Proxy of C++ MenuBar class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenuBar instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenuBar instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -7862,6 +8581,7 @@ _core_.MenuBar_swigregister(MenuBarPtr)
 #---------------------------------------------------------------------------
 
 class MenuItem(Object):
 #---------------------------------------------------------------------------
 
 class MenuItem(Object):
+    """Proxy of C++ MenuItem class"""
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenuItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxMenuItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
@@ -7907,7 +8627,7 @@ class MenuItem(Object):
         return _core_.MenuItem_GetText(*args, **kwargs)
 
     def GetLabelFromText(*args, **kwargs):
         return _core_.MenuItem_GetText(*args, **kwargs)
 
     def GetLabelFromText(*args, **kwargs):
-        """MenuItem.GetLabelFromText(String text) -> String"""
+        """GetLabelFromText(String text) -> String"""
         return _core_.MenuItem_GetLabelFromText(*args, **kwargs)
 
     GetLabelFromText = staticmethod(GetLabelFromText)
         return _core_.MenuItem_GetLabelFromText(*args, **kwargs)
 
     GetLabelFromText = staticmethod(GetLabelFromText)
@@ -8020,7 +8740,7 @@ class MenuItem(Object):
         return _core_.MenuItem_GetMarginWidth(*args, **kwargs)
 
     def GetDefaultMarginWidth(*args, **kwargs):
         return _core_.MenuItem_GetMarginWidth(*args, **kwargs)
 
     def GetDefaultMarginWidth(*args, **kwargs):
-        """MenuItem.GetDefaultMarginWidth() -> int"""
+        """GetDefaultMarginWidth() -> int"""
         return _core_.MenuItem_GetDefaultMarginWidth(*args, **kwargs)
 
     GetDefaultMarginWidth = staticmethod(GetDefaultMarginWidth)
         return _core_.MenuItem_GetDefaultMarginWidth(*args, **kwargs)
 
     GetDefaultMarginWidth = staticmethod(GetDefaultMarginWidth)
@@ -8066,19 +8786,19 @@ class Control(Window):
     """
     This is the base class for a control or 'widget'.
 
     """
     This is the base class for a control or 'widget'.
 
-    A control is generally a small window which processes user input and/or
-    displays one or more item of data.
+    A control is generally a small window which processes user input
+    and/or displays one or more item of data.
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxControl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
         """
     """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxControl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
         """
-        __init__(self, Window parent, int id, Point pos=DefaultPosition, Size size=DefaultSize
-            long style=0, Validator validator=DefaultValidator, 
+        __init__(self, Window parent, int id=-1, Point pos=DefaultPosition
+            Size size=DefaultSize, long style=0, Validator validator=DefaultValidator, 
             String name=ControlNameStr) -> Control
 
             String name=ControlNameStr) -> Control
 
-        Create a Control.  Normally you should only call this from a
-        subclass' __init__ as a plain old wx.Control is not very useful.
+        Create a Control.  Normally you should only call this from a subclass'
+        __init__ as a plain old wx.Control is not very useful.
         """
         newobj = _core_.new_Control(*args, **kwargs)
         self.this = newobj.this
         """
         newobj = _core_.new_Control(*args, **kwargs)
         self.this = newobj.this
@@ -8088,8 +8808,8 @@ class Control(Window):
 
     def Create(*args, **kwargs):
         """
 
     def Create(*args, **kwargs):
         """
-        Create(self, Window parent, int id, Point pos=DefaultPosition, Size size=DefaultSize
-            long style=0, Validator validator=DefaultValidator, 
+        Create(self, Window parent, int id=-1, Point pos=DefaultPosition
+            Size size=DefaultSize, long style=0, Validator validator=DefaultValidator, 
             String name=ControlNameStr) -> bool
 
         Do the 2nd phase and create the GUI control.
             String name=ControlNameStr) -> bool
 
         Do the 2nd phase and create the GUI control.
@@ -8100,8 +8820,10 @@ class Control(Window):
         """
         Command(self, CommandEvent event)
 
         """
         Command(self, CommandEvent event)
 
-        Simulates the effect of the user issuing a command to the
-        item. See wx.CommandEvent.
+        Simulates the effect of the user issuing a command to the item.
+
+        :see: `wx.CommandEvent`
+
         """
         return _core_.Control_Command(*args, **kwargs)
 
         """
         return _core_.Control_Command(*args, **kwargs)
 
@@ -8123,17 +8845,18 @@ class Control(Window):
 
     def GetClassDefaultAttributes(*args, **kwargs):
         """
 
     def GetClassDefaultAttributes(*args, **kwargs):
         """
-        Control.GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
+        GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
 
 
-        Get the default attributes for this class.  This is useful if
-        you want to use the same font or colour in your own control as
-        in a standard control -- which is a much better idea than hard
-        coding specific colours or fonts which might look completely out
-        of place on the users system, especially if it uses themes.
+        Get the default attributes for this class.  This is useful if you want
+        to use the same font or colour in your own control as in a standard
+        control -- which is a much better idea than hard coding specific
+        colours or fonts which might look completely out of place on the
+        user's system, especially if it uses themes.
 
         The variant parameter is only relevant under Mac currently and is
 
         The variant parameter is only relevant under Mac currently and is
-        ignore under other platforms. Under Mac, it will change the size of the
-        returned font. See SetWindowVariant for more about this.
+        ignore under other platforms. Under Mac, it will change the size of
+        the returned font. See `wx.Window.SetWindowVariant` for more about
+        this.
         """
         return _core_.Control_GetClassDefaultAttributes(*args, **kwargs)
 
         """
         return _core_.Control_GetClassDefaultAttributes(*args, **kwargs)
 
@@ -8161,15 +8884,16 @@ def Control_GetClassDefaultAttributes(*args, **kwargs):
     """
     Control_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
 
     """
     Control_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
 
-    Get the default attributes for this class.  This is useful if
-    you want to use the same font or colour in your own control as
-    in a standard control -- which is a much better idea than hard
-    coding specific colours or fonts which might look completely out
-    of place on the users system, especially if it uses themes.
+    Get the default attributes for this class.  This is useful if you want
+    to use the same font or colour in your own control as in a standard
+    control -- which is a much better idea than hard coding specific
+    colours or fonts which might look completely out of place on the
+    user's system, especially if it uses themes.
 
     The variant parameter is only relevant under Mac currently and is
 
     The variant parameter is only relevant under Mac currently and is
-    ignore under other platforms. Under Mac, it will change the size of the
-    returned font. See SetWindowVariant for more about this.
+    ignore under other platforms. Under Mac, it will change the size of
+    the returned font. See `wx.Window.SetWindowVariant` for more about
+    this.
     """
     return _core_.Control_GetClassDefaultAttributes(*args, **kwargs)
 
     """
     return _core_.Control_GetClassDefaultAttributes(*args, **kwargs)
 
@@ -8177,18 +8901,18 @@ def Control_GetClassDefaultAttributes(*args, **kwargs):
 
 class ItemContainer(object):
     """
 
 class ItemContainer(object):
     """
-    wx.ItemContainer defines an interface which is implemented by all
-    controls which have string subitems, each of which may be
-    selected, such as wx.ListBox, wx.CheckListBox, wx.Choice and
-    wx.ComboBox (which implements an extended interface deriving from
-    this one)
+    The wx.ItemContainer class defines an interface which is implemented
+    by all controls which have string subitems, each of which may be
+    selected, such as `wx.ListBox`, `wx.CheckListBox`, `wx.Choice` as well
+    as `wx.ComboBox` which implements an extended interface deriving from
+    this one.
 
 
-    It defines the methods for accessing the control's items and
-    although each of the derived classes implements them differently,
-    they still all conform to the same interface.
+    It defines the methods for accessing the control's items and although
+    each of the derived classes implements them differently, they still
+    all conform to the same interface.
 
 
-    The items in a wx.ItemContainer have (non empty) string labels
-    and, optionally, client data associated with them.
+    The items in a wx.ItemContainer have (non empty) string labels and,
+    optionally, client data associated with them.
 
     """
     def __init__(self): raise RuntimeError, "No constructor defined"
 
     """
     def __init__(self): raise RuntimeError, "No constructor defined"
@@ -8198,20 +8922,20 @@ class ItemContainer(object):
         """
         Append(self, String item, PyObject clientData=None) -> int
 
         """
         Append(self, String item, PyObject clientData=None) -> int
 
-        Adds the item to the control, associating the given data with the
-        item if not None.  The return value is the index of the newly
-        added item which may be different from the last one if the
-        control is sorted (e.g. has wx.LB_SORT or wx.CB_SORT style).
+        Adds the item to the control, associating the given data with the item
+        if not None.  The return value is the index of the newly added item
+        which may be different from the last one if the control is sorted (e.g.
+        has wx.LB_SORT or wx.CB_SORT style).
         """
         return _core_.ItemContainer_Append(*args, **kwargs)
 
     def AppendItems(*args, **kwargs):
         """
         """
         return _core_.ItemContainer_Append(*args, **kwargs)
 
     def AppendItems(*args, **kwargs):
         """
-        AppendItems(self, wxArrayString strings)
+        AppendItems(self, List strings)
 
 
-        Apend several items at once to the control.  Notice that calling
-        this method may be much faster than appending the items one by
-        one if you need to add a lot of items.
+        Apend several items at once to the control.  Notice that calling this
+        method may be much faster than appending the items one by one if you
+        need to add a lot of items.
         """
         return _core_.ItemContainer_AppendItems(*args, **kwargs)
 
         """
         return _core_.ItemContainer_AppendItems(*args, **kwargs)
 
@@ -8219,7 +8943,7 @@ class ItemContainer(object):
         """
         Insert(self, String item, int pos, PyObject clientData=None) -> int
 
         """
         Insert(self, String item, int pos, PyObject clientData=None) -> int
 
-        Insert an item into the control before the item at the pos index,
+        Insert an item into the control before the item at the ``pos`` index,
         optionally associating some data object with the item.
         """
         return _core_.ItemContainer_Insert(*args, **kwargs)
         optionally associating some data object with the item.
         """
         return _core_.ItemContainer_Insert(*args, **kwargs)
@@ -8236,13 +8960,29 @@ class ItemContainer(object):
         """
         Delete(self, int n)
 
         """
         Delete(self, int n)
 
-        Deletes the item at the zero-based index 'n' from the control.
-        Note that it is an error (signalled by a PyAssertionError
-        exception if enabled) to remove an item with the index negative
-        or greater or equal than the number of items in the control.
+        Deletes the item at the zero-based index 'n' from the control. Note
+        that it is an error (signalled by a `wx.PyAssertionError` exception if
+        enabled) to remove an item with the index negative or greater or equal
+        than the number of items in the control.
         """
         return _core_.ItemContainer_Delete(*args, **kwargs)
 
         """
         return _core_.ItemContainer_Delete(*args, **kwargs)
 
+    def GetClientData(*args, **kwargs):
+        """
+        GetClientData(self, int n) -> PyObject
+
+        Returns the client data associated with the given item, (if any.)
+        """
+        return _core_.ItemContainer_GetClientData(*args, **kwargs)
+
+    def SetClientData(*args, **kwargs):
+        """
+        SetClientData(self, int n, PyObject clientData)
+
+        Associate the given client data with the item at position n.
+        """
+        return _core_.ItemContainer_SetClientData(*args, **kwargs)
+
     def GetCount(*args, **kwargs):
         """
         GetCount(self) -> int
     def GetCount(*args, **kwargs):
         """
         GetCount(self) -> int
@@ -8284,51 +9024,49 @@ class ItemContainer(object):
         FindString(self, String s) -> int
 
         Finds an item whose label matches the given string.  Returns the
         FindString(self, String s) -> int
 
         Finds an item whose label matches the given string.  Returns the
-        zero-based position of the item, or wx.NOT_FOUND if the string
-        was not found.
+        zero-based position of the item, or ``wx.NOT_FOUND`` if the string was not
+        found.
         """
         return _core_.ItemContainer_FindString(*args, **kwargs)
 
         """
         return _core_.ItemContainer_FindString(*args, **kwargs)
 
-    def Select(*args, **kwargs):
+    def SetSelection(*args, **kwargs):
         """
         """
-        Select(self, int n)
+        SetSelection(self, int n)
 
         Sets the item at index 'n' to be the selected item.
         """
 
         Sets the item at index 'n' to be the selected item.
         """
-        return _core_.ItemContainer_Select(*args, **kwargs)
+        return _core_.ItemContainer_SetSelection(*args, **kwargs)
 
 
-    SetSelection = Select 
     def GetSelection(*args, **kwargs):
         """
         GetSelection(self) -> int
 
     def GetSelection(*args, **kwargs):
         """
         GetSelection(self) -> int
 
-        Returns the index of the selected item or wx.NOT_FOUND if no item is selected.
+        Returns the index of the selected item or ``wx.NOT_FOUND`` if no item
+        is selected.
         """
         return _core_.ItemContainer_GetSelection(*args, **kwargs)
 
         """
         return _core_.ItemContainer_GetSelection(*args, **kwargs)
 
+    def SetStringSelection(*args, **kwargs):
+        """SetStringSelection(self, String s) -> bool"""
+        return _core_.ItemContainer_SetStringSelection(*args, **kwargs)
+
     def GetStringSelection(*args, **kwargs):
         """
         GetStringSelection(self) -> String
 
     def GetStringSelection(*args, **kwargs):
         """
         GetStringSelection(self) -> String
 
-        Returns the label of the selected item or an empty string if no item is selected.
+        Returns the label of the selected item or an empty string if no item
+        is selected.
         """
         return _core_.ItemContainer_GetStringSelection(*args, **kwargs)
 
         """
         return _core_.ItemContainer_GetStringSelection(*args, **kwargs)
 
-    def GetClientData(*args, **kwargs):
-        """
-        GetClientData(self, int n) -> PyObject
-
-        Returns the client data associated with the given item, (if any.)
-        """
-        return _core_.ItemContainer_GetClientData(*args, **kwargs)
-
-    def SetClientData(*args, **kwargs):
+    def Select(*args, **kwargs):
         """
         """
-        SetClientData(self, int n, PyObject clientData)
+        Select(self, int n)
 
 
-        Associate the given client data with the item at position n.
+        This is the same as `SetSelection` and exists only because it is
+        slightly more natural for controls which support multiple selection.
         """
         """
-        return _core_.ItemContainer_SetClientData(*args, **kwargs)
+        return _core_.ItemContainer_Select(*args, **kwargs)
 
 
 class ItemContainerPtr(ItemContainer):
 
 
 class ItemContainerPtr(ItemContainer):
@@ -8342,9 +9080,9 @@ _core_.ItemContainer_swigregister(ItemContainerPtr)
 
 class ControlWithItems(Control,ItemContainer):
     """
 
 class ControlWithItems(Control,ItemContainer):
     """
-    wx.ControlWithItems combines the wx.ItemContainer class with the
-    wx.Control class, and is used for the base class of various
-    controls that have items.
+    wx.ControlWithItems combines the ``wx.ItemContainer`` class with the
+    wx.Control class, and is used for the base class of various controls
+    that have items.
     """
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
     """
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
@@ -8360,134 +9098,295 @@ _core_.ControlWithItems_swigregister(ControlWithItemsPtr)
 #---------------------------------------------------------------------------
 
 class SizerItem(Object):
 #---------------------------------------------------------------------------
 
 class SizerItem(Object):
+    """
+    The wx.SizerItem class is used to track the position, size and other
+    attributes of each item managed by a `wx.Sizer`. In normal usage user
+    code should never need to deal directly with a wx.SizerItem, but
+    custom classes derived from `wx.PySizer` will probably need to use the
+    collection of wx.SizerItems held by wx.Sizer when calculating layout.
+
+    :see: `wx.Sizer`, `wx.GBSizerItem`
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self) -> SizerItem"""
+        """
+        __init__(self) -> SizerItem
+
+        Constructs an empty wx.SizerItem.  Either a window, sizer or spacer
+        size will need to be set before this item can be used in a Sizer.
+
+        You will probably never need to create a wx.SizerItem directly as they
+        are created automatically when the sizer's Add, Insert or Prepend
+        methods are called.
+
+        :see: `wx.SizerItemSpacer`, `wx.SizerItemWindow`, `wx.SizerItemSizer`
+        """
         newobj = _core_.new_SizerItem(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
     def DeleteWindows(*args, **kwargs):
         newobj = _core_.new_SizerItem(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
     def DeleteWindows(*args, **kwargs):
-        """DeleteWindows(self)"""
+        """
+        DeleteWindows(self)
+
+        Destroy the window or the windows in a subsizer, depending on the type
+        of item.
+        """
         return _core_.SizerItem_DeleteWindows(*args, **kwargs)
 
     def DetachSizer(*args, **kwargs):
         return _core_.SizerItem_DeleteWindows(*args, **kwargs)
 
     def DetachSizer(*args, **kwargs):
-        """DetachSizer(self)"""
+        """
+        DetachSizer(self)
+
+        Enable deleting the SizerItem without destroying the contained sizer.
+        """
         return _core_.SizerItem_DetachSizer(*args, **kwargs)
 
     def GetSize(*args, **kwargs):
         return _core_.SizerItem_DetachSizer(*args, **kwargs)
 
     def GetSize(*args, **kwargs):
-        """GetSize(self) -> Size"""
+        """
+        GetSize(self) -> Size
+
+        Get the current size of the item, as set in the last Layout.
+        """
         return _core_.SizerItem_GetSize(*args, **kwargs)
 
     def CalcMin(*args, **kwargs):
         return _core_.SizerItem_GetSize(*args, **kwargs)
 
     def CalcMin(*args, **kwargs):
-        """CalcMin(self) -> Size"""
+        """
+        CalcMin(self) -> Size
+
+        Calculates the minimum desired size for the item, including any space
+        needed by borders.
+        """
         return _core_.SizerItem_CalcMin(*args, **kwargs)
 
     def SetDimension(*args, **kwargs):
         return _core_.SizerItem_CalcMin(*args, **kwargs)
 
     def SetDimension(*args, **kwargs):
-        """SetDimension(self, Point pos, Size size)"""
+        """
+        SetDimension(self, Point pos, Size size)
+
+        Set the position and size of the space allocated for this item by the
+        sizer, and adjust the position and size of the item (window or
+        subsizer) to be within that space taking alignment and borders into
+        account.
+        """
         return _core_.SizerItem_SetDimension(*args, **kwargs)
 
     def GetMinSize(*args, **kwargs):
         return _core_.SizerItem_SetDimension(*args, **kwargs)
 
     def GetMinSize(*args, **kwargs):
-        """GetMinSize(self) -> Size"""
+        """
+        GetMinSize(self) -> Size
+
+        Get the minimum size needed for the item.
+        """
         return _core_.SizerItem_GetMinSize(*args, **kwargs)
 
         return _core_.SizerItem_GetMinSize(*args, **kwargs)
 
+    def GetMinSizeWithBorder(*args, **kwargs):
+        """
+        GetMinSizeWithBorder(self) -> Size
+
+        Get the minimum size needed for the item with space for the borders
+        added, if needed.
+        """
+        return _core_.SizerItem_GetMinSizeWithBorder(*args, **kwargs)
+
     def SetInitSize(*args, **kwargs):
         """SetInitSize(self, int x, int y)"""
         return _core_.SizerItem_SetInitSize(*args, **kwargs)
 
     def SetRatioWH(*args, **kwargs):
     def SetInitSize(*args, **kwargs):
         """SetInitSize(self, int x, int y)"""
         return _core_.SizerItem_SetInitSize(*args, **kwargs)
 
     def SetRatioWH(*args, **kwargs):
-        """SetRatioWH(self, int width, int height)"""
+        """
+        SetRatioWH(self, int width, int height)
+
+        Set the ratio item attribute.
+        """
         return _core_.SizerItem_SetRatioWH(*args, **kwargs)
 
     def SetRatioSize(*args, **kwargs):
         return _core_.SizerItem_SetRatioWH(*args, **kwargs)
 
     def SetRatioSize(*args, **kwargs):
-        """SetRatioSize(self, Size size)"""
+        """
+        SetRatioSize(self, Size size)
+
+        Set the ratio item attribute.
+        """
         return _core_.SizerItem_SetRatioSize(*args, **kwargs)
 
     def SetRatio(*args, **kwargs):
         return _core_.SizerItem_SetRatioSize(*args, **kwargs)
 
     def SetRatio(*args, **kwargs):
-        """SetRatio(self, float ratio)"""
+        """
+        SetRatio(self, float ratio)
+
+        Set the ratio item attribute.
+        """
         return _core_.SizerItem_SetRatio(*args, **kwargs)
 
     def GetRatio(*args, **kwargs):
         return _core_.SizerItem_SetRatio(*args, **kwargs)
 
     def GetRatio(*args, **kwargs):
-        """GetRatio(self) -> float"""
+        """
+        GetRatio(self) -> float
+
+        Set the ratio item attribute.
+        """
         return _core_.SizerItem_GetRatio(*args, **kwargs)
 
         return _core_.SizerItem_GetRatio(*args, **kwargs)
 
+    def GetRect(*args, **kwargs):
+        """
+        GetRect(self) -> Rect
+
+        Returns the rectangle that the sizer item should occupy
+        """
+        return _core_.SizerItem_GetRect(*args, **kwargs)
+
     def IsWindow(*args, **kwargs):
     def IsWindow(*args, **kwargs):
-        """IsWindow(self) -> bool"""
+        """
+        IsWindow(self) -> bool
+
+        Is this sizer item a window?
+        """
         return _core_.SizerItem_IsWindow(*args, **kwargs)
 
     def IsSizer(*args, **kwargs):
         return _core_.SizerItem_IsWindow(*args, **kwargs)
 
     def IsSizer(*args, **kwargs):
-        """IsSizer(self) -> bool"""
+        """
+        IsSizer(self) -> bool
+
+        Is this sizer item a subsizer?
+        """
         return _core_.SizerItem_IsSizer(*args, **kwargs)
 
     def IsSpacer(*args, **kwargs):
         return _core_.SizerItem_IsSizer(*args, **kwargs)
 
     def IsSpacer(*args, **kwargs):
-        """IsSpacer(self) -> bool"""
+        """
+        IsSpacer(self) -> bool
+
+        Is this sizer item a spacer?
+        """
         return _core_.SizerItem_IsSpacer(*args, **kwargs)
 
     def SetProportion(*args, **kwargs):
         return _core_.SizerItem_IsSpacer(*args, **kwargs)
 
     def SetProportion(*args, **kwargs):
-        """SetProportion(self, int proportion)"""
+        """
+        SetProportion(self, int proportion)
+
+        Set the proportion value for this item.
+        """
         return _core_.SizerItem_SetProportion(*args, **kwargs)
 
     def GetProportion(*args, **kwargs):
         return _core_.SizerItem_SetProportion(*args, **kwargs)
 
     def GetProportion(*args, **kwargs):
-        """GetProportion(self) -> int"""
+        """
+        GetProportion(self) -> int
+
+        Get the proportion value for this item.
+        """
         return _core_.SizerItem_GetProportion(*args, **kwargs)
 
         return _core_.SizerItem_GetProportion(*args, **kwargs)
 
-    SetOption = SetProportion
-    GetOption = GetProportion
+    SetOption = wx._deprecated(SetProportion, "Please use `SetProportion` instead.") 
+    GetOption = wx._deprecated(GetProportion, "Please use `GetProportion` instead.") 
     def SetFlag(*args, **kwargs):
     def SetFlag(*args, **kwargs):
-        """SetFlag(self, int flag)"""
+        """
+        SetFlag(self, int flag)
+
+        Set the flag value for this item.
+        """
         return _core_.SizerItem_SetFlag(*args, **kwargs)
 
     def GetFlag(*args, **kwargs):
         return _core_.SizerItem_SetFlag(*args, **kwargs)
 
     def GetFlag(*args, **kwargs):
-        """GetFlag(self) -> int"""
+        """
+        GetFlag(self) -> int
+
+        Get the flag value for this item.
+        """
         return _core_.SizerItem_GetFlag(*args, **kwargs)
 
     def SetBorder(*args, **kwargs):
         return _core_.SizerItem_GetFlag(*args, **kwargs)
 
     def SetBorder(*args, **kwargs):
-        """SetBorder(self, int border)"""
+        """
+        SetBorder(self, int border)
+
+        Set the border value for this item.
+        """
         return _core_.SizerItem_SetBorder(*args, **kwargs)
 
     def GetBorder(*args, **kwargs):
         return _core_.SizerItem_SetBorder(*args, **kwargs)
 
     def GetBorder(*args, **kwargs):
-        """GetBorder(self) -> int"""
+        """
+        GetBorder(self) -> int
+
+        Get the border value for this item.
+        """
         return _core_.SizerItem_GetBorder(*args, **kwargs)
 
     def GetWindow(*args, **kwargs):
         return _core_.SizerItem_GetBorder(*args, **kwargs)
 
     def GetWindow(*args, **kwargs):
-        """GetWindow(self) -> Window"""
+        """
+        GetWindow(self) -> Window
+
+        Get the window (if any) that is managed by this sizer item.
+        """
         return _core_.SizerItem_GetWindow(*args, **kwargs)
 
     def SetWindow(*args, **kwargs):
         return _core_.SizerItem_GetWindow(*args, **kwargs)
 
     def SetWindow(*args, **kwargs):
-        """SetWindow(self, Window window)"""
+        """
+        SetWindow(self, Window window)
+
+        Set the window to be managed by this sizer item.
+        """
         return _core_.SizerItem_SetWindow(*args, **kwargs)
 
     def GetSizer(*args, **kwargs):
         return _core_.SizerItem_SetWindow(*args, **kwargs)
 
     def GetSizer(*args, **kwargs):
-        """GetSizer(self) -> Sizer"""
+        """
+        GetSizer(self) -> Sizer
+
+        Get the subsizer (if any) that is managed by this sizer item.
+        """
         return _core_.SizerItem_GetSizer(*args, **kwargs)
 
     def SetSizer(*args, **kwargs):
         return _core_.SizerItem_GetSizer(*args, **kwargs)
 
     def SetSizer(*args, **kwargs):
-        """SetSizer(self, Sizer sizer)"""
+        """
+        SetSizer(self, Sizer sizer)
+
+        Set the subsizer to be managed by this sizer item.
+        """
         return _core_.SizerItem_SetSizer(*args, **kwargs)
 
     def GetSpacer(*args, **kwargs):
         return _core_.SizerItem_SetSizer(*args, **kwargs)
 
     def GetSpacer(*args, **kwargs):
-        """GetSpacer(self) -> Size"""
+        """
+        GetSpacer(self) -> Size
+
+        Get the size of the spacer managed by this sizer item.
+        """
         return _core_.SizerItem_GetSpacer(*args, **kwargs)
 
     def SetSpacer(*args, **kwargs):
         return _core_.SizerItem_GetSpacer(*args, **kwargs)
 
     def SetSpacer(*args, **kwargs):
-        """SetSpacer(self, Size size)"""
+        """
+        SetSpacer(self, Size size)
+
+        Set the size of the spacer to be managed by this sizer item.
+        """
         return _core_.SizerItem_SetSpacer(*args, **kwargs)
 
     def Show(*args, **kwargs):
         return _core_.SizerItem_SetSpacer(*args, **kwargs)
 
     def Show(*args, **kwargs):
-        """Show(self, bool show)"""
+        """
+        Show(self, bool show)
+
+        Set the show item attribute, which sizers use to determine if the item
+        is to be made part of the layout or not. If the item is tracking a
+        window then it is shown or hidden as needed.
+        """
         return _core_.SizerItem_Show(*args, **kwargs)
 
     def IsShown(*args, **kwargs):
         return _core_.SizerItem_Show(*args, **kwargs)
 
     def IsShown(*args, **kwargs):
-        """IsShown(self) -> bool"""
+        """
+        IsShown(self) -> bool
+
+        Is the item to be shown in the layout?
+        """
         return _core_.SizerItem_IsShown(*args, **kwargs)
 
     def GetPosition(*args, **kwargs):
         return _core_.SizerItem_IsShown(*args, **kwargs)
 
     def GetPosition(*args, **kwargs):
-        """GetPosition(self) -> Point"""
+        """
+        GetPosition(self) -> Point
+
+        Returns the current position of the item, as set in the last Layout.
+        """
         return _core_.SizerItem_GetPosition(*args, **kwargs)
 
     def GetUserData(*args, **kwargs):
         return _core_.SizerItem_GetPosition(*args, **kwargs)
 
     def GetUserData(*args, **kwargs):
-        """GetUserData(self) -> PyObject"""
+        """
+        GetUserData(self) -> PyObject
+
+        Returns the userData associated with this sizer item, or None if there
+        isn't any.
+        """
         return _core_.SizerItem_GetUserData(*args, **kwargs)
 
 
         return _core_.SizerItem_GetUserData(*args, **kwargs)
 
 
@@ -8498,34 +9397,69 @@ class SizerItemPtr(SizerItem):
         self.__class__ = SizerItem
 _core_.SizerItem_swigregister(SizerItemPtr)
 
         self.__class__ = SizerItem
 _core_.SizerItem_swigregister(SizerItemPtr)
 
-def SizerItemSpacer(*args, **kwargs):
-    """
-    SizerItemSpacer(int width, int height, int proportion, int flag, int border, 
-        Object userData) -> SizerItem
-    """
-    val = _core_.new_SizerItemSpacer(*args, **kwargs)
-    val.thisown = 1
-    return val
-
 def SizerItemWindow(*args, **kwargs):
     """
     SizerItemWindow(Window window, int proportion, int flag, int border, 
 def SizerItemWindow(*args, **kwargs):
     """
     SizerItemWindow(Window window, int proportion, int flag, int border, 
-        Object userData) -> SizerItem
+        PyObject userData=None) -> SizerItem
+
+    Constructs a `wx.SizerItem` for tracking a window.
     """
     val = _core_.new_SizerItemWindow(*args, **kwargs)
     val.thisown = 1
     return val
 
     """
     val = _core_.new_SizerItemWindow(*args, **kwargs)
     val.thisown = 1
     return val
 
-def SizerItemSizer(*args, **kwargs):
+def SizerItemSpacer(*args, **kwargs):
+    """
+    SizerItemSpacer(int width, int height, int proportion, int flag, int border, 
+        PyObject userData=None) -> SizerItem
+
+    Constructs a `wx.SizerItem` for tracking a spacer.
+    """
+    val = _core_.new_SizerItemSpacer(*args, **kwargs)
+    val.thisown = 1
+    return val
+
+def SizerItemSizer(*args, **kwargs):
     """
     SizerItemSizer(Sizer sizer, int proportion, int flag, int border, 
     """
     SizerItemSizer(Sizer sizer, int proportion, int flag, int border, 
-        Object userData) -> SizerItem
+        PyObject userData=None) -> SizerItem
+
+    Constructs a `wx.SizerItem` for tracking a subsizer
     """
     val = _core_.new_SizerItemSizer(*args, **kwargs)
     val.thisown = 1
     return val
 
 class Sizer(Object):
     """
     val = _core_.new_SizerItemSizer(*args, **kwargs)
     val.thisown = 1
     return val
 
 class Sizer(Object):
+    """
+    wx.Sizer is the abstract base class used for laying out subwindows in
+    a window.  You cannot use wx.Sizer directly; instead, you will have to
+    use one of the sizer classes derived from it such as `wx.BoxSizer`,
+    `wx.StaticBoxSizer`, `wx.NotebookSizer`, `wx.GridSizer`,  `wx.FlexGridSizer`
+    and `wx.GridBagSizer`.
+
+    The concept implemented by sizers in wxWidgets is closely related to
+    layout tools in other GUI toolkits, such as Java's AWT, the GTK
+    toolkit or the Qt toolkit. It is based upon the idea of the individual
+    subwindows reporting their minimal required size and their ability to
+    get stretched if the size of the parent window has changed. This will
+    most often mean that the programmer does not set the original size of
+    a dialog in the beginning, rather the dialog will assigned a sizer and
+    this sizer will be queried about the recommended size. The sizer in
+    turn will query its children, which can be normal windows or contorls,
+    empty space or other sizers, so that a hierarchy of sizers can be
+    constructed. Note that wxSizer does not derive from wxWindow and thus
+    do not interfere with tab ordering and requires very little resources
+    compared to a real window on screen.
+
+    What makes sizers so well fitted for use in wxWidgets is the fact that
+    every control reports its own minimal size and the algorithm can
+    handle differences in font sizes or different window (dialog item)
+    sizes on different platforms without problems. If for example the
+    standard font as well as the overall design of Mac widgets requires
+    more space than on Windows, then the initial size of a dialog using a
+    sizer will automatically be bigger on Mac than on Windows.
+    """
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
@@ -8535,145 +9469,340 @@ class Sizer(Object):
 
     def Add(*args, **kwargs):
         """
 
     def Add(*args, **kwargs):
         """
-        Add(self, PyObject item, int proportion=0, int flag=0, int border=0, 
-            PyObject userData=None)
+        Add(self, item, int proportion=0, int flag=0, int border=0,
+            PyObject userData=None) -> wx.SizerItem
+
+        Appends a child item to the sizer.
         """
         return _core_.Sizer_Add(*args, **kwargs)
 
     def Insert(*args, **kwargs):
         """
         """
         return _core_.Sizer_Add(*args, **kwargs)
 
     def Insert(*args, **kwargs):
         """
-        Insert(self, int before, PyObject item, int proportion=0, int flag=0, 
-            int border=0, PyObject userData=None)
+        Insert(self, int before, item, int proportion=0, int flag=0, int border=0,
+            PyObject userData=None) -> wx.SizerItem
+
+        Inserts a new item into the list of items managed by this sizer before
+        the item at index *before*.  See `Add` for a description of the parameters.
         """
         return _core_.Sizer_Insert(*args, **kwargs)
 
     def Prepend(*args, **kwargs):
         """
         """
         return _core_.Sizer_Insert(*args, **kwargs)
 
     def Prepend(*args, **kwargs):
         """
-        Prepend(self, PyObject item, int proportion=0, int flag=0, int border=0, 
-            PyObject userData=None)
+        Prepend(self, item, int proportion=0, int flag=0, int border=0,
+            PyObject userData=None) -> wx.SizerItem
+
+        Adds a new item to the begining of the list of sizer items managed by
+        this sizer.  See `Add` for a description of the parameters.
         """
         return _core_.Sizer_Prepend(*args, **kwargs)
 
     def Remove(*args, **kwargs):
         """
         return _core_.Sizer_Prepend(*args, **kwargs)
 
     def Remove(*args, **kwargs):
-        """Remove(self, PyObject item) -> bool"""
+        """
+        Remove(self, item) -> bool
+
+        Removes an item from the sizer and destroys it.  This method does not
+        cause any layout or resizing to take place, call `Layout` to update
+        the layout on screen after removing a child from the sizer.  The
+        *item* parameter can be either a window, a sizer, or the zero-based
+        index of an item to remove.  Returns True if the child item was found
+        and removed.
+        """
         return _core_.Sizer_Remove(*args, **kwargs)
 
         return _core_.Sizer_Remove(*args, **kwargs)
 
+    def Detach(*args, **kwargs):
+        """
+        Detach(self, item) -> bool
+
+        Detaches an item from the sizer without destroying it.  This method
+        does not cause any layout or resizing to take place, call `Layout` to
+        do so.  The *item* parameter can be either a window, a sizer, or the
+        zero-based index of the item to be detached.  Returns True if the child item
+        was found and detached.
+        """
+        return _core_.Sizer_Detach(*args, **kwargs)
+
+    def GetItem(*args, **kwargs):
+        """
+        GetItem(self, item) -> wx.SizerItem
+
+        Returns the `wx.SizerItem` which holds the *item* given.  The *item*
+        parameter can be either a window, a sizer, or the zero-based index of
+        the item to be detached.
+        """
+        return _core_.Sizer_GetItem(*args, **kwargs)
+
     def _SetItemMinSize(*args, **kwargs):
         """_SetItemMinSize(self, PyObject item, Size size)"""
         return _core_.Sizer__SetItemMinSize(*args, **kwargs)
 
     def _SetItemMinSize(*args, **kwargs):
         """_SetItemMinSize(self, PyObject item, Size size)"""
         return _core_.Sizer__SetItemMinSize(*args, **kwargs)
 
+    def SetItemMinSize(self, item, *args):
+        """
+        SetItemMinSize(self, item, Size size)
+
+        Sets the minimum size that will be allocated for an item in the sizer.
+        The *item* parameter can be either a window, a sizer, or the
+        zero-based index of the item.  If a window or sizer is given then it
+        will be searched for recursivly in subsizers if neccessary.
+        """
+        if len(args) == 2:
+            # for backward compatibility accept separate width,height args too
+            return self._SetItemMinSize(item, args)
+        else:
+            return self._SetItemMinSize(item, args[0])
+
     def AddItem(*args, **kwargs):
     def AddItem(*args, **kwargs):
-        """AddItem(self, SizerItem item)"""
+        """
+        AddItem(self, SizerItem item)
+
+        Adds a `wx.SizerItem` to the sizer.
+        """
         return _core_.Sizer_AddItem(*args, **kwargs)
 
     def InsertItem(*args, **kwargs):
         return _core_.Sizer_AddItem(*args, **kwargs)
 
     def InsertItem(*args, **kwargs):
-        """InsertItem(self, size_t index, SizerItem item)"""
+        """
+        InsertItem(self, int index, SizerItem item)
+
+        Inserts a `wx.SizerItem` to the sizer at the position given by *index*.
+        """
         return _core_.Sizer_InsertItem(*args, **kwargs)
 
     def PrependItem(*args, **kwargs):
         return _core_.Sizer_InsertItem(*args, **kwargs)
 
     def PrependItem(*args, **kwargs):
-        """PrependItem(self, SizerItem item)"""
+        """
+        PrependItem(self, SizerItem item)
+
+        Prepends a `wx.SizerItem` to the sizer.
+        """
         return _core_.Sizer_PrependItem(*args, **kwargs)
 
         return _core_.Sizer_PrependItem(*args, **kwargs)
 
-    def AddMany(self, widgets):
-        for childinfo in widgets:
-            if type(childinfo) != type(()) or (len(childinfo) == 2 and type(childinfo[0]) == type(1)):
-                childinfo = (childinfo, )
-            self.Add(*childinfo)
+    def AddMany(self, items):
+        """
+        AddMany is a convenience method for adding several items
+        to a sizer at one time.  Simply pass it a list of tuples,
+        where each tuple consists of the parameters that you
+        would normally pass to the `Add` method.
+        """
+        for item in items:
+            if type(item) != type(()) or (len(item) == 2 and type(item[0]) == type(1)):
+                item = (item, )
+            self.Add(*item)
 
     # for backwards compatibility only, please do not use in new code
 
     # for backwards compatibility only, please do not use in new code
-    AddWindow = AddSizer = AddSpacer = Add
-    PrependWindow = PrependSizer = PrependSpacer = Prepend
-    InsertWindow = InsertSizer = InsertSpacer = Insert
-    RemoveWindow = RemoveSizer = RemovePos = Remove
-
+    AddWindow     = wx._deprecated(Add, "AddWindow is deprecated, use `Add` instead.")
+    AddSizer      = wx._deprecated(Add, "AddSizer is deprecated, use `Add` instead.")
+    AddSpacer     = wx._deprecated(Add, "AddSpacer is deprecated, use `Add` instead.")
+    PrependWindow = wx._deprecated(Prepend, "PrependWindow is deprecated, use `Prepend` instead.")
+    PrependSizer  = wx._deprecated(Prepend, "PrependSizer is deprecated, use `Prepend` instead.")
+    PrependSpacer = wx._deprecated(Prepend, "PrependSpacer is deprecated, use `Prepend` instead.")
+    InsertWindow  = wx._deprecated(Insert, "InsertWindow is deprecated, use `Insert` instead.")
+    InsertSizer   = wx._deprecated(Insert, "InsertSizer is deprecated, use `Insert` instead.")
+    InsertSpacer  = wx._deprecated(Insert, "InsertSpacer is deprecated, use `Insert` instead.")
+    RemoveWindow  = wx._deprecated(Remove, "RemoveWindow is deprecated, use `Remove` instead.")
+    RemoveSizer   = wx._deprecated(Remove, "RemoveSizer is deprecated, use `Remove` instead.")
+    RemovePos     = wx._deprecated(Remove, "RemovePos is deprecated, use `Remove` instead.")
 
 
-    def SetItemMinSize(self, item, *args):
-        if len(args) == 2:
-            return self._SetItemMinSize(item, args)
-        else:
-            return self._SetItemMinSize(item, args[0])
 
     def SetDimension(*args, **kwargs):
 
     def SetDimension(*args, **kwargs):
-        """SetDimension(self, int x, int y, int width, int height)"""
+        """
+        SetDimension(self, int x, int y, int width, int height)
+
+        Call this to force the sizer to take the given dimension and thus
+        force the items owned by the sizer to resize themselves according to
+        the rules defined by the parameter in the `Add`, `Insert` or `Prepend`
+        methods.
+        """
         return _core_.Sizer_SetDimension(*args, **kwargs)
 
     def SetMinSize(*args, **kwargs):
         return _core_.Sizer_SetDimension(*args, **kwargs)
 
     def SetMinSize(*args, **kwargs):
-        """SetMinSize(self, Size size)"""
+        """
+        SetMinSize(self, Size size)
+
+        Call this to give the sizer a minimal size. Normally, the sizer will
+        calculate its minimal size based purely on how much space its children
+        need. After calling this method `GetMinSize` will return either the
+        minimal size as requested by its children or the minimal size set
+        here, depending on which is bigger.
+        """
         return _core_.Sizer_SetMinSize(*args, **kwargs)
 
     def GetSize(*args, **kwargs):
         return _core_.Sizer_SetMinSize(*args, **kwargs)
 
     def GetSize(*args, **kwargs):
-        """GetSize(self) -> Size"""
+        """
+        GetSize(self) -> Size
+
+        Returns the current size of the space managed by the sizer.
+        """
         return _core_.Sizer_GetSize(*args, **kwargs)
 
     def GetPosition(*args, **kwargs):
         return _core_.Sizer_GetSize(*args, **kwargs)
 
     def GetPosition(*args, **kwargs):
-        """GetPosition(self) -> Point"""
+        """
+        GetPosition(self) -> Point
+
+        Returns the current position of the sizer's managed space.
+        """
         return _core_.Sizer_GetPosition(*args, **kwargs)
 
     def GetMinSize(*args, **kwargs):
         return _core_.Sizer_GetPosition(*args, **kwargs)
 
     def GetMinSize(*args, **kwargs):
-        """GetMinSize(self) -> Size"""
+        """
+        GetMinSize(self) -> Size
+
+        Returns the minimal size of the sizer. This is either the combined
+        minimal size of all the children and their borders or the minimal size
+        set by SetMinSize, depending on which is bigger.
+        """
         return _core_.Sizer_GetMinSize(*args, **kwargs)
 
     def GetSizeTuple(self):
         return _core_.Sizer_GetMinSize(*args, **kwargs)
 
     def GetSizeTuple(self):
-        return self.GetSize().asTuple()
+        return self.GetSize().Get()
     def GetPositionTuple(self):
     def GetPositionTuple(self):
-        return self.GetPosition().asTuple()
+        return self.GetPosition().Get()
     def GetMinSizeTuple(self):
     def GetMinSizeTuple(self):
-        return self.GetMinSize().asTuple()
+        return self.GetMinSize().Get()
 
     def RecalcSizes(*args, **kwargs):
 
     def RecalcSizes(*args, **kwargs):
-        """RecalcSizes(self)"""
+        """
+        RecalcSizes(self)
+
+        Using the sizes calculated by `CalcMin` reposition and resize all the
+        items managed by this sizer.  You should not need to call this directly as
+        it is called by `Layout`.
+        """
         return _core_.Sizer_RecalcSizes(*args, **kwargs)
 
     def CalcMin(*args, **kwargs):
         return _core_.Sizer_RecalcSizes(*args, **kwargs)
 
     def CalcMin(*args, **kwargs):
-        """CalcMin(self) -> Size"""
+        """
+        CalcMin(self) -> Size
+
+        This method is where the sizer will do the actual calculation of its
+        children's minimal sizes.  You should not need to call this directly as
+        it is called by `Layout`.
+        """
         return _core_.Sizer_CalcMin(*args, **kwargs)
 
     def Layout(*args, **kwargs):
         return _core_.Sizer_CalcMin(*args, **kwargs)
 
     def Layout(*args, **kwargs):
-        """Layout(self)"""
+        """
+        Layout(self)
+
+        This method will force the recalculation and layout of the items
+        controlled by the sizer using the current space allocated to the
+        sizer.  Normally this is called automatically from the owning window's
+        EVT_SIZE handler, but it is also useful to call it from user code when
+        one of the items in a sizer change size, or items are added or
+        removed.
+        """
         return _core_.Sizer_Layout(*args, **kwargs)
 
     def Fit(*args, **kwargs):
         return _core_.Sizer_Layout(*args, **kwargs)
 
     def Fit(*args, **kwargs):
-        """Fit(self, Window window) -> Size"""
+        """
+        Fit(self, Window window) -> Size
+
+        Tell the sizer to resize the *window* to match the sizer's minimal
+        size. This is commonly done in the constructor of the window itself in
+        order to set its initial size to match the needs of the children as
+        determined by the sizer.  Returns the new size.
+
+        For a top level window this is the total window size, not the client size.
+        """
         return _core_.Sizer_Fit(*args, **kwargs)
 
     def FitInside(*args, **kwargs):
         return _core_.Sizer_Fit(*args, **kwargs)
 
     def FitInside(*args, **kwargs):
-        """FitInside(self, Window window)"""
+        """
+        FitInside(self, Window window)
+
+        Tell the sizer to resize the *virtual size* of the *window* to match the
+        sizer's minimal size. This will not alter the on screen size of the
+        window, but may cause the addition/removal/alteration of scrollbars
+        required to view the virtual area in windows which manage it.
+
+        :see: `wx.ScrolledWindow.SetScrollbars`, `SetVirtualSizeHints`
+
+        """
         return _core_.Sizer_FitInside(*args, **kwargs)
 
     def SetSizeHints(*args, **kwargs):
         return _core_.Sizer_FitInside(*args, **kwargs)
 
     def SetSizeHints(*args, **kwargs):
-        """SetSizeHints(self, Window window)"""
+        """
+        SetSizeHints(self, Window window)
+
+        Tell the sizer to set (and `Fit`) the minimal size of the *window* to
+        match the sizer's minimal size. This is commonly done in the
+        constructor of the window itself if the window is resizable (as are
+        many dialogs under Unix and frames on probably all platforms) in order
+        to prevent the window from being sized smaller than the minimal size
+        required by the sizer.
+        """
         return _core_.Sizer_SetSizeHints(*args, **kwargs)
 
     def SetVirtualSizeHints(*args, **kwargs):
         return _core_.Sizer_SetSizeHints(*args, **kwargs)
 
     def SetVirtualSizeHints(*args, **kwargs):
-        """SetVirtualSizeHints(self, Window window)"""
+        """
+        SetVirtualSizeHints(self, Window window)
+
+        Tell the sizer to set the minimal size of the window virtual area to
+        match the sizer's minimal size. For windows with managed scrollbars
+        this will set them appropriately.
+
+        :see: `wx.ScrolledWindow.SetScrollbars`
+
+        """
         return _core_.Sizer_SetVirtualSizeHints(*args, **kwargs)
 
     def Clear(*args, **kwargs):
         return _core_.Sizer_SetVirtualSizeHints(*args, **kwargs)
 
     def Clear(*args, **kwargs):
-        """Clear(self, bool delete_windows=False)"""
+        """
+        Clear(self, bool deleteWindows=False)
+
+        Clear all items from the sizer, optionally destroying the window items
+        as well.
+        """
         return _core_.Sizer_Clear(*args, **kwargs)
 
     def DeleteWindows(*args, **kwargs):
         return _core_.Sizer_Clear(*args, **kwargs)
 
     def DeleteWindows(*args, **kwargs):
-        """DeleteWindows(self)"""
+        """
+        DeleteWindows(self)
+
+        Destroy all windows managed by the sizer.
+        """
         return _core_.Sizer_DeleteWindows(*args, **kwargs)
 
     def GetChildren(*args, **kwargs):
         return _core_.Sizer_DeleteWindows(*args, **kwargs)
 
     def GetChildren(*args, **kwargs):
-        """GetChildren(self) -> PyObject"""
+        """
+        GetChildren(self) -> list
+
+        Returns a list of all the `wx.SizerItem` objects managed by the sizer.
+        """
         return _core_.Sizer_GetChildren(*args, **kwargs)
 
     def Show(*args, **kwargs):
         return _core_.Sizer_GetChildren(*args, **kwargs)
 
     def Show(*args, **kwargs):
-        """Show(self, PyObject item, bool show=True)"""
-        return _core_.Sizer_Show(*args, **kwargs)
+        """
+        Show(self, item, bool show=True, bool recursive=false) -> bool
 
 
-    def Hide(*args, **kwargs):
-        """Hide(self, PyObject item)"""
-        return _core_.Sizer_Hide(*args, **kwargs)
+        Shows or hides an item managed by the sizer.  To make a sizer item
+        disappear or reappear, use Show followed by `Layout`.  The *item*
+        parameter can be either a window, a sizer, or the zero-based index of
+        the item.  Use the recursive parameter to show or hide an item in a
+        subsizer.  Returns True if the item was found.
+        """
+        return _core_.Sizer_Show(*args, **kwargs)
 
     def IsShown(*args, **kwargs):
 
     def IsShown(*args, **kwargs):
-        """IsShown(self, PyObject item) -> bool"""
+        """
+        IsShown(self, item)
+
+        Determines if the item is currently shown. sizer.  To make a sizer
+        item disappear or reappear, use Show followed by `Layout`.  The *item*
+        parameter can be either a window, a sizer, or the zero-based index of
+        the item.
+        """
         return _core_.Sizer_IsShown(*args, **kwargs)
 
         return _core_.Sizer_IsShown(*args, **kwargs)
 
+    def Hide(self, item, recursive=False):
+        """
+        A convenience method for Show(item, False, recursive).
+        """
+        return self.Show(item, False, recursive)
+
     def ShowItems(*args, **kwargs):
     def ShowItems(*args, **kwargs):
-        """ShowItems(self, bool show)"""
+        """
+        ShowItems(self, bool show)
+
+        Recursively call `wx.SizerItem.Show` on all sizer items.
+        """
         return _core_.Sizer_ShowItems(*args, **kwargs)
 
 
         return _core_.Sizer_ShowItems(*args, **kwargs)
 
 
@@ -8685,10 +9814,56 @@ class SizerPtr(Sizer):
 _core_.Sizer_swigregister(SizerPtr)
 
 class PySizer(Sizer):
 _core_.Sizer_swigregister(SizerPtr)
 
 class PySizer(Sizer):
+    """
+    wx.PySizer is a special version of `wx.Sizer` that has been
+    instrumented to allow the C++ virtual methods to be overloaded in
+    Python derived classes.  You would derive from this class if you are
+    wanting to implement a custom sizer in Python code.  Simply implement
+    `CalcMin` and `RecalcSizes` in the derived class and you're all set.
+    For example::
+
+        class MySizer(wx.PySizer):
+             def __init__(self):
+                 wx.PySizer.__init__(self)
+
+             def CalcMin(self):
+                 for item in self.GetChildren():
+                      # calculate the total minimum width and height needed
+                      # by all items in the sizer according to this sizer's
+                      # layout algorithm.
+                      ...
+                 return wx.Size(width, height)
+
+              def RecalcSizes(self):
+                  # find the space allotted to this sizer
+                  pos = self.GetPosition()
+                  size = self.GetSize()
+                  for item in self.GetChildren():
+                      # Recalculate (if necessary) the position and size of
+                      # each item and then call item.SetDimension to do the
+                      # actual positioning and sizing of the items within the
+                      # space alloted to this sizer.
+                      ...
+                      item.SetDimension(itemPos, itemSize)
+
+
+    When `Layout` is called it first calls `CalcMin` followed by
+    `RecalcSizes` so you can optimize a bit by saving the results of
+    `CalcMin` and reusing them in `RecalcSizes`.
+
+    :see: `wx.SizerItem`, `wx.Sizer.GetChildren`
+
+
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPySizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxPySizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self) -> PySizer"""
+        """
+        __init__(self) -> PySizer
+
+        Creates a wx.PySizer.  Must be called from the __init__ in the derived
+        class.
+        """
         newobj = _core_.new_PySizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         newobj = _core_.new_PySizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -8710,10 +9885,23 @@ _core_.PySizer_swigregister(PySizerPtr)
 #---------------------------------------------------------------------------
 
 class BoxSizer(Sizer):
 #---------------------------------------------------------------------------
 
 class BoxSizer(Sizer):
+    """
+    The basic idea behind a box sizer is that windows will most often be
+    laid out in rather simple basic geometry, typically in a row or a
+    column or nested hierarchies of either.  A wx.BoxSizer will lay out
+    its items in a simple row or column, depending on the orientation
+    parameter passed to the constructor.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int orient=HORIZONTAL) -> BoxSizer"""
+        """
+        __init__(self, int orient=HORIZONTAL) -> BoxSizer
+
+        Constructor for a wx.BoxSizer. *orient* may be one of ``wx.VERTICAL``
+        or ``wx.HORIZONTAL`` for creating either a column sizer or a row
+        sizer.
+        """
         newobj = _core_.new_BoxSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         newobj = _core_.new_BoxSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -8721,20 +9909,20 @@ class BoxSizer(Sizer):
         self._setOORInfo(self)
 
     def GetOrientation(*args, **kwargs):
         self._setOORInfo(self)
 
     def GetOrientation(*args, **kwargs):
-        """GetOrientation(self) -> int"""
+        """
+        GetOrientation(self) -> int
+
+        Returns the current orientation of the sizer.
+        """
         return _core_.BoxSizer_GetOrientation(*args, **kwargs)
 
     def SetOrientation(*args, **kwargs):
         return _core_.BoxSizer_GetOrientation(*args, **kwargs)
 
     def SetOrientation(*args, **kwargs):
-        """SetOrientation(self, int orient)"""
-        return _core_.BoxSizer_SetOrientation(*args, **kwargs)
-
-    def RecalcSizes(*args, **kwargs):
-        """RecalcSizes(self)"""
-        return _core_.BoxSizer_RecalcSizes(*args, **kwargs)
+        """
+        SetOrientation(self, int orient)
 
 
-    def CalcMin(*args, **kwargs):
-        """CalcMin(self) -> Size"""
-        return _core_.BoxSizer_CalcMin(*args, **kwargs)
+        Resets the orientation of the sizer.
+        """
+        return _core_.BoxSizer_SetOrientation(*args, **kwargs)
 
 
 class BoxSizerPtr(BoxSizer):
 
 
 class BoxSizerPtr(BoxSizer):
@@ -8747,10 +9935,22 @@ _core_.BoxSizer_swigregister(BoxSizerPtr)
 #---------------------------------------------------------------------------
 
 class StaticBoxSizer(BoxSizer):
 #---------------------------------------------------------------------------
 
 class StaticBoxSizer(BoxSizer):
+    """
+    wx.StaticBoxSizer derives from and functions identically to the
+    `wx.BoxSizer` and adds a `wx.StaticBox` around the items that the sizer
+    manages.  Note that this static box must be created separately and
+    passed to the sizer constructor.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxStaticBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxStaticBoxSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, wxStaticBox box, int orient=HORIZONTAL) -> StaticBoxSizer"""
+        """
+        __init__(self, StaticBox box, int orient=HORIZONTAL) -> StaticBoxSizer
+
+        Constructor. It takes an associated static box and the orientation
+        *orient* as parameters - orient can be either of ``wx.VERTICAL`` or
+        ``wx.HORIZONTAL``.
+        """
         newobj = _core_.new_StaticBoxSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         newobj = _core_.new_StaticBoxSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -8758,16 +9958,12 @@ class StaticBoxSizer(BoxSizer):
         self._setOORInfo(self)
 
     def GetStaticBox(*args, **kwargs):
         self._setOORInfo(self)
 
     def GetStaticBox(*args, **kwargs):
-        """GetStaticBox(self) -> wxStaticBox"""
-        return _core_.StaticBoxSizer_GetStaticBox(*args, **kwargs)
-
-    def RecalcSizes(*args, **kwargs):
-        """RecalcSizes(self)"""
-        return _core_.StaticBoxSizer_RecalcSizes(*args, **kwargs)
+        """
+        GetStaticBox(self) -> StaticBox
 
 
-    def CalcMin(*args, **kwargs):
-        """CalcMin(self) -> Size"""
-        return _core_.StaticBoxSizer_CalcMin(*args, **kwargs)
+        Returns the static box associated with this sizer.
+        """
+        return _core_.StaticBoxSizer_GetStaticBox(*args, **kwargs)
 
 
 class StaticBoxSizerPtr(StaticBoxSizer):
 
 
 class StaticBoxSizerPtr(StaticBoxSizer):
@@ -8780,54 +9976,102 @@ _core_.StaticBoxSizer_swigregister(StaticBoxSizerPtr)
 #---------------------------------------------------------------------------
 
 class GridSizer(Sizer):
 #---------------------------------------------------------------------------
 
 class GridSizer(Sizer):
+    """
+    A grid sizer is a sizer which lays out its children in a
+    two-dimensional table with all cells having the same size.  In other
+    words, the width of each cell within the grid is the width of the
+    widest item added to the sizer and the height of each grid cell is the
+    height of the tallest item.  An optional vertical and/or horizontal
+    gap between items can also be specified (in pixels.)
+
+    Items are placed in the cells of the grid in the order they are added,
+    in row-major order.  In other words, the first row is filled first,
+    then the second, and so on until all items have been added. (If
+    neccessary, additional rows will be added as items are added.)  If you
+    need to have greater control over the cells that items are placed in
+    then use the `wx.GridBagSizer`.
+
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int rows=1, int cols=0, int vgap=0, int hgap=0) -> GridSizer"""
+        """
+        __init__(self, int rows=1, int cols=0, int vgap=0, int hgap=0) -> GridSizer
+
+        Constructor for a wx.GridSizer. *rows* and *cols* determine the number
+        of columns and rows in the sizer - if either of the parameters is
+        zero, it will be calculated to from the total number of children in
+        the sizer, thus making the sizer grow dynamically. *vgap* and *hgap*
+        define extra space between all children.
+        """
         newobj = _core_.new_GridSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         self._setOORInfo(self)
 
         newobj = _core_.new_GridSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         self._setOORInfo(self)
 
-    def RecalcSizes(*args, **kwargs):
-        """RecalcSizes(self)"""
-        return _core_.GridSizer_RecalcSizes(*args, **kwargs)
-
-    def CalcMin(*args, **kwargs):
-        """CalcMin(self) -> Size"""
-        return _core_.GridSizer_CalcMin(*args, **kwargs)
-
     def SetCols(*args, **kwargs):
     def SetCols(*args, **kwargs):
-        """SetCols(self, int cols)"""
+        """
+        SetCols(self, int cols)
+
+        Sets the number of columns in the sizer.
+        """
         return _core_.GridSizer_SetCols(*args, **kwargs)
 
     def SetRows(*args, **kwargs):
         return _core_.GridSizer_SetCols(*args, **kwargs)
 
     def SetRows(*args, **kwargs):
-        """SetRows(self, int rows)"""
+        """
+        SetRows(self, int rows)
+
+        Sets the number of rows in the sizer.
+        """
         return _core_.GridSizer_SetRows(*args, **kwargs)
 
     def SetVGap(*args, **kwargs):
         return _core_.GridSizer_SetRows(*args, **kwargs)
 
     def SetVGap(*args, **kwargs):
-        """SetVGap(self, int gap)"""
+        """
+        SetVGap(self, int gap)
+
+        Sets the vertical gap (in pixels) between the cells in the sizer.
+        """
         return _core_.GridSizer_SetVGap(*args, **kwargs)
 
     def SetHGap(*args, **kwargs):
         return _core_.GridSizer_SetVGap(*args, **kwargs)
 
     def SetHGap(*args, **kwargs):
-        """SetHGap(self, int gap)"""
+        """
+        SetHGap(self, int gap)
+
+        Sets the horizontal gap (in pixels) between cells in the sizer
+        """
         return _core_.GridSizer_SetHGap(*args, **kwargs)
 
     def GetCols(*args, **kwargs):
         return _core_.GridSizer_SetHGap(*args, **kwargs)
 
     def GetCols(*args, **kwargs):
-        """GetCols(self) -> int"""
+        """
+        GetCols(self) -> int
+
+        Returns the number of columns in the sizer.
+        """
         return _core_.GridSizer_GetCols(*args, **kwargs)
 
     def GetRows(*args, **kwargs):
         return _core_.GridSizer_GetCols(*args, **kwargs)
 
     def GetRows(*args, **kwargs):
-        """GetRows(self) -> int"""
+        """
+        GetRows(self) -> int
+
+        Returns the number of rows in the sizer.
+        """
         return _core_.GridSizer_GetRows(*args, **kwargs)
 
     def GetVGap(*args, **kwargs):
         return _core_.GridSizer_GetRows(*args, **kwargs)
 
     def GetVGap(*args, **kwargs):
-        """GetVGap(self) -> int"""
+        """
+        GetVGap(self) -> int
+
+        Returns the vertical gap (in pixels) between the cells in the sizer.
+        """
         return _core_.GridSizer_GetVGap(*args, **kwargs)
 
     def GetHGap(*args, **kwargs):
         return _core_.GridSizer_GetVGap(*args, **kwargs)
 
     def GetHGap(*args, **kwargs):
-        """GetHGap(self) -> int"""
+        """
+        GetHGap(self) -> int
+
+        Returns the horizontal gap (in pixels) between cells in the sizer.
+        """
         return _core_.GridSizer_GetHGap(*args, **kwargs)
 
 
         return _core_.GridSizer_GetHGap(*args, **kwargs)
 
 
@@ -8844,62 +10088,165 @@ FLEX_GROWMODE_NONE = _core_.FLEX_GROWMODE_NONE
 FLEX_GROWMODE_SPECIFIED = _core_.FLEX_GROWMODE_SPECIFIED
 FLEX_GROWMODE_ALL = _core_.FLEX_GROWMODE_ALL
 class FlexGridSizer(GridSizer):
 FLEX_GROWMODE_SPECIFIED = _core_.FLEX_GROWMODE_SPECIFIED
 FLEX_GROWMODE_ALL = _core_.FLEX_GROWMODE_ALL
 class FlexGridSizer(GridSizer):
+    """
+    A flex grid sizer is a sizer which lays out its children in a
+    two-dimensional table with all table cells in one row having the same
+    height and all cells in one column having the same width, but all
+    rows or all columns are not necessarily the same height or width as in
+    the `wx.GridSizer`.
+
+    wx.FlexGridSizer can also size items equally in one direction but
+    unequally ("flexibly") in the other. If the sizer is only flexible
+    in one direction (this can be changed using `SetFlexibleDirection`), it
+    needs to be decided how the sizer should grow in the other ("non
+    flexible") direction in order to fill the available space. The
+    `SetNonFlexibleGrowMode` method serves this purpose.
+
+
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFlexGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxFlexGridSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int rows=1, int cols=0, int vgap=0, int hgap=0) -> FlexGridSizer"""
+        """
+        __init__(self, int rows=1, int cols=0, int vgap=0, int hgap=0) -> FlexGridSizer
+
+        Constructor for a wx.FlexGridSizer. *rows* and *cols* determine the
+        number of columns and rows in the sizer - if either of the parameters
+        is zero, it will be calculated to from the total number of children in
+        the sizer, thus making the sizer grow dynamically. *vgap* and *hgap*
+        define extra space between all children.
+        """
         newobj = _core_.new_FlexGridSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         self._setOORInfo(self)
 
         newobj = _core_.new_FlexGridSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         self._setOORInfo(self)
 
-    def RecalcSizes(*args, **kwargs):
-        """RecalcSizes(self)"""
-        return _core_.FlexGridSizer_RecalcSizes(*args, **kwargs)
+    def AddGrowableRow(*args, **kwargs):
+        """
+        AddGrowableRow(self, size_t idx, int proportion=0)
 
 
-    def CalcMin(*args, **kwargs):
-        """CalcMin(self) -> Size"""
-        return _core_.FlexGridSizer_CalcMin(*args, **kwargs)
+        Specifies that row *idx* (starting from zero) should be grown if there
+        is extra space available to the sizer.
 
 
-    def AddGrowableRow(*args, **kwargs):
-        """AddGrowableRow(self, size_t idx, int proportion=0)"""
+        The *proportion* parameter has the same meaning as the stretch factor
+        for the box sizers except that if all proportions are 0, then all
+        columns are resized equally (instead of not being resized at all).
+        """
         return _core_.FlexGridSizer_AddGrowableRow(*args, **kwargs)
 
     def RemoveGrowableRow(*args, **kwargs):
         return _core_.FlexGridSizer_AddGrowableRow(*args, **kwargs)
 
     def RemoveGrowableRow(*args, **kwargs):
-        """RemoveGrowableRow(self, size_t idx)"""
+        """
+        RemoveGrowableRow(self, size_t idx)
+
+        Specifies that row *idx* is no longer growable.
+        """
         return _core_.FlexGridSizer_RemoveGrowableRow(*args, **kwargs)
 
     def AddGrowableCol(*args, **kwargs):
         return _core_.FlexGridSizer_RemoveGrowableRow(*args, **kwargs)
 
     def AddGrowableCol(*args, **kwargs):
-        """AddGrowableCol(self, size_t idx, int proportion=0)"""
+        """
+        AddGrowableCol(self, size_t idx, int proportion=0)
+
+        Specifies that column *idx* (starting from zero) should be grown if
+        there is extra space available to the sizer.
+
+        The *proportion* parameter has the same meaning as the stretch factor
+        for the box sizers except that if all proportions are 0, then all
+        columns are resized equally (instead of not being resized at all).
+        """
         return _core_.FlexGridSizer_AddGrowableCol(*args, **kwargs)
 
     def RemoveGrowableCol(*args, **kwargs):
         return _core_.FlexGridSizer_AddGrowableCol(*args, **kwargs)
 
     def RemoveGrowableCol(*args, **kwargs):
-        """RemoveGrowableCol(self, size_t idx)"""
+        """
+        RemoveGrowableCol(self, size_t idx)
+
+        Specifies that column *idx* is no longer growable.
+        """
         return _core_.FlexGridSizer_RemoveGrowableCol(*args, **kwargs)
 
     def SetFlexibleDirection(*args, **kwargs):
         return _core_.FlexGridSizer_RemoveGrowableCol(*args, **kwargs)
 
     def SetFlexibleDirection(*args, **kwargs):
-        """SetFlexibleDirection(self, int direction)"""
+        """
+        SetFlexibleDirection(self, int direction)
+
+        Specifies whether the sizer should flexibly resize its columns, rows,
+        or both. Argument *direction* can be one of the following values.  Any
+        other value is ignored.
+
+            ==============    =======================================
+            wx.VERTICAL       Rows are flexibly sized.
+            wx.HORIZONTAL     Columns are flexibly sized.
+            wx.BOTH           Both rows and columns are flexibly sized
+                              (this is the default value).
+            ==============    =======================================
+
+        Note that this method does not trigger relayout.
+
+        """
         return _core_.FlexGridSizer_SetFlexibleDirection(*args, **kwargs)
 
     def GetFlexibleDirection(*args, **kwargs):
         return _core_.FlexGridSizer_SetFlexibleDirection(*args, **kwargs)
 
     def GetFlexibleDirection(*args, **kwargs):
-        """GetFlexibleDirection(self) -> int"""
+        """
+        GetFlexibleDirection(self) -> int
+
+        Returns a value that specifies whether the sizer
+        flexibly resizes its columns, rows, or both (default).
+
+        :see: `SetFlexibleDirection`
+        """
         return _core_.FlexGridSizer_GetFlexibleDirection(*args, **kwargs)
 
     def SetNonFlexibleGrowMode(*args, **kwargs):
         return _core_.FlexGridSizer_GetFlexibleDirection(*args, **kwargs)
 
     def SetNonFlexibleGrowMode(*args, **kwargs):
-        """SetNonFlexibleGrowMode(self, int mode)"""
+        """
+        SetNonFlexibleGrowMode(self, int mode)
+
+        Specifies how the sizer should grow in the non-flexible direction if
+        there is one (so `SetFlexibleDirection` must have been called
+        previously). Argument *mode* can be one of the following values:
+
+            ==========================  =================================================
+            wx.FLEX_GROWMODE_NONE       Sizer doesn't grow in the non flexible direction.
+            wx.FLEX_GROWMODE_SPECIFIED  Sizer honors growable columns/rows set with
+                                        `AddGrowableCol` and `AddGrowableRow`. In this
+                                        case equal sizing applies to minimum sizes of
+                                        columns or rows (this is the default value).
+            wx.FLEX_GROWMODE_ALL        Sizer equally stretches all columns or rows in
+                                        the non flexible direction, whether they are
+                                        growable or not in the flexbile direction.
+            ==========================  =================================================
+
+        Note that this method does not trigger relayout.
+
+
+        """
         return _core_.FlexGridSizer_SetNonFlexibleGrowMode(*args, **kwargs)
 
     def GetNonFlexibleGrowMode(*args, **kwargs):
         return _core_.FlexGridSizer_SetNonFlexibleGrowMode(*args, **kwargs)
 
     def GetNonFlexibleGrowMode(*args, **kwargs):
-        """GetNonFlexibleGrowMode(self) -> int"""
+        """
+        GetNonFlexibleGrowMode(self) -> int
+
+        Returns the value that specifies how the sizer grows in the
+        non-flexible direction if there is one.
+
+        :see: `SetNonFlexibleGrowMode`
+        """
         return _core_.FlexGridSizer_GetNonFlexibleGrowMode(*args, **kwargs)
 
     def GetRowHeights(*args, **kwargs):
         return _core_.FlexGridSizer_GetNonFlexibleGrowMode(*args, **kwargs)
 
     def GetRowHeights(*args, **kwargs):
-        """GetRowHeights(self) -> wxArrayInt"""
+        """
+        GetRowHeights(self) -> list
+
+        Returns a list of integers representing the heights of each of the
+        rows in the sizer.
+        """
         return _core_.FlexGridSizer_GetRowHeights(*args, **kwargs)
 
     def GetColWidths(*args, **kwargs):
         return _core_.FlexGridSizer_GetRowHeights(*args, **kwargs)
 
     def GetColWidths(*args, **kwargs):
-        """GetColWidths(self) -> wxArrayInt"""
+        """
+        GetColWidths(self) -> list
+
+        Returns a list of integers representing the widths of each of the
+        columns in the sizer.
+        """
         return _core_.FlexGridSizer_GetColWidths(*args, **kwargs)
 
 
         return _core_.FlexGridSizer_GetColWidths(*args, **kwargs)
 
 
@@ -8910,13 +10257,104 @@ class FlexGridSizerPtr(FlexGridSizer):
         self.__class__ = FlexGridSizer
 _core_.FlexGridSizer_swigregister(FlexGridSizerPtr)
 
         self.__class__ = FlexGridSizer
 _core_.FlexGridSizer_swigregister(FlexGridSizerPtr)
 
+class StdDialogButtonSizer(BoxSizer):
+    """
+    A special sizer that knows how to order and position standard buttons
+    in order to conform to the current platform's standards.  You simply
+    need to add each `wx.Button` to the sizer, and be sure to create the
+    buttons using the standard ID's.  Then call `Realize` and the sizer
+    will take care of the rest.
+
+    """
+    def __repr__(self):
+        return "<%s.%s; proxy of C++ wxStdDialogButtonSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
+    def __init__(self, *args, **kwargs):
+        """__init__(self) -> StdDialogButtonSizer"""
+        newobj = _core_.new_StdDialogButtonSizer(*args, **kwargs)
+        self.this = newobj.this
+        self.thisown = 1
+        del newobj.thisown
+    def AddButton(*args, **kwargs):
+        """
+        AddButton(self, wxButton button)
+
+        Use this to add the buttons to this sizer.  Do not use the `Add`
+        method in the base class.
+        """
+        return _core_.StdDialogButtonSizer_AddButton(*args, **kwargs)
+
+    def Realize(*args, **kwargs):
+        """
+        Realize(self)
+
+        This funciton needs to be called after all the buttons have been added
+        to the sizer.  It will reorder them and position them in a platform
+        specifc manner.
+        """
+        return _core_.StdDialogButtonSizer_Realize(*args, **kwargs)
+
+    def SetAffirmativeButton(*args, **kwargs):
+        """SetAffirmativeButton(self, wxButton button)"""
+        return _core_.StdDialogButtonSizer_SetAffirmativeButton(*args, **kwargs)
+
+    def SetNegativeButton(*args, **kwargs):
+        """SetNegativeButton(self, wxButton button)"""
+        return _core_.StdDialogButtonSizer_SetNegativeButton(*args, **kwargs)
+
+    def SetCancelButton(*args, **kwargs):
+        """SetCancelButton(self, wxButton button)"""
+        return _core_.StdDialogButtonSizer_SetCancelButton(*args, **kwargs)
+
+    def GetAffirmativeButton(*args, **kwargs):
+        """GetAffirmativeButton(self) -> wxButton"""
+        return _core_.StdDialogButtonSizer_GetAffirmativeButton(*args, **kwargs)
+
+    def GetApplyButton(*args, **kwargs):
+        """GetApplyButton(self) -> wxButton"""
+        return _core_.StdDialogButtonSizer_GetApplyButton(*args, **kwargs)
+
+    def GetNegativeButton(*args, **kwargs):
+        """GetNegativeButton(self) -> wxButton"""
+        return _core_.StdDialogButtonSizer_GetNegativeButton(*args, **kwargs)
+
+    def GetCancelButton(*args, **kwargs):
+        """GetCancelButton(self) -> wxButton"""
+        return _core_.StdDialogButtonSizer_GetCancelButton(*args, **kwargs)
+
+    def GetHelpButton(*args, **kwargs):
+        """GetHelpButton(self) -> wxButton"""
+        return _core_.StdDialogButtonSizer_GetHelpButton(*args, **kwargs)
+
+
+class StdDialogButtonSizerPtr(StdDialogButtonSizer):
+    def __init__(self, this):
+        self.this = this
+        if not hasattr(self,"thisown"): self.thisown = 0
+        self.__class__ = StdDialogButtonSizer
+_core_.StdDialogButtonSizer_swigregister(StdDialogButtonSizerPtr)
+
 #---------------------------------------------------------------------------
 
 class GBPosition(object):
 #---------------------------------------------------------------------------
 
 class GBPosition(object):
+    """
+    This class represents the position of an item in a virtual grid of
+    rows and columns managed by a `wx.GridBagSizer`.  wxPython has
+    typemaps that will automatically convert from a 2-element sequence of
+    integers to a wx.GBPosition, so you can use the more pythonic
+    representation of the position nearly transparently in Python code.
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGBPosition instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGBPosition instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int row=0, int col=0) -> GBPosition"""
+        """
+        __init__(self, int row=0, int col=0) -> GBPosition
+
+        This class represents the position of an item in a virtual grid of
+        rows and columns managed by a `wx.GridBagSizer`.  wxPython has
+        typemaps that will automatically convert from a 2-element sequence of
+        integers to a wx.GBPosition, so you can use the more pythonic
+        representation of the position nearly transparently in Python code.
+        """
         newobj = _core_.new_GBPosition(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         newobj = _core_.new_GBPosition(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -8953,7 +10391,7 @@ class GBPosition(object):
         """Get(self) -> PyObject"""
         return _core_.GBPosition_Get(*args, **kwargs)
 
         """Get(self) -> PyObject"""
         return _core_.GBPosition_Get(*args, **kwargs)
 
-    asTuple = Get
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.GBPosition'+str(self.Get())
     def __len__(self):                   return len(self.Get())
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.GBPosition'+str(self.Get())
     def __len__(self):                   return len(self.Get())
@@ -8978,10 +10416,24 @@ class GBPositionPtr(GBPosition):
 _core_.GBPosition_swigregister(GBPositionPtr)
 
 class GBSpan(object):
 _core_.GBPosition_swigregister(GBPositionPtr)
 
 class GBSpan(object):
+    """
+    This class is used to hold the row and column spanning attributes of
+    items in a `wx.GridBagSizer`.  wxPython has typemaps that will
+    automatically convert from a 2-element sequence of integers to a
+    wx.GBSpan, so you can use the more pythonic representation of the span
+    nearly transparently in Python code.
+
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGBSpan instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGBSpan instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int rowspan=1, int colspan=1) -> GBSpan"""
+        """
+        __init__(self, int rowspan=1, int colspan=1) -> GBSpan
+
+        Construct a new wxGBSpan, optionally setting the rowspan and
+        colspan. The default is (1,1). (Meaning that the item occupies one
+        cell in each direction.
+        """
         newobj = _core_.new_GBSpan(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         newobj = _core_.new_GBSpan(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
@@ -9018,7 +10470,7 @@ class GBSpan(object):
         """Get(self) -> PyObject"""
         return _core_.GBSpan_Get(*args, **kwargs)
 
         """Get(self) -> PyObject"""
         return _core_.GBSpan_Get(*args, **kwargs)
 
-    asTuple = Get
+    asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.GBSpan'+str(self.Get())
     def __len__(self):                   return len(self.Get())
     def __str__(self):                   return str(self.Get())
     def __repr__(self):                  return 'wx.GBSpan'+str(self.Get())
     def __len__(self):                   return len(self.Get())
@@ -9043,49 +10495,108 @@ class GBSpanPtr(GBSpan):
 _core_.GBSpan_swigregister(GBSpanPtr)
 
 class GBSizerItem(SizerItem):
 _core_.GBSpan_swigregister(GBSpanPtr)
 
 class GBSizerItem(SizerItem):
+    """
+    The wx.GBSizerItem class is used to track the additional data about
+    items in a `wx.GridBagSizer` such as the item's position in the grid
+    and how many rows or columns it spans.
+
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGBSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGBSizerItem instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self) -> GBSizerItem"""
+        """
+        __init__(self) -> GBSizerItem
+
+        Constructs an empty wx.GBSizerItem.  Either a window, sizer or spacer
+        size will need to be set, as well as a position and span before this
+        item can be used in a Sizer.
+
+        You will probably never need to create a wx.GBSizerItem directly as they
+        are created automatically when the sizer's Add method is called.
+        """
         newobj = _core_.new_GBSizerItem(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
     def GetPos(*args, **kwargs):
         newobj = _core_.new_GBSizerItem(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
     def GetPos(*args, **kwargs):
-        """GetPos(self) -> GBPosition"""
+        """
+        GetPos(self) -> GBPosition
+
+        Get the grid position of the item
+        """
         return _core_.GBSizerItem_GetPos(*args, **kwargs)
 
     def GetPosTuple(self): return self.GetPos().Get() 
     def GetSpan(*args, **kwargs):
         return _core_.GBSizerItem_GetPos(*args, **kwargs)
 
     def GetPosTuple(self): return self.GetPos().Get() 
     def GetSpan(*args, **kwargs):
-        """GetSpan(self) -> GBSpan"""
+        """
+        GetSpan(self) -> GBSpan
+
+        Get the row and column spanning of the item
+        """
         return _core_.GBSizerItem_GetSpan(*args, **kwargs)
 
     def GetSpanTuple(self): return self.GetSpan().Get() 
     def SetPos(*args, **kwargs):
         return _core_.GBSizerItem_GetSpan(*args, **kwargs)
 
     def GetSpanTuple(self): return self.GetSpan().Get() 
     def SetPos(*args, **kwargs):
-        """SetPos(self, GBPosition pos) -> bool"""
+        """
+        SetPos(self, GBPosition pos) -> bool
+
+        If the item is already a member of a sizer then first ensure that
+        there is no other item that would intersect with this one at the new
+        position, then set the new position.  Returns True if the change is
+        successful and after the next Layout() the item will be moved.
+        """
         return _core_.GBSizerItem_SetPos(*args, **kwargs)
 
     def SetSpan(*args, **kwargs):
         return _core_.GBSizerItem_SetPos(*args, **kwargs)
 
     def SetSpan(*args, **kwargs):
-        """SetSpan(self, GBSpan span) -> bool"""
+        """
+        SetSpan(self, GBSpan span) -> bool
+
+        If the item is already a member of a sizer then first ensure that
+        there is no other item that would intersect with this one with its new
+        spanning size, then set the new spanning.  Returns True if the change
+        is successful and after the next Layout() the item will be resized.
+
+        """
         return _core_.GBSizerItem_SetSpan(*args, **kwargs)
 
         return _core_.GBSizerItem_SetSpan(*args, **kwargs)
 
-    def Intersects(*args):
+    def Intersects(*args, **kwargs):
         """
         Intersects(self, GBSizerItem other) -> bool
         """
         Intersects(self, GBSizerItem other) -> bool
-        Intersects(self, GBPosition pos, GBSpan span) -> bool
+
+        Returns True if this item and the other item instersect.
         """
         """
-        return _core_.GBSizerItem_Intersects(*args)
+        return _core_.GBSizerItem_Intersects(*args, **kwargs)
+
+    def IntersectsPos(*args, **kwargs):
+        """
+        IntersectsPos(self, GBPosition pos, GBSpan span) -> bool
+
+        Returns True if the given pos/span would intersect with this item.
+        """
+        return _core_.GBSizerItem_IntersectsPos(*args, **kwargs)
 
     def GetEndPos(*args, **kwargs):
 
     def GetEndPos(*args, **kwargs):
-        """GetEndPos(self, int row, int col)"""
+        """
+        GetEndPos(self) -> GBPosition
+
+        Get the row and column of the endpoint of this item.
+        """
         return _core_.GBSizerItem_GetEndPos(*args, **kwargs)
 
     def GetGBSizer(*args, **kwargs):
         return _core_.GBSizerItem_GetEndPos(*args, **kwargs)
 
     def GetGBSizer(*args, **kwargs):
-        """GetGBSizer(self) -> GridBagSizer"""
+        """
+        GetGBSizer(self) -> GridBagSizer
+
+        Get the sizer this item is a member of.
+        """
         return _core_.GBSizerItem_GetGBSizer(*args, **kwargs)
 
     def SetGBSizer(*args, **kwargs):
         return _core_.GBSizerItem_GetGBSizer(*args, **kwargs)
 
     def SetGBSizer(*args, **kwargs):
-        """SetGBSizer(self, GridBagSizer sizer)"""
+        """
+        SetGBSizer(self, GridBagSizer sizer)
+
+        Set the sizer this item is a member of.
+        """
         return _core_.GBSizerItem_SetGBSizer(*args, **kwargs)
 
 
         return _core_.GBSizerItem_SetGBSizer(*args, **kwargs)
 
 
@@ -9100,7 +10611,9 @@ DefaultSpan = cvar.DefaultSpan
 def GBSizerItemWindow(*args, **kwargs):
     """
     GBSizerItemWindow(Window window, GBPosition pos, GBSpan span, int flag, 
 def GBSizerItemWindow(*args, **kwargs):
     """
     GBSizerItemWindow(Window window, GBPosition pos, GBSpan span, int flag, 
-        int border, Object userData) -> GBSizerItem
+        int border, PyObject userData=None) -> GBSizerItem
+
+    Construct a `wx.GBSizerItem` for a window.
     """
     val = _core_.new_GBSizerItemWindow(*args, **kwargs)
     val.thisown = 1
     """
     val = _core_.new_GBSizerItemWindow(*args, **kwargs)
     val.thisown = 1
@@ -9109,7 +10622,9 @@ def GBSizerItemWindow(*args, **kwargs):
 def GBSizerItemSizer(*args, **kwargs):
     """
     GBSizerItemSizer(Sizer sizer, GBPosition pos, GBSpan span, int flag, 
 def GBSizerItemSizer(*args, **kwargs):
     """
     GBSizerItemSizer(Sizer sizer, GBPosition pos, GBSpan span, int flag, 
-        int border, Object userData) -> GBSizerItem
+        int border, PyObject userData=None) -> GBSizerItem
+
+    Construct a `wx.GBSizerItem` for a sizer
     """
     val = _core_.new_GBSizerItemSizer(*args, **kwargs)
     val.thisown = 1
     """
     val = _core_.new_GBSizerItemSizer(*args, **kwargs)
     val.thisown = 1
@@ -9118,105 +10633,185 @@ def GBSizerItemSizer(*args, **kwargs):
 def GBSizerItemSpacer(*args, **kwargs):
     """
     GBSizerItemSpacer(int width, int height, GBPosition pos, GBSpan span, 
 def GBSizerItemSpacer(*args, **kwargs):
     """
     GBSizerItemSpacer(int width, int height, GBPosition pos, GBSpan span, 
-        int flag, int border, Object userData) -> GBSizerItem
+        int flag, int border, PyObject userData=None) -> GBSizerItem
+
+    Construct a `wx.GBSizerItem` for a spacer.
     """
     val = _core_.new_GBSizerItemSpacer(*args, **kwargs)
     val.thisown = 1
     return val
 
 class GridBagSizer(FlexGridSizer):
     """
     val = _core_.new_GBSizerItemSpacer(*args, **kwargs)
     val.thisown = 1
     return val
 
 class GridBagSizer(FlexGridSizer):
+    """
+    A `wx.Sizer` that can lay out items in a virtual grid like a
+    `wx.FlexGridSizer` but in this case explicit positioning of the items
+    is allowed using `wx.GBPosition`, and items can optionally span more
+    than one row and/or column using `wx.GBSpan`.  The total size of the
+    virtual grid is determined by the largest row and column that items are
+    positioned at, adjusted for spanning.
+
+    """
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridBagSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxGridBagSizer instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def __init__(self, *args, **kwargs):
-        """__init__(self, int vgap=0, int hgap=0) -> GridBagSizer"""
+        """
+        __init__(self, int vgap=0, int hgap=0) -> GridBagSizer
+
+        Constructor, with optional parameters to specify the gap between the
+        rows and columns.
+        """
         newobj = _core_.new_GridBagSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
         newobj = _core_.new_GridBagSizer(*args, **kwargs)
         self.this = newobj.this
         self.thisown = 1
         del newobj.thisown
+        self._setOORInfo(self)
+
     def Add(*args, **kwargs):
         """
     def Add(*args, **kwargs):
         """
-        Add(self, PyObject item, GBPosition pos, GBSpan span=DefaultSpan, 
-            int flag=0, int border=0, PyObject userData=None) -> bool
+        Add(self, item, GBPosition pos, GBSpan span=DefaultSpan, int flag=0,
+        int border=0, userData=None) -> wx.GBSizerItem
+
+        Adds an item to the sizer at the grid cell *pos*, optionally spanning
+        more than one row or column as specified with *span*.  The remaining
+        args behave similarly to `wx.Sizer.Add`.
+
+        Returns True if the item was successfully placed at the given cell
+        position, False if something was already there.
+
         """
         return _core_.GridBagSizer_Add(*args, **kwargs)
 
     def AddItem(*args, **kwargs):
         """
         return _core_.GridBagSizer_Add(*args, **kwargs)
 
     def AddItem(*args, **kwargs):
-        """AddItem(self, GBSizerItem item) -> bool"""
+        """
+        Add(self, GBSizerItem item) -> wx.GBSizerItem
+
+        Add an item to the sizer using a `wx.GBSizerItem`.  Returns True if
+        the item was successfully placed at its given cell position, False if
+        something was already there.
+        """
         return _core_.GridBagSizer_AddItem(*args, **kwargs)
 
         return _core_.GridBagSizer_AddItem(*args, **kwargs)
 
+    def GetCellSize(*args, **kwargs):
+        """
+        GetCellSize(self, int row, int col) -> Size
+
+        Get the size of the specified cell, including hgap and
+        vgap.  Only valid after a Layout.
+        """
+        return _core_.GridBagSizer_GetCellSize(*args, **kwargs)
+
     def GetEmptyCellSize(*args, **kwargs):
     def GetEmptyCellSize(*args, **kwargs):
-        """GetEmptyCellSize(self) -> Size"""
+        """
+        GetEmptyCellSize(self) -> Size
+
+        Get the size used for cells in the grid with no item.
+        """
         return _core_.GridBagSizer_GetEmptyCellSize(*args, **kwargs)
 
     def SetEmptyCellSize(*args, **kwargs):
         return _core_.GridBagSizer_GetEmptyCellSize(*args, **kwargs)
 
     def SetEmptyCellSize(*args, **kwargs):
-        """SetEmptyCellSize(self, Size sz)"""
+        """
+        SetEmptyCellSize(self, Size sz)
+
+        Set the size used for cells in the grid with no item.
+        """
         return _core_.GridBagSizer_SetEmptyCellSize(*args, **kwargs)
 
     def GetItemPosition(*args):
         """
         return _core_.GridBagSizer_SetEmptyCellSize(*args, **kwargs)
 
     def GetItemPosition(*args):
         """
-        GetItemPosition(self, Window window) -> GBPosition
-        GetItemPosition(self, Sizer sizer) -> GBPosition
-        GetItemPosition(self, size_t index) -> GBPosition
+        GetItemPosition(self, item) -> GBPosition
+
+        Get the grid position of the specified *item* where *item* is either a
+        window or subsizer that is a member of this sizer, or a zero-based
+        index of an item.
         """
         return _core_.GridBagSizer_GetItemPosition(*args)
 
     def SetItemPosition(*args):
         """
         """
         return _core_.GridBagSizer_GetItemPosition(*args)
 
     def SetItemPosition(*args):
         """
-        SetItemPosition(self, Window window, GBPosition pos) -> bool
-        SetItemPosition(self, Sizer sizer, GBPosition pos) -> bool
-        SetItemPosition(self, size_t index, GBPosition pos) -> bool
+        SetItemPosition(self, item, GBPosition pos) -> bool
+
+        Set the grid position of the specified *item* where *item* is either a
+        window or subsizer that is a member of this sizer, or a zero-based
+        index of an item.  Returns True on success.  If the move is not
+        allowed (because an item is already there) then False is returned.
+
         """
         return _core_.GridBagSizer_SetItemPosition(*args)
 
     def GetItemSpan(*args):
         """
         """
         return _core_.GridBagSizer_SetItemPosition(*args)
 
     def GetItemSpan(*args):
         """
-        GetItemSpan(self, Window window) -> GBSpan
-        GetItemSpan(self, Sizer sizer) -> GBSpan
-        GetItemSpan(self, size_t index) -> GBSpan
+        GetItemSpan(self, item) -> GBSpan
+
+        Get the row/col spanning of the specified *item* where *item* is
+        either a window or subsizer that is a member of this sizer, or a
+        zero-based index of an item.
         """
         return _core_.GridBagSizer_GetItemSpan(*args)
 
     def SetItemSpan(*args):
         """
         """
         return _core_.GridBagSizer_GetItemSpan(*args)
 
     def SetItemSpan(*args):
         """
-        SetItemSpan(self, Window window, GBSpan span) -> bool
-        SetItemSpan(self, Sizer sizer, GBSpan span) -> bool
-        SetItemSpan(self, size_t index, GBSpan span) -> bool
+        SetItemSpan(self, item, GBSpan span) -> bool
+
+        Set the row/col spanning of the specified *item* where *item* is
+        either a window or subsizer that is a member of this sizer, or a
+        zero-based index of an item.  Returns True on success.  If the move is
+        not allowed (because an item is already there) then False is returned.
         """
         return _core_.GridBagSizer_SetItemSpan(*args)
 
     def FindItem(*args):
         """
         """
         return _core_.GridBagSizer_SetItemSpan(*args)
 
     def FindItem(*args):
         """
-        FindItem(self, Window window) -> GBSizerItem
-        FindItem(self, Sizer sizer) -> GBSizerItem
+        FindItem(self, item) -> GBSizerItem
+
+        Find the sizer item for the given window or subsizer, returns None if
+        not found. (non-recursive)
         """
         return _core_.GridBagSizer_FindItem(*args)
 
     def FindItemAtPosition(*args, **kwargs):
         """
         return _core_.GridBagSizer_FindItem(*args)
 
     def FindItemAtPosition(*args, **kwargs):
-        """FindItemAtPosition(self, GBPosition pos) -> GBSizerItem"""
+        """
+        FindItemAtPosition(self, GBPosition pos) -> GBSizerItem
+
+        Return the sizer item for the given grid cell, or None if there is no
+        item at that position. (non-recursive)
+        """
         return _core_.GridBagSizer_FindItemAtPosition(*args, **kwargs)
 
     def FindItemAtPoint(*args, **kwargs):
         return _core_.GridBagSizer_FindItemAtPosition(*args, **kwargs)
 
     def FindItemAtPoint(*args, **kwargs):
-        """FindItemAtPoint(self, Point pt) -> GBSizerItem"""
+        """
+        FindItemAtPoint(self, Point pt) -> GBSizerItem
+
+        Return the sizer item located at the point given in *pt*, or None if
+        there is no item at that point. The (x,y) coordinates in pt correspond
+        to the client coordinates of the window using the sizer for
+        layout. (non-recursive)
+        """
         return _core_.GridBagSizer_FindItemAtPoint(*args, **kwargs)
 
         return _core_.GridBagSizer_FindItemAtPoint(*args, **kwargs)
 
-    def FindItemWithData(*args, **kwargs):
-        """FindItemWithData(self, Object userData) -> GBSizerItem"""
-        return _core_.GridBagSizer_FindItemWithData(*args, **kwargs)
+    def CheckForIntersection(*args, **kwargs):
+        """
+        CheckForIntersection(self, GBSizerItem item, GBSizerItem excludeItem=None) -> bool
 
 
-    def RecalcSizes(*args, **kwargs):
-        """RecalcSizes(self)"""
-        return _core_.GridBagSizer_RecalcSizes(*args, **kwargs)
+        Look at all items and see if any intersect (or would overlap) the
+        given *item*.  Returns True if so, False if there would be no overlap.
+        If an *excludeItem* is given then it will not be checked for
+        intersection, for example it may be the item we are checking the
+        position of.
 
 
-    def CalcMin(*args, **kwargs):
-        """CalcMin(self) -> Size"""
-        return _core_.GridBagSizer_CalcMin(*args, **kwargs)
+        """
+        return _core_.GridBagSizer_CheckForIntersection(*args, **kwargs)
 
 
-    def CheckForIntersection(*args):
+    def CheckForIntersectionPos(*args, **kwargs):
         """
         """
-        CheckForIntersection(self, GBSizerItem item, GBSizerItem excludeItem=None) -> bool
-        CheckForIntersection(self, GBPosition pos, GBSpan span, GBSizerItem excludeItem=None) -> bool
+        CheckForIntersectionPos(self, GBPosition pos, GBSpan span, GBSizerItem excludeItem=None) -> bool
+
+        Look at all items and see if any intersect (or would overlap) the
+        given position and span.  Returns True if so, False if there would be
+        no overlap.  If an *excludeItem* is given then it will not be checked
+        for intersection, for example it may be the item we are checking the
+        position of.
         """
         """
-        return _core_.GridBagSizer_CheckForIntersection(*args)
+        return _core_.GridBagSizer_CheckForIntersectionPos(*args, **kwargs)
 
 
 class GridBagSizerPtr(GridBagSizer):
 
 
 class GridBagSizerPtr(GridBagSizer):
@@ -9249,62 +10844,32 @@ SameAs = _core_.SameAs
 Absolute = _core_.Absolute
 class IndividualLayoutConstraint(Object):
     """
 Absolute = _core_.Absolute
 class IndividualLayoutConstraint(Object):
     """
-    Objects of this class are stored in the wx.LayoutConstraint class as one of
-    eight possible constraints that a window can be involved in.  You will never
-    need to create an instance of wx.IndividualLayoutConstraint, rather you should
-    use create a wx.LayoutContstraints instance and use the individual contstraints
+    Objects of this class are stored in the `wx.LayoutConstraints` class as
+    one of eight possible constraints that a window can be involved in.
+    You will never need to create an instance of
+    wx.IndividualLayoutConstraint, rather you should create a
+    `wx.LayoutConstraints` instance and use the individual contstraints
     that it contains.
     that it contains.
-
-    Constraints are initially set to have the relationship wx.Unconstrained, which
-    means that their values should be calculated by looking at known constraints.
-
-    The Edge specifies the type of edge or dimension of a window.
-
-     Edges
-
-        wx.Left        The left edge.
-        wx.Top         The top edge.
-        wx.Right       The right edge.
-        wx.Bottom      The bottom edge.
-        wx.CentreX     The x-coordinate of the centre of the window.
-        wx.CentreY     The y-coordinate of the centre of the window. 
-
-
-    The Relationship specifies the relationship that this edge or dimension has
-    with another specified edge or dimension. Normally, the user doesn't use these
-    directly because functions such as Below and RightOf are a convenience for
-    using the more general Set function.
-
-     Relationships
-
-        wx.Unconstrained       The edge or dimension is unconstrained
-                            (the default for edges.)
-        wx.AsIs                The edge or dimension is to be taken from the current
-                            window position or size (the default for dimensions.)
-        wx.Above               The edge should be above another edge.
-        wx.Below               The edge should be below another edge.
-        wx.LeftOf              The edge should be to the left of another edge.
-        wx.RightOf             The edge should be to the right of another edge.
-        wx.SameAs              The edge or dimension should be the same as another edge
-                            or dimension.
-        wx.PercentOf   The edge or dimension should be a percentage of another
-                            edge or dimension.
-        wx.Absolute    The edge or dimension should be a given absolute value.
-
-
     """
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxIndividualLayoutConstraint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def Set(*args, **kwargs):
     """
     def __init__(self): raise RuntimeError, "No constructor defined"
     def __repr__(self):
         return "<%s.%s; proxy of C++ wxIndividualLayoutConstraint instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
     def Set(*args, **kwargs):
-        """Set(self, int rel, Window otherW, int otherE, int val=0, int marg=wxLAYOUT_DEFAULT_MARGIN)"""
+        """
+        Set(self, int rel, Window otherW, int otherE, int val=0, int marg=wxLAYOUT_DEFAULT_MARGIN)
+
+        Sets the properties of the constraint. Normally called by one of the
+        convenience functions such as Above, RightOf, SameAs.
+        """
         return _core_.IndividualLayoutConstraint_Set(*args, **kwargs)
 
     def LeftOf(*args, **kwargs):
         """
         LeftOf(self, Window sibling, int marg=0)
 
         return _core_.IndividualLayoutConstraint_Set(*args, **kwargs)
 
     def LeftOf(*args, **kwargs):
         """
         LeftOf(self, Window sibling, int marg=0)
 
-        Sibling relationship
+        Constrains this edge to be to the left of the given window, with an
+        optional margin. Implicitly, this is relative to the left edge of the
+        other window.
         """
         return _core_.IndividualLayoutConstraint_LeftOf(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_LeftOf(*args, **kwargs)
 
@@ -9312,7 +10877,9 @@ class IndividualLayoutConstraint(Object):
         """
         RightOf(self, Window sibling, int marg=0)
 
         """
         RightOf(self, Window sibling, int marg=0)
 
-        Sibling relationship
+        Constrains this edge to be to the right of the given window, with an
+        optional margin. Implicitly, this is relative to the right edge of the
+        other window.
         """
         return _core_.IndividualLayoutConstraint_RightOf(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_RightOf(*args, **kwargs)
 
@@ -9320,7 +10887,9 @@ class IndividualLayoutConstraint(Object):
         """
         Above(self, Window sibling, int marg=0)
 
         """
         Above(self, Window sibling, int marg=0)
 
-        Sibling relationship
+        Constrains this edge to be above the given window, with an optional
+        margin. Implicitly, this is relative to the top edge of the other
+        window.
         """
         return _core_.IndividualLayoutConstraint_Above(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_Above(*args, **kwargs)
 
@@ -9328,7 +10897,9 @@ class IndividualLayoutConstraint(Object):
         """
         Below(self, Window sibling, int marg=0)
 
         """
         Below(self, Window sibling, int marg=0)
 
-        Sibling relationship
+        Constrains this edge to be below the given window, with an optional
+        margin. Implicitly, this is relative to the bottom edge of the other
+        window.
         """
         return _core_.IndividualLayoutConstraint_Below(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_Below(*args, **kwargs)
 
@@ -9336,7 +10907,8 @@ class IndividualLayoutConstraint(Object):
         """
         SameAs(self, Window otherW, int edge, int marg=0)
 
         """
         SameAs(self, Window otherW, int edge, int marg=0)
 
-        'Same edge' alignment
+        Constrains this edge or dimension to be to the same as the edge of the
+        given window, with an optional margin.
         """
         return _core_.IndividualLayoutConstraint_SameAs(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_SameAs(*args, **kwargs)
 
@@ -9344,7 +10916,8 @@ class IndividualLayoutConstraint(Object):
         """
         PercentOf(self, Window otherW, int wh, int per)
 
         """
         PercentOf(self, Window otherW, int wh, int per)
 
-        The edge is a percentage of the other window's edge
+        Constrains this edge or dimension to be to a percentage of the given
+        window, with an optional margin.
         """
         return _core_.IndividualLayoutConstraint_PercentOf(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_PercentOf(*args, **kwargs)
 
@@ -9352,7 +10925,7 @@ class IndividualLayoutConstraint(Object):
         """
         Absolute(self, int val)
 
         """
         Absolute(self, int val)
 
-        Edge has absolute value
+        Constrains this edge or dimension to be the given absolute value.
         """
         return _core_.IndividualLayoutConstraint_Absolute(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_Absolute(*args, **kwargs)
 
@@ -9360,7 +10933,8 @@ class IndividualLayoutConstraint(Object):
         """
         Unconstrained(self)
 
         """
         Unconstrained(self)
 
-        Dimension is unconstrained
+        Sets this edge or dimension to be unconstrained, that is, dependent on
+        other edges and dimensions from which this value can be deduced.
         """
         return _core_.IndividualLayoutConstraint_Unconstrained(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_Unconstrained(*args, **kwargs)
 
@@ -9368,7 +10942,12 @@ class IndividualLayoutConstraint(Object):
         """
         AsIs(self)
 
         """
         AsIs(self)
 
-        Dimension is 'as is' (use current size settings)
+        Sets this edge or constraint to be whatever the window's value is at
+        the moment. If either of the width and height constraints are *as is*,
+        the window will not be resized, but moved instead. This is important
+        when considering panel items which are intended to have a default
+        size, such as a button, which may take its size from the size of the
+        button label.
         """
         return _core_.IndividualLayoutConstraint_AsIs(*args, **kwargs)
 
         """
         return _core_.IndividualLayoutConstraint_AsIs(*args, **kwargs)
 
@@ -9459,10 +11038,11 @@ _core_.IndividualLayoutConstraint_swigregister(IndividualLayoutConstraintPtr)
 
 class LayoutConstraints(Object):
     """
 
 class LayoutConstraints(Object):
     """
-    Note: constraints are now deprecated and you should use sizers instead.
+    **Note:** constraints are now deprecated and you should use sizers
+    instead.
 
 
-    Objects of this class can be associated with a window to define its layout
-    constraints, with respect to siblings or its parent.
+    Objects of this class can be associated with a window to define its
+    layout constraints, with respect to siblings or its parent.
 
     The class consists of the following eight constraints of class
     wx.IndividualLayoutConstraint, some or all of which should be accessed
 
     The class consists of the following eight constraints of class
     wx.IndividualLayoutConstraint, some or all of which should be accessed
@@ -9477,12 +11057,15 @@ class LayoutConstraints(Object):
         * centreX: represents the horizontal centre point of the window
         * centreY: represents the vertical centre point of the window 
 
         * centreX: represents the horizontal centre point of the window
         * centreY: represents the vertical centre point of the window 
 
-    Most constraints are initially set to have the relationship wxUnconstrained,
-    which means that their values should be calculated by looking at known
-    constraints. The exceptions are width and height, which are set to wxAsIs to
-    ensure that if the user does not specify a constraint, the existing width and
-    height will be used, to be compatible with panel items which often have take a
-    default size. If the constraint is wxAsIs, the dimension will not be changed.
+    Most constraints are initially set to have the relationship
+    wxUnconstrained, which means that their values should be calculated by
+    looking at known constraints. The exceptions are width and height,
+    which are set to wxAsIs to ensure that if the user does not specify a
+    constraint, the existing width and height will be used, to be
+    compatible with panel items which often have take a default size. If
+    the constraint is ``wx.AsIs``, the dimension will not be changed.
+
+    :see: `wx.IndividualLayoutConstraint`, `wx.Window.SetConstraints`
 
     """
     def __repr__(self):
 
     """
     def __repr__(self):
@@ -9538,16 +11121,32 @@ __wxPyPtrTypeMap['wxStatusBar95']   = 'wxStatusBar'
 
 #----------------------------------------------------------------------------
 # Load version numbers from __version__...  Ensure that major and minor
 
 #----------------------------------------------------------------------------
 # Load version numbers from __version__...  Ensure that major and minor
-# versions are the same for both wxPython and wxWindows.
+# versions are the same for both wxPython and wxWidgets.
 
 from __version__ import *
 __version__ = VERSION_STRING
 
 
 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"
+assert MAJOR_VERSION == _core_.MAJOR_VERSION, "wxPython/wxWidgets version mismatch"
+assert MINOR_VERSION == _core_.MINOR_VERSION, "wxPython/wxWidgets version mismatch"
 if RELEASE_VERSION != _core_.RELEASE_VERSION:
     import warnings
 if RELEASE_VERSION != _core_.RELEASE_VERSION:
     import warnings
-    warnings.warn("wxPython/wxWindows release number mismatch")
+    warnings.warn("wxPython/wxWidgets release number mismatch")
+
+#----------------------------------------------------------------------------
+
+# Set the default string<-->unicode conversion encoding from the
+# locale.  This encoding is used when string or unicode objects need
+# to be converted in order to pass them to wxWidgets.  Please be aware
+# that the default encoding within the same locale may be slightly
+# different on different platforms.  For example, please see
+# http://www.alanwood.net/demos/charsetdiffs.html for differences
+# between the common latin/roman encodings.
+import locale
+default = locale.getdefaultlocale()[1]
+if default:
+    wx.SetDefaultPyEncoding(default)
+del default
+del locale
 
 #----------------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------------
 
@@ -9609,39 +11208,39 @@ class _wxPyUnbornObject(object):
 
 
 #----------------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------------
-_wxPyCallAfterId = None
 
 def CallAfter(callable, *args, **kw):
     """
     Call the specified function after the current and pending event
     handlers have been completed.  This is also good for making GUI
 
 def CallAfter(callable, *args, **kw):
     """
     Call the specified function after the current and pending event
     handlers have been completed.  This is also good for making GUI
-    method calls from non-GUI threads.
+    method calls from non-GUI threads.  Any extra positional or
+    keyword args are passed on to the callable when it is called.
+
+    :see: `wx.FutureCall`
     """
     app = wx.GetApp()
     """
     app = wx.GetApp()
-    assert app, 'No wxApp created yet'
+    assert app is not None, 'No wx.App created yet'
 
 
-    global _wxPyCallAfterId
-    if _wxPyCallAfterId is None:
-        _wxPyCallAfterId = wx.NewEventType()
-        app.Connect(-1, -1, _wxPyCallAfterId,
-              lambda event: event.callable(*event.args, **event.kw) )
+    if not hasattr(app, "_CallAfterId"):
+        app._CallAfterId = wx.NewEventType()
+        app.Connect(-1, -1, app._CallAfterId,
+                    lambda event: event.callable(*event.args, **event.kw) )
     evt = wx.PyEvent()
     evt = wx.PyEvent()
-    evt.SetEventType(_wxPyCallAfterId)
+    evt.SetEventType(app._CallAfterId)
     evt.callable = callable
     evt.args = args
     evt.kw = kw
     wx.PostEvent(app, evt)
 
     evt.callable = callable
     evt.args = args
     evt.kw = kw
     wx.PostEvent(app, evt)
 
-
 #----------------------------------------------------------------------------
 
 
 class FutureCall:
     """
 #----------------------------------------------------------------------------
 
 
 class FutureCall:
     """
-    A convenience class for wx.Timer, 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
     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.
+    availbale after it has been run with the `GetResult` method.
 
     If you don't need to get the return value or restart the timer
     then there is no need to hold a reference to this object.  It will
 
     If you don't need to get the return value or restart the timer
     then there is no need to hold a reference to this object.  It will
@@ -9649,6 +11248,8 @@ class FutureCall:
     has a reference to self.Notify) but the cycle will be broken when
     the timer completes, automatically cleaning up the wx.FutureCall
     object.
     has a reference to self.Notify) but the cycle will be broken when
     the timer completes, automatically cleaning up the wx.FutureCall
     object.
+
+    :see: `wx.CallAfter`
     """
     def __init__(self, millis, callable, *args, **kwargs):
         self.millis = millis
     """
     def __init__(self, millis, callable, *args, **kwargs):
         self.millis = millis
@@ -9741,14 +11342,22 @@ class FutureCall:
 # documented (or will be) as part of the classes/functions/methods
 # where they should be used.
 
 # 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
+class __DocFilter:
+    """
+    A filter for epydoc that only allows non-Ptr classes and
+    fucntions, in order to reduce the clutter in the API docs.
+    """
+    def __init__(self, globals):
+        self._globals = globals
+        
+    def __call__(self, name):
+        import types
+        obj = self._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
 
 #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------
 
 #----------------------------------------------------------------------------
 #----------------------------------------------------------------------------