]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_sizers.i
Use the wx.ART_NORMAL_FILE icon
[wxWidgets.git] / wxPython / src / _sizers.i
index 0a1f5101b9eb741e736af11070d3ab6aad5ccd51..9dc3a93a0358a912d073bcb66187ffe6db5e8655 100644 (file)
@@ -44,49 +44,54 @@ methods are called.
 :see: `wx.SizerItemSpacer`, `wx.SizerItemWindow`, `wx.SizerItemSizer`", "");
 
 
 :see: `wx.SizerItemSpacer`, `wx.SizerItemWindow`, `wx.SizerItemSizer`", "");
 
 
-    
+
     %extend {
         DocStr(
             wxSizerItem( wxWindow *window, int proportion, int flag,
                          int border, PyObject* userData=NULL ),
     %extend {
         DocStr(
             wxSizerItem( wxWindow *window, int proportion, int flag,
                          int border, PyObject* userData=NULL ),
-            "Constructs a `wx.SizerItem` for tracking a window.", ""); 
-    
-        %name(SizerItemWindow) wxSizerItem( wxWindow *window, int proportion, int flag,
-                                            int border, PyObject* userData=NULL ) {
+            "Constructs a `wx.SizerItem` for tracking a window.", "");
+
+        %RenameCtor(SizerItemWindow, wxSizerItem( wxWindow *window, int proportion, int flag,
+                                                  int border, PyObject* userData=NULL ))
+        {
             wxPyUserData* data = NULL;
             if ( userData ) {
             wxPyUserData* data = NULL;
             if ( userData ) {
-                bool blocked = wxPyBeginBlockThreads();
+                wxPyBlock_t blocked = wxPyBeginBlockThreads();
                 data = new wxPyUserData(userData);
                 wxPyEndBlockThreads(blocked);
             }
             return new wxSizerItem(window, proportion, flag, border, data);
         }
 
                 data = new wxPyUserData(userData);
                 wxPyEndBlockThreads(blocked);
             }
             return new wxSizerItem(window, proportion, flag, border, data);
         }
 
-        
+
         DocStr(
             wxSizerItem( int width, int height, int proportion, int flag,
                          int border, PyObject* userData=NULL),
             "Constructs a `wx.SizerItem` for tracking a spacer.", "");
         DocStr(
             wxSizerItem( int width, int height, int proportion, int flag,
                          int border, PyObject* userData=NULL),
             "Constructs a `wx.SizerItem` for tracking a spacer.", "");
-        %name(SizerItemSpacer) wxSizerItem( int width, int height, int proportion, int flag,
-                                            int border, PyObject* userData=NULL) {
+
+        %RenameCtor(SizerItemSpacer,  wxSizerItem( int width, int height, int proportion, int flag,
+                                                   int border, PyObject* userData=NULL))
+        {
             wxPyUserData* data = NULL;
             if ( userData ) {
             wxPyUserData* data = NULL;
             if ( userData ) {
-                bool blocked = wxPyBeginBlockThreads();
+                wxPyBlock_t blocked = wxPyBeginBlockThreads();
                 data = new wxPyUserData(userData);
                 wxPyEndBlockThreads(blocked);
             }
             return new wxSizerItem(width, height, proportion, flag, border, data);
         }
                 data = new wxPyUserData(userData);
                 wxPyEndBlockThreads(blocked);
             }
             return new wxSizerItem(width, height, proportion, flag, border, data);
         }
-        
+
         DocStr(
             wxSizerItem( wxSizer *sizer, int proportion, int flag,
                          int border, PyObject* userData=NULL ),
         DocStr(
             wxSizerItem( wxSizer *sizer, int proportion, int flag,
                          int border, PyObject* userData=NULL ),
-            "Constructs a `wx.SizerItem` for tracking a subsizer", ""); 
-        %name(SizerItemSizer)  wxSizerItem( wxSizer *sizer, int proportion, int flag,
-                                            int border, PyObject* userData=NULL ) {
+            "Constructs a `wx.SizerItem` for tracking a subsizer", "");
+
+        %RenameCtor(SizerItemSizer,  wxSizerItem( wxSizer *sizer, int proportion, int flag,
+                                                  int border, PyObject* userData=NULL ))
+        {
             wxPyUserData* data = NULL;
             if ( userData ) {
             wxPyUserData* data = NULL;
             if ( userData ) {
-                bool blocked = wxPyBeginBlockThreads();
+                wxPyBlock_t blocked = wxPyBeginBlockThreads();
                 data = new wxPyUserData(userData);
                 wxPyEndBlockThreads(blocked);
             }
                 data = new wxPyUserData(userData);
                 wxPyEndBlockThreads(blocked);
             }
@@ -95,38 +100,38 @@ methods are called.
     }
 
 
     }
 
 
-    
+
     DocDeclStr(
         void , DeleteWindows(),
         "Destroy the window or the windows in a subsizer, depending on the type
 of item.", "");
     DocDeclStr(
         void , DeleteWindows(),
         "Destroy the window or the windows in a subsizer, depending on the type
 of item.", "");
-    
+
     DocDeclStr(
         void , DetachSizer(),
         "Enable deleting the SizerItem without destroying the contained sizer.", "");
     DocDeclStr(
         void , DetachSizer(),
         "Enable deleting the SizerItem without destroying the contained sizer.", "");
-    
+
 
     DocDeclStr(
         wxSize , GetSize(),
         "Get the current size of the item, as set in the last Layout.", "");
 
     DocDeclStr(
         wxSize , GetSize(),
         "Get the current size of the item, as set in the last Layout.", "");
-    
+
     DocDeclStr(
         wxSize , CalcMin(),
         "Calculates the minimum desired size for the item, including any space
 needed by borders.", "");
     DocDeclStr(
         wxSize , CalcMin(),
         "Calculates the minimum desired size for the item, including any space
 needed by borders.", "");
-    
+
     DocDeclStr(
         void , SetDimension( wxPoint pos, wxSize 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.", "");
     DocDeclStr(
         void , SetDimension( wxPoint pos, wxSize 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.", "");
-    
+
 
     DocDeclStr(
         wxSize , GetMinSize(),
         "Get the minimum size needed for the item.", "");
 
     DocDeclStr(
         wxSize , GetMinSize(),
         "Get the minimum size needed for the item.", "");
-    
+
     DocDeclStr(
         wxSize , GetMinSizeWithBorder() const,
         "Get the minimum size needed for the item with space for the borders
     DocDeclStr(
         wxSize , GetMinSizeWithBorder() const,
         "Get the minimum size needed for the item with space for the borders
@@ -135,14 +140,14 @@ added, if needed.", "");
     DocDeclStr(
         void , SetInitSize( int x, int y ),
         "", "");
     DocDeclStr(
         void , SetInitSize( int x, int y ),
         "", "");
-    
+
 
     DocStr(SetRatio,
            "Set the ratio item attribute.", "");
 
     DocStr(SetRatio,
            "Set the ratio item attribute.", "");
-    %name(SetRatioWH) void SetRatio( int width, int height );
-    %name(SetRatioSize) void SetRatio( wxSize size );
+    %Rename(SetRatioWH, void, SetRatio( int width, int height ));
+    %Rename(SetRatioSize, void, SetRatio( const wxSize& size ));
     void SetRatio( float ratio );
     void SetRatio( float ratio );
-    
+
     DocDeclStr(
         float , GetRatio(),
         "Set the ratio item attribute.", "");
     DocDeclStr(
         float , GetRatio(),
         "Set the ratio item attribute.", "");
@@ -150,94 +155,94 @@ added, if needed.", "");
     DocDeclStr(
         wxRect , GetRect(),
         "Returns the rectangle that the sizer item should occupy", "");
     DocDeclStr(
         wxRect , GetRect(),
         "Returns the rectangle that the sizer item should occupy", "");
-    
+
 
     DocDeclStr(
         bool , IsWindow(),
         "Is this sizer item a window?", "");
 
     DocDeclStr(
         bool , IsWindow(),
         "Is this sizer item a window?", "");
-    
+
     DocDeclStr(
         bool , IsSizer(),
         "Is this sizer item a subsizer?", "");
     DocDeclStr(
         bool , IsSizer(),
         "Is this sizer item a subsizer?", "");
-    
+
     DocDeclStr(
         bool , IsSpacer(),
         "Is this sizer item a spacer?", "");
     DocDeclStr(
         bool , IsSpacer(),
         "Is this sizer item a spacer?", "");
-    
+
 
     DocDeclStr(
         void , SetProportion( int proportion ),
         "Set the proportion value for this item.", "");
 
     DocDeclStr(
         void , SetProportion( int proportion ),
         "Set the proportion value for this item.", "");
-    
+
     DocDeclStr(
         int , GetProportion(),
         "Get the proportion value for this item.", "");
     DocDeclStr(
         int , GetProportion(),
         "Get the proportion value for this item.", "");
-    
+
     %pythoncode { SetOption = wx._deprecated(SetProportion, "Please use `SetProportion` instead.") }
     %pythoncode { GetOption = wx._deprecated(GetProportion, "Please use `GetProportion` instead.") }
 
     %pythoncode { SetOption = wx._deprecated(SetProportion, "Please use `SetProportion` instead.") }
     %pythoncode { GetOption = wx._deprecated(GetProportion, "Please use `GetProportion` instead.") }
 
-    
+
     DocDeclStr(
         void , SetFlag( int flag ),
         "Set the flag value for this item.", "");
     DocDeclStr(
         void , SetFlag( int flag ),
         "Set the flag value for this item.", "");
-    
+
     DocDeclStr(
         int , GetFlag(),
         "Get the flag value for this item.", "");
     DocDeclStr(
         int , GetFlag(),
         "Get the flag value for this item.", "");
-    
-    
+
+
     DocDeclStr(
         void , SetBorder( int border ),
         "Set the border value for this item.", "");
     DocDeclStr(
         void , SetBorder( int border ),
         "Set the border value for this item.", "");
-    
+
     DocDeclStr(
         int , GetBorder(),
         "Get the border value for this item.", "");
     DocDeclStr(
         int , GetBorder(),
         "Get the border value for this item.", "");
-    
 
 
-    
+
+
     DocDeclStr(
         wxWindow *, GetWindow(),
         "Get the window (if any) that is managed by this sizer item.", "");
     DocDeclStr(
         wxWindow *, GetWindow(),
         "Get the window (if any) that is managed by this sizer item.", "");
-    
+
     DocDeclStr(
         void , SetWindow( wxWindow *window ),
         "Set the window to be managed by this sizer item.", "");
     DocDeclStr(
         void , SetWindow( wxWindow *window ),
         "Set the window to be managed by this sizer item.", "");
-    
-    
+
+
     DocDeclStr(
         wxSizer *, GetSizer(),
         "Get the subsizer (if any) that is managed by this sizer item.", "");
     DocDeclStr(
         wxSizer *, GetSizer(),
         "Get the subsizer (if any) that is managed by this sizer item.", "");
-    
+
     DocDeclStr(
         void , SetSizer( wxSizer *sizer ),
         "Set the subsizer to be managed by this sizer item.", "");
     DocDeclStr(
         void , SetSizer( wxSizer *sizer ),
         "Set the subsizer to be managed by this sizer item.", "");
-    
-    
+
+
     DocDeclStr(
         const wxSize& , GetSpacer(),
         "Get the size of the spacer managed by this sizer item.", "");
     DocDeclStr(
         const wxSize& , GetSpacer(),
         "Get the size of the spacer managed by this sizer item.", "");
-    
+
     DocDeclStr(
         void , SetSpacer( const wxSize &size ),
         "Set the size of the spacer to be managed by this sizer item.", "");
     DocDeclStr(
         void , SetSpacer( const wxSize &size ),
         "Set the size of the spacer to be managed by this sizer item.", "");
-    
+
 
     DocDeclStr(
         void , Show( 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.", "");
 
     DocDeclStr(
         void , Show( 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.", "");
-    
+
     DocDeclStr(
         bool , IsShown(),
         "Is the item to be shown in the layout?", "");
     DocDeclStr(
         bool , IsShown(),
         "Is the item to be shown in the layout?", "");
-    
+
 
     DocDeclStr(
         wxPoint , GetPosition(),
         "Returns the current position of the item, as set in the last Layout.", "");
 
     DocDeclStr(
         wxPoint , GetPosition(),
         "Returns the current position of the item, as set in the last Layout.", "");
-    
+
 
     // wxObject* GetUserData();
     %extend {
 
     // wxObject* GetUserData();
     %extend {
@@ -270,7 +275,7 @@ struct wxPySizerItemInfo {
         : window(NULL), sizer(NULL), gotSize(false),
           size(wxDefaultSize), gotPos(false), pos(-1)
     {}
         : window(NULL), sizer(NULL), gotSize(false),
           size(wxDefaultSize), gotPos(false), pos(-1)
     {}
-    
+
     wxWindow* window;
     wxSizer*  sizer;
     bool      gotSize;
     wxWindow* window;
     wxSizer*  sizer;
     bool      gotSize;
@@ -278,7 +283,7 @@ struct wxPySizerItemInfo {
     bool      gotPos;
     int       pos;
 };
     bool      gotPos;
     int       pos;
 };
+
 static wxPySizerItemInfo wxPySizerItemTypeHelper(PyObject* item, bool checkSize, bool checkIdx ) {
 
     wxPySizerItemInfo info;
 static wxPySizerItemInfo wxPySizerItemTypeHelper(PyObject* item, bool checkSize, bool checkIdx ) {
 
     wxPySizerItemInfo info;
@@ -290,12 +295,12 @@ static wxPySizerItemInfo wxPySizerItemTypeHelper(PyObject* item, bool checkSize,
     if ( ! wxPyConvertSwigPtr(item, (void**)&info.window, wxT("wxWindow")) ) {
         PyErr_Clear();
         info.window = NULL;
     if ( ! wxPyConvertSwigPtr(item, (void**)&info.window, wxT("wxWindow")) ) {
         PyErr_Clear();
         info.window = NULL;
-                
+
         // try wxSizer
         if ( ! wxPyConvertSwigPtr(item, (void**)&info.sizer, wxT("wxSizer")) ) {
             PyErr_Clear();
             info.sizer = NULL;
         // try wxSizer
         if ( ! wxPyConvertSwigPtr(item, (void**)&info.sizer, wxT("wxSizer")) ) {
             PyErr_Clear();
             info.sizer = NULL;
-            
+
             // try wxSize or (w,h)
             if ( checkSize && wxSize_helper(item, &sizePtr)) {
                 info.size = *sizePtr;
             // try wxSize or (w,h)
             if ( checkSize && wxSize_helper(item, &sizePtr)) {
                 info.size = *sizePtr;
@@ -359,6 +364,12 @@ 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.", "
 
 more space than on Windows, then the initial size of a dialog using a
 sizer will automatically be bigger on Mac than on Windows.", "
 
+Sizers may also be used to control the layout of custom drawn items on
+the window.  The `Add`, `Insert`, and `Prepend` functions return a
+pointer to the newly added `wx.SizerItem`. Just add empty space of the
+desired size and attributes, and then use the `wx.SizerItem.GetRect`
+method to determine where the drawing operations should take place.
+
 :note: If you wish to create a custom sizer class in wxPython you
     should derive the class from `wx.PySizer` in order to get
     Python-aware capabilities for the various virtual methods.
 :note: If you wish to create a custom sizer class in wxPython you
     should derive the class from `wx.PySizer` in order to get
     Python-aware capabilities for the various virtual methods.
@@ -445,7 +456,7 @@ public:
         |- wx.ALL                    |                                          |
         |                            |                                          |
         +----------------------------+------------------------------------------+
         |- wx.ALL                    |                                          |
         |                            |                                          |
         +----------------------------+------------------------------------------+
-        |- wx.EXAPAND                |The item will be expanded to fill         |
+        |- wx.EXPAND                 |The item will be expanded to fill         |
         |                            |the space allotted to the item.           |
         +----------------------------+------------------------------------------+
         |- wx.SHAPED                 |The item will be expanded as much as      |
         |                            |the space allotted to the item.           |
         +----------------------------+------------------------------------------+
         |- wx.SHAPED                 |The item will be expanded as much as      |
@@ -483,14 +494,14 @@ public:
 
         wxSizerItem*  Add(PyObject* item, int proportion=0, int flag=0, int border=0,
                           PyObject* userData=NULL) {
 
         wxSizerItem*  Add(PyObject* item, int proportion=0, int flag=0, int border=0,
                           PyObject* userData=NULL) {
-            
+
             wxPyUserData* data = NULL;
             wxPyUserData* data = NULL;
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, true, false);
             if ( userData && (info.window || info.sizer || info.gotSize) )
                 data = new wxPyUserData(userData);
             wxPyEndBlockThreads(blocked);
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, true, false);
             if ( userData && (info.window || info.sizer || info.gotSize) )
                 data = new wxPyUserData(userData);
             wxPyEndBlockThreads(blocked);
-            
+
             // Now call the real Add method if a valid item type was found
             if ( info.window )
                 return self->Add(info.window, proportion, flag, border, data);
             // Now call the real Add method if a valid item type was found
             if ( info.window )
                 return self->Add(info.window, proportion, flag, border, data);
@@ -516,12 +527,12 @@ the item at index *before*.  See `Add` for a description of the parameters.", ""
                             int border=0, PyObject* userData=NULL) {
 
             wxPyUserData* data = NULL;
                             int border=0, PyObject* userData=NULL) {
 
             wxPyUserData* data = NULL;
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, true, false);
             if ( userData && (info.window || info.sizer || info.gotSize) )
                 data = new wxPyUserData(userData);
             wxPyEndBlockThreads(blocked);
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, true, false);
             if ( userData && (info.window || info.sizer || info.gotSize) )
                 data = new wxPyUserData(userData);
             wxPyEndBlockThreads(blocked);
-            
+
             // Now call the real Insert method if a valid item type was found
             if ( info.window )
                 return self->Insert(before, info.window, proportion, flag, border, data);
             // Now call the real Insert method if a valid item type was found
             if ( info.window )
                 return self->Insert(before, info.window, proportion, flag, border, data);
@@ -537,7 +548,7 @@ the item at index *before*.  See `Add` for a description of the parameters.", ""
 
 //    virtual wxSizerItem* InsertSpacer(size_t index, int size);
 //    virtual wxSizerItem* InsertStretchSpacer(size_t index, int prop = 1);
 
 //    virtual wxSizerItem* InsertSpacer(size_t index, int size);
 //    virtual wxSizerItem* InsertStretchSpacer(size_t index, int prop = 1);
-        
+
         DocAStr(Prepend,
                 "Prepend(self, item, int proportion=0, int flag=0, int border=0,
     PyObject userData=None) -> wx.SizerItem",
         DocAStr(Prepend,
                 "Prepend(self, item, int proportion=0, int flag=0, int border=0,
     PyObject userData=None) -> wx.SizerItem",
@@ -548,12 +559,12 @@ this sizer.  See `Add` for a description of the parameters.", "");
                              PyObject* userData=NULL) {
 
             wxPyUserData* data = NULL;
                              PyObject* userData=NULL) {
 
             wxPyUserData* data = NULL;
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, true, false);
             if ( userData && (info.window || info.sizer || info.gotSize) )
                 data = new wxPyUserData(userData);
             wxPyEndBlockThreads(blocked);
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, true, false);
             if ( userData && (info.window || info.sizer || info.gotSize) )
                 data = new wxPyUserData(userData);
             wxPyEndBlockThreads(blocked);
-            
+
             // Now call the real Prepend method if a valid item type was found
             if ( info.window )
                 return self->Prepend(info.window, proportion, flag, border, data);
             // Now call the real Prepend method if a valid item type was found
             if ( info.window )
                 return self->Prepend(info.window, proportion, flag, border, data);
@@ -584,7 +595,7 @@ and removed.", "
     instead.
 ");
         bool Remove(PyObject* item) {
     instead.
 ");
         bool Remove(PyObject* item) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
@@ -593,7 +604,7 @@ and removed.", "
                 return self->Remove(info.sizer);
             else if ( info.gotPos )
                 return self->Remove(info.pos);
                 return self->Remove(info.sizer);
             else if ( info.gotPos )
                 return self->Remove(info.pos);
-            else 
+            else
                 return false;
         }
 
                 return false;
         }
 
@@ -606,7 +617,7 @@ 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.", "");
         bool Detach(PyObject* item) {
 zero-based index of the item to be detached.  Returns True if the child item
 was found and detached.", "");
         bool Detach(PyObject* item) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
@@ -615,18 +626,18 @@ was found and detached.", "");
                 return self->Detach(info.sizer);
             else if ( info.gotPos )
                 return self->Detach(info.pos);
                 return self->Detach(info.sizer);
             else if ( info.gotPos )
                 return self->Detach(info.pos);
-            else 
+            else
                 return false;
         }
 
                 return false;
         }
 
-        
+
         DocAStr(GetItem,
                 "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.", "");
         wxSizerItem* GetItem(PyObject* item) {
         DocAStr(GetItem,
                 "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.", "");
         wxSizerItem* GetItem(PyObject* item) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
@@ -639,9 +650,9 @@ the item to be detached.", "");
                 return NULL;
         }
 
                 return NULL;
         }
 
-        
+
         void _SetItemMinSize(PyObject* item, const wxSize& size) {
         void _SetItemMinSize(PyObject* item, const wxSize& size) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
@@ -669,25 +680,25 @@ the item to be detached.", "");
         else:
             return self._SetItemMinSize(item, args[0])
     }
         else:
             return self._SetItemMinSize(item, args[0])
     }
-    
+
     DocDeclAStrName(
         wxSizerItem* , Add( wxSizerItem *item ),
         "AddItem(self, SizerItem item)",
         "Adds a `wx.SizerItem` to the sizer.", "",
         AddItem);
     DocDeclAStrName(
         wxSizerItem* , Add( wxSizerItem *item ),
         "AddItem(self, SizerItem item)",
         "Adds a `wx.SizerItem` to the sizer.", "",
         AddItem);
-    
+
     DocDeclAStrName(
         wxSizerItem* , Insert( size_t index, wxSizerItem *item ),
         "InsertItem(self, int index, SizerItem item)",
         "Inserts a `wx.SizerItem` to the sizer at the position given by *index*.", "",
         InsertItem);
     DocDeclAStrName(
         wxSizerItem* , Insert( size_t index, wxSizerItem *item ),
         "InsertItem(self, int index, SizerItem item)",
         "Inserts a `wx.SizerItem` to the sizer at the position given by *index*.", "",
         InsertItem);
-    
+
     DocDeclAStrName(
         wxSizerItem* , Prepend( wxSizerItem *item ),
         "PrependItem(self, SizerItem item)",
         "Prepends a `wx.SizerItem` to the sizer.", "",
         PrependItem);
     DocDeclAStrName(
         wxSizerItem* , Prepend( wxSizerItem *item ),
         "PrependItem(self, SizerItem item)",
         "Prepends a `wx.SizerItem` to the sizer.", "",
         PrependItem);
-    
+
 
 
     %pythoncode {
 
 
     %pythoncode {
@@ -704,18 +715,45 @@ the item to be detached.", "");
             self.Add(*item)
 
     %# for backwards compatibility only, please do not use in new code
             self.Add(*item)
 
     %# for backwards compatibility only, please do not use in new code
-    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 AddWindow(self, *args, **kw):
+        """Compatibility alias for `Add`."""
+        return self.Add(*args, **kw)
+    def AddSizer(self, *args, **kw):
+        """Compatibility alias for `Add`."""
+        return self.Add(*args, **kw)
+    def AddSpacer(self, *args, **kw):
+        """Compatibility alias for `Add`."""
+        return self.Add(*args, **kw)
+
+    def PrependWindow(self, *args, **kw):
+        """Compatibility alias for `Prepend`."""
+        return self.Prepend(*args, **kw)
+    def PrependSizer(self, *args, **kw):
+        """Compatibility alias for `Prepend`."""
+        return self.Prepend(*args, **kw)
+    def PrependSpacer(self, *args, **kw):
+        """Compatibility alias for `Prepend`."""
+        return self.Prepend(*args, **kw)
+
+    def InsertWindow(self, *args, **kw):
+        """Compatibility alias for `Insert`."""
+        return self.Insert(*args, **kw)
+    def InsertSizer(self, *args, **kw):
+        """Compatibility alias for `Insert`."""
+        return self.Insert(*args, **kw)
+    def InsertSpacer(self, *args, **kw):
+        """Compatibility alias for `Insert`."""
+        return self.Insert(*args, **kw)
+
+    def RemoveWindow(self, *args, **kw):
+        """Compatibility alias for `Remove`."""
+        return self.Remove(*args, **kw)
+    def RemoveSizer(self, *args, **kw):
+        """Compatibility alias for `Remove`."""
+        return self.Remove(*args, **kw)
+    def RemovePos(self, *args, **kw):
+        """Compatibility alias for `Remove`."""
+        return self.Remove(*args, **kw)
 
     }
 
 
     }
 
@@ -726,7 +764,7 @@ the item to be detached.", "");
 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.", "");
 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.", "");
-    
+
     DocDeclStr(
         void , SetMinSize( const wxSize &size ),
         "Call this to give the sizer a minimal size. Normally, the sizer will
     DocDeclStr(
         void , SetMinSize( const wxSize &size ),
         "Call this to give the sizer a minimal size. Normally, the sizer will
@@ -734,22 +772,22 @@ 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.", "");
 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.", "");
-    
+
 
     DocDeclStr(
         wxSize , GetSize(),
         "Returns the current size of the space managed by the sizer.", "");
 
     DocDeclStr(
         wxSize , GetSize(),
         "Returns the current size of the space managed by the sizer.", "");
-    
+
     DocDeclStr(
         wxPoint , GetPosition(),
         "Returns the current position of the sizer's managed space.", "");
     DocDeclStr(
         wxPoint , GetPosition(),
         "Returns the current position of the sizer's managed space.", "");
-    
+
     DocDeclStr(
         wxSize , GetMinSize(),
         "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.", "");
     DocDeclStr(
         wxSize , GetMinSize(),
         "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.", "");
-    
+
 
     %pythoncode {
     def GetSizeTuple(self):
 
     %pythoncode {
     def GetSizeTuple(self):
@@ -765,13 +803,13 @@ set by SetMinSize, depending on which is bigger.", "");
         "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`.", "");
         "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`.", "");
-    
+
     DocDeclStr(
         virtual wxSize , CalcMin(),
         "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`.", "");
     DocDeclStr(
         virtual wxSize , CalcMin(),
         "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`.", "");
-    
+
 
     DocDeclStr(
         void , Layout(),
 
     DocDeclStr(
         void , Layout(),
@@ -781,7 +819,7 @@ 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.", "");
 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.", "");
-    
+
 
     DocDeclStr(
         wxSize , Fit( wxWindow *window ),
 
     DocDeclStr(
         wxSize , Fit( wxWindow *window ),
@@ -791,7 +829,7 @@ 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.", "");
 determined by the sizer.  Returns the new size.
 
 For a top level window this is the total window size, not the client size.", "");
-    
+
     DocDeclStr(
         void , FitInside( wxWindow *window ),
         "Tell the sizer to resize the *virtual size* of the *window* to match the
     DocDeclStr(
         void , FitInside( wxWindow *window ),
         "Tell the sizer to resize the *virtual size* of the *window* to match the
@@ -801,7 +839,7 @@ required to view the virtual area in windows which manage it.
 
 :see: `wx.ScrolledWindow.SetScrollbars`, `SetVirtualSizeHints`
 ", "");
 
 :see: `wx.ScrolledWindow.SetScrollbars`, `SetVirtualSizeHints`
 ", "");
-    
+
 
     DocDeclStr(
         void , SetSizeHints( wxWindow *window ),
 
     DocDeclStr(
         void , SetSizeHints( wxWindow *window ),
@@ -811,7 +849,7 @@ 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.", "");
 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.", "");
-    
+
     DocDeclStr(
         void , SetVirtualSizeHints( wxWindow *window ),
         "Tell the sizer to set the minimal size of the window virtual area to
     DocDeclStr(
         void , SetVirtualSizeHints( wxWindow *window ),
         "Tell the sizer to set the minimal size of the window virtual area to
@@ -820,23 +858,23 @@ this will set them appropriately.
 
 :see: `wx.ScrolledWindow.SetScrollbars`
 ", "");
 
 :see: `wx.ScrolledWindow.SetScrollbars`
 ", "");
-    
+
 
     DocDeclStr(
         void , Clear( bool deleteWindows=false ),
         "Clear all items from the sizer, optionally destroying the window items
 as well.", "");
 
     DocDeclStr(
         void , Clear( bool deleteWindows=false ),
         "Clear all items from the sizer, optionally destroying the window items
 as well.", "");
-    
+
     DocDeclStr(
         void , DeleteWindows(),
         "Destroy all windows managed by the sizer.", "");
     DocDeclStr(
         void , DeleteWindows(),
         "Destroy all windows managed by the sizer.", "");
-    
+
 
 
     // wxList& GetChildren();
     %extend {
         DocAStr(GetChildren,
 
 
     // wxList& GetChildren();
     %extend {
         DocAStr(GetChildren,
-                "GetChildren(sefl) -> list",
+                "GetChildren(self) -> list",
                 "Returns a list of all the `wx.SizerItem` objects managed by the sizer.", "");
         PyObject* GetChildren() {
             wxSizerItemList& list = self->GetChildren();
                 "Returns a list of all the `wx.SizerItem` objects managed by the sizer.", "");
         PyObject* GetChildren() {
             wxSizerItemList& list = self->GetChildren();
@@ -857,7 +895,7 @@ 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.", "");
         bool Show(PyObject* item, bool show = true, bool recursive=false) {
 the item.  Use the recursive parameter to show or hide an item in a
 subsizer.  Returns True if the item was found.", "");
         bool Show(PyObject* item, bool show = true, bool recursive=false) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
             wxPyEndBlockThreads(blocked);
             if ( info.window )
@@ -869,7 +907,7 @@ subsizer.  Returns True if the item was found.", "");
             else
                 return false;
         }
             else
                 return false;
         }
-       
+
         DocAStr(IsShown,
                 "IsShown(self, item)",
                 "Determines if the item is currently shown. sizer.  To make a sizer
         DocAStr(IsShown,
                 "IsShown(self, item)",
                 "Determines if the item is currently shown. sizer.  To make a sizer
@@ -877,12 +915,12 @@ 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.", "");
         bool IsShown(PyObject* item) {
 parameter can be either a window, a sizer, or the zero-based index of
 the item.", "");
         bool IsShown(PyObject* item) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, false);
             wxPyEndBlockThreads(blocked);
             wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, false);
             wxPyEndBlockThreads(blocked);
-            if ( info.window ) 
+            if ( info.window )
                 return self->IsShown(info.window);
                 return self->IsShown(info.window);
-            else if ( info.sizer ) 
+            else if ( info.sizer )
                 return self->IsShown(info.sizer);
             else if ( info.gotPos )
                 return self->IsShown(info.pos);
                 return self->IsShown(info.sizer);
             else if ( info.gotPos )
                 return self->IsShown(info.pos);
@@ -894,15 +932,19 @@ the item.", "");
     %pythoncode {
     def Hide(self, item, recursive=False):
         """
     %pythoncode {
     def Hide(self, item, recursive=False):
         """
-        A convenience method for Show(item, False, recursive).
+        A convenience method for `Show` (item, False, recursive).
         """
         return self.Show(item, False, recursive)
     }
 
         """
         return self.Show(item, False, recursive)
     }
 
-    
+
     DocDeclStr(
         void , ShowItems(bool show),
         "Recursively call `wx.SizerItem.Show` on all sizer items.", "");
     DocDeclStr(
         void , ShowItems(bool show),
         "Recursively call `wx.SizerItem.Show` on all sizer items.", "");
+
+    // TODO:
+    //          void Show(bool show);
+    //          bool IsShown();
     
 };
 
     
 };
 
@@ -910,7 +952,7 @@ the item.", "");
 //---------------------------------------------------------------------------
 // Use this one for deriving Python classes from
 %{
 //---------------------------------------------------------------------------
 // Use this one for deriving Python classes from
 %{
-// See pyclasses.h    
+// See pyclasses.h
 IMP_PYCALLBACK___pure(wxPySizer, wxSizer, RecalcSizes);
 IMP_PYCALLBACK_wxSize__pure(wxPySizer, wxSizer, CalcMin);
 IMPLEMENT_DYNAMIC_CLASS(wxPySizer, wxSizer);
 IMP_PYCALLBACK___pure(wxPySizer, wxSizer, RecalcSizes);
 IMP_PYCALLBACK_wxSize__pure(wxPySizer, wxSizer, CalcMin);
 IMPLEMENT_DYNAMIC_CLASS(wxPySizer, wxSizer);
@@ -952,7 +994,7 @@ For example::
 
 When `Layout` is called it first calls `CalcMin` followed by
 `RecalcSizes` so you can optimize a bit by saving the results of
 
 When `Layout` is called it first calls `CalcMin` followed by
 `RecalcSizes` so you can optimize a bit by saving the results of
-`CalcMin` and resuing them in `RecalcSizes`.
+`CalcMin` and reusing them in `RecalcSizes`.
 
 :see: `wx.SizerItem`, `wx.Sizer.GetChildren`
 
 
 :see: `wx.SizerItem`, `wx.Sizer.GetChildren`
 
@@ -965,7 +1007,7 @@ public:
         wxPySizer(),
         "Creates a wx.PySizer.  Must be called from the __init__ in the derived
 class.", "");
         wxPySizer(),
         "Creates a wx.PySizer.  Must be called from the __init__ in the derived
 class.", "");
-    
+
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 };
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 };
 
@@ -1008,15 +1050,15 @@ public:
 or ``wx.HORIZONTAL`` for creating either a column sizer or a row
 sizer.", "");
 
 or ``wx.HORIZONTAL`` for creating either a column sizer or a row
 sizer.", "");
 
-    
+
     DocDeclStr(
         int , GetOrientation(),
         "Returns the current orientation of the sizer.", "");
     DocDeclStr(
         int , GetOrientation(),
         "Returns the current orientation of the sizer.", "");
-    
+
     DocDeclStr(
         void , SetOrientation(int orient),
         "Resets the orientation of the sizer.", "");
     DocDeclStr(
         void , SetOrientation(int orient),
         "Resets the orientation of the sizer.", "");
-    
+
 };
 
 //---------------------------------------------------------------------------
 };
 
 //---------------------------------------------------------------------------
@@ -1038,11 +1080,13 @@ public:
         "Constructor. It takes an associated static box and the orientation
 *orient* as parameters - orient can be either of ``wx.VERTICAL`` or
 ``wx.HORIZONTAL``.", "");
         "Constructor. It takes an associated static box and the orientation
 *orient* as parameters - orient can be either of ``wx.VERTICAL`` or
 ``wx.HORIZONTAL``.", "");
-    
-        DocDeclStr(
-            wxStaticBox *, GetStaticBox(),
-            "Returns the static box associated with this sizer.", "");
-        
+
+    // TODO: wxStaticBoxSizer(int orient, wxWindow *win, const wxString& label = wxEmptyString);
+
+    DocDeclStr(
+        wxStaticBox *, GetStaticBox(),
+        "Returns the static box associated with this sizer.", "");
+
 };
 
 //---------------------------------------------------------------------------
 };
 
 //---------------------------------------------------------------------------
@@ -1081,35 +1125,35 @@ define extra space between all children.", "");
     DocDeclStr(
         void , SetCols( int cols ),
         "Sets the number of columns in the sizer.", "");
     DocDeclStr(
         void , SetCols( int cols ),
         "Sets the number of columns in the sizer.", "");
-    
+
     DocDeclStr(
         void , SetRows( int rows ),
         "Sets the number of rows in the sizer.", "");
     DocDeclStr(
         void , SetRows( int rows ),
         "Sets the number of rows in the sizer.", "");
-    
+
     DocDeclStr(
         void , SetVGap( int gap ),
         "Sets the vertical gap (in pixels) between the cells in the sizer.", "");
     DocDeclStr(
         void , SetVGap( int gap ),
         "Sets the vertical gap (in pixels) between the cells in the sizer.", "");
-    
+
     DocDeclStr(
         void , SetHGap( int gap ),
         "Sets the horizontal gap (in pixels) between cells in the sizer", "");
     DocDeclStr(
         void , SetHGap( int gap ),
         "Sets the horizontal gap (in pixels) between cells in the sizer", "");
-    
+
     DocDeclStr(
         int , GetCols(),
         "Returns the number of columns in the sizer.", "");
     DocDeclStr(
         int , GetCols(),
         "Returns the number of columns in the sizer.", "");
-    
+
     DocDeclStr(
         int , GetRows(),
         "Returns the number of rows in the sizer.", "");
     DocDeclStr(
         int , GetRows(),
         "Returns the number of rows in the sizer.", "");
-    
+
     DocDeclStr(
         int , GetVGap(),
         "Returns the vertical gap (in pixels) between the cells in the sizer.", "");
     DocDeclStr(
         int , GetVGap(),
         "Returns the vertical gap (in pixels) between the cells in the sizer.", "");
-    
+
     DocDeclStr(
         int , GetHGap(),
         "Returns the horizontal gap (in pixels) between cells in the sizer.", "");
     DocDeclStr(
         int , GetHGap(),
         "Returns the horizontal gap (in pixels) between cells in the sizer.", "");
-    
+
 };
 
 //---------------------------------------------------------------------------
 };
 
 //---------------------------------------------------------------------------
@@ -1159,7 +1203,7 @@ 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.", "");
 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.", "");
-    
+
 
     DocDeclStr(
         void , AddGrowableRow( size_t idx, int proportion = 0  ),
 
     DocDeclStr(
         void , AddGrowableRow( size_t idx, int proportion = 0  ),
@@ -1169,11 +1213,11 @@ 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).", "");
 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).", "");
-    
+
     DocDeclStr(
         void , RemoveGrowableRow( size_t idx ),
         "Specifies that row *idx* is no longer growable.", "");
     DocDeclStr(
         void , RemoveGrowableRow( size_t idx ),
         "Specifies that row *idx* is no longer growable.", "");
-    
+
     DocDeclStr(
         void , AddGrowableCol( size_t idx, int proportion = 0  ),
         "Specifies that column *idx* (starting from zero) should be grown if
     DocDeclStr(
         void , AddGrowableCol( size_t idx, int proportion = 0  ),
         "Specifies that column *idx* (starting from zero) should be grown if
@@ -1182,11 +1226,11 @@ 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).", "");
 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).", "");
-    
+
     DocDeclStr(
         void , RemoveGrowableCol( size_t idx ),
         "Specifies that column *idx* is no longer growable.", "");
     DocDeclStr(
         void , RemoveGrowableCol( size_t idx ),
         "Specifies that column *idx* is no longer growable.", "");
-    
+
 
     DocDeclStr(
         void , SetFlexibleDirection(int direction),
 
     DocDeclStr(
         void , SetFlexibleDirection(int direction),
@@ -1203,7 +1247,7 @@ other value is ignored.
 
 Note that this method does not trigger relayout.
 ", "");
 
 Note that this method does not trigger relayout.
 ", "");
-    
+
     DocDeclStr(
         int , GetFlexibleDirection(),
         "Returns a value that specifies whether the sizer
     DocDeclStr(
         int , GetFlexibleDirection(),
         "Returns a value that specifies whether the sizer
@@ -1211,7 +1255,7 @@ flexibly resizes its columns, rows, or both (default).
 
 :see: `SetFlexibleDirection`", "");
 
 
 :see: `SetFlexibleDirection`", "");
 
-    
+
 
     DocDeclStr(
         void , SetNonFlexibleGrowMode(wxFlexSizerGrowMode mode),
 
     DocDeclStr(
         void , SetNonFlexibleGrowMode(wxFlexSizerGrowMode mode),
@@ -1233,14 +1277,14 @@ previously). Argument *mode* can be one of the following values:
 Note that this method does not trigger relayout.
 
 ", "");
 Note that this method does not trigger relayout.
 
 ", "");
-    
+
     DocDeclStr(
         wxFlexSizerGrowMode , GetNonFlexibleGrowMode(),
         "Returns the value that specifies how the sizer grows in the
 non-flexible direction if there is one.
 
 :see: `SetNonFlexibleGrowMode`", "");
     DocDeclStr(
         wxFlexSizerGrowMode , GetNonFlexibleGrowMode(),
         "Returns the value that specifies how the sizer grows in the
 non-flexible direction if there is one.
 
 :see: `SetNonFlexibleGrowMode`", "");
-    
+
 
     // Read-only access to the row heights and col widths arrays
     DocDeclAStr(
 
     // Read-only access to the row heights and col widths arrays
     DocDeclAStr(
@@ -1248,13 +1292,53 @@ non-flexible direction if there is one.
         "GetRowHeights(self) -> list",
         "Returns a list of integers representing the heights of each of the
 rows in the sizer.", "");
         "GetRowHeights(self) -> list",
         "Returns a list of integers representing the heights of each of the
 rows in the sizer.", "");
-    
+
     DocDeclAStr(
         const wxArrayInt& , GetColWidths() const,
         "GetColWidths(self) -> list",
         "Returns a list of integers representing the widths of each of the
 columns in the sizer.", "");
     DocDeclAStr(
         const wxArrayInt& , GetColWidths() const,
         "GetColWidths(self) -> list",
         "Returns a list of integers representing the widths of each of the
 columns in the sizer.", "");
-    
+
+};
+
+//---------------------------------------------------------------------------
+
+DocStr(wxStdDialogButtonSizer,
+"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.
+", "");
+
+class wxStdDialogButtonSizer: public wxBoxSizer
+{
+public:
+    DocCtorStr(
+        wxStdDialogButtonSizer(),
+        "", "");
+
+    DocDeclStr(
+        void , AddButton(wxButton *button),
+        "Use this to add the buttons to this sizer.  Do not use the `Add`
+method in the base class.", "");
+
+    DocDeclStr(
+        void , Realize(),
+        "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.", "");
+
+    void SetAffirmativeButton( wxButton *button );
+    void SetNegativeButton( wxButton *button );
+    void SetCancelButton( wxButton *button );
+
+    wxButton* GetAffirmativeButton() const;
+    wxButton* GetApplyButton() const;
+    wxButton* GetNegativeButton() const;
+    wxButton* GetCancelButton() const;
+    wxButton* GetHelpButton() const;
 };
 
 };
 
+
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------