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 ) {
+ %RenameCtor(SizerItemWindow, wxSizerItem( wxWindow *window, int proportion, int flag,
+ int border, PyObject* userData=NULL ))
+ {
wxPyUserData* data = NULL;
if ( userData ) {
bool blocked = wxPyBeginBlockThreads();
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 ) {
bool blocked = wxPyBeginBlockThreads();
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 ) {
bool blocked = wxPyBeginBlockThreads();
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( wxSize size ));
void SetRatio( float ratio );
DocDeclStr(
float , GetRatio(),
"Set the ratio item attribute.", "");
+
+ DocDeclStr(
+ wxRect , GetRect(),
+ "Returns the rectangle that the sizer item should occupy", "");
DocDeclStr(
struct wxPySizerItemInfo {
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;
// try wxSize or (w,h)
if ( checkSize && wxSize_helper(item, &sizePtr)) {
info.size = *sizePtr;
- info.gotSize = True;
+ info.gotSize = true;
}
// or a single int
if (checkIdx && PyInt_Check(item)) {
info.pos = PyInt_AsLong(item);
- info.gotPos = True;
+ info.gotPos = true;
}
}
}
DocAStr(Add,
"Add(self, item, int proportion=0, int flag=0, int border=0,
- PyObject userData=None)",
+ PyObject userData=None) -> wx.SizerItem",
"Appends a child item to the sizer.", "
is more complex than the *proportion* and *flag* will allow for.
");
- void 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;
bool blocked = wxPyBeginBlockThreads();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, True, False);
+ 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 )
- self->Add(info.window, proportion, flag, border, data);
+ return self->Add(info.window, proportion, flag, border, data);
else if ( info.sizer )
- self->Add(info.sizer, proportion, flag, border, data);
+ return self->Add(info.sizer, proportion, flag, border, data);
else if (info.gotSize)
- self->Add(info.size.GetWidth(), info.size.GetHeight(),
- proportion, flag, border, data);
+ return self->Add(info.size.GetWidth(), info.size.GetHeight(),
+ proportion, flag, border, data);
+ else
+ return NULL;
}
-// virtual void AddSpacer(int size);
-// virtual void AddStretchSpacer(int prop = 1);
+// virtual wxSizerItem* AddSpacer(int size);
+// virtual wxSizerItem* AddStretchSpacer(int prop = 1);
DocAStr(Insert,
"Insert(self, int before, item, int proportion=0, int flag=0, int border=0,
- PyObject userData=None)",
+ 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.", "");
- void Insert(int before, PyObject* item, int proportion=0, int flag=0,
- int border=0, PyObject* userData=NULL) {
+ wxSizerItem* Insert(int before, PyObject* item, int proportion=0, int flag=0,
+ int border=0, PyObject* userData=NULL) {
wxPyUserData* data = NULL;
bool blocked = wxPyBeginBlockThreads();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, True, False);
+ 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 )
- self->Insert(before, info.window, proportion, flag, border, data);
+ return self->Insert(before, info.window, proportion, flag, border, data);
else if ( info.sizer )
- self->Insert(before, info.sizer, proportion, flag, border, data);
+ return self->Insert(before, info.sizer, proportion, flag, border, data);
else if (info.gotSize)
- self->Insert(before, info.size.GetWidth(), info.size.GetHeight(),
- proportion, flag, border, data);
+ return self->Insert(before, info.size.GetWidth(), info.size.GetHeight(),
+ proportion, flag, border, data);
+ else
+ return NULL;
}
-// virtual void InsertSpacer(size_t index, int size);
-// virtual void 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)",
+ 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.", "");
- void Prepend(PyObject* item, int proportion=0, int flag=0, int border=0,
- PyObject* userData=NULL) {
+ wxSizerItem* Prepend(PyObject* item, int proportion=0, int flag=0, int border=0,
+ PyObject* userData=NULL) {
wxPyUserData* data = NULL;
bool blocked = wxPyBeginBlockThreads();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, True, False);
+ 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 )
- self->Prepend(info.window, proportion, flag, border, data);
+ return self->Prepend(info.window, proportion, flag, border, data);
else if ( info.sizer )
- self->Prepend(info.sizer, proportion, flag, border, data);
+ return self->Prepend(info.sizer, proportion, flag, border, data);
else if (info.gotSize)
- self->Prepend(info.size.GetWidth(), info.size.GetHeight(),
- proportion, flag, border, data);
+ return self->Prepend(info.size.GetWidth(), info.size.GetHeight(),
+ proportion, flag, border, data);
+ else
+ return NULL;
}
-// virtual void PrependSpacer(int size);
-// virtual void PrependStretchSpacer(int prop = 1);
+// virtual wxSizerItem* PrependSpacer(int size);
+// virtual wxSizerItem* PrependStretchSpacer(int prop = 1);
DocAStr(Remove,
"Remove(self, item) -> bool",
");
bool Remove(PyObject* item) {
bool blocked = wxPyBeginBlockThreads();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, False, True);
+ wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
wxPyEndBlockThreads(blocked);
if ( info.window )
return self->Remove(info.window);
else if ( info.gotPos )
return self->Remove(info.pos);
else
- return False;
+ return false;
}
was found and detached.", "");
bool Detach(PyObject* item) {
bool blocked = wxPyBeginBlockThreads();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, False, True);
+ wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
wxPyEndBlockThreads(blocked);
if ( info.window )
return self->Detach(info.window);
else if ( info.gotPos )
return self->Detach(info.pos);
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) {
+ bool blocked = wxPyBeginBlockThreads();
+ wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
+ wxPyEndBlockThreads(blocked);
+ if ( info.window )
+ return self->GetItem(info.window);
+ else if ( info.sizer )
+ return self->GetItem(info.sizer);
+ else if ( info.gotPos )
+ return self->GetItem(info.pos);
+ else
+ return NULL;
}
void _SetItemMinSize(PyObject* item, const wxSize& size) {
bool blocked = wxPyBeginBlockThreads();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, False, True);
+ wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
wxPyEndBlockThreads(blocked);
if ( info.window )
self->SetItemMinSize(info.window, size);
}
DocDeclAStrName(
- void , Add( wxSizerItem *item ),
+ wxSizerItem* , Add( wxSizerItem *item ),
"AddItem(self, SizerItem item)",
"Adds a `wx.SizerItem` to the sizer.", "",
AddItem);
DocDeclAStrName(
- void , Insert( size_t index, wxSizerItem *item ),
+ 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(
- void , Prepend( wxSizerItem *item ),
+ wxSizerItem* , Prepend( wxSizerItem *item ),
"PrependItem(self, SizerItem item)",
"Prepends a `wx.SizerItem` to the sizer.", "",
PrependItem);
DocDeclStr(
- void , Clear( bool deleteWindows=False ),
+ void , Clear( bool deleteWindows=false ),
"Clear all items from the sizer, optionally destroying the window items
as well.", "");
// 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();
%extend {
DocAStr(Show,
- "Show(self, item, bool show=True)",
+ "Show(self, item, bool show=True, bool recursive=false) -> bool",
"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.", "");
- void Show(PyObject* item, bool show = True) {
+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();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, False, True);
+ wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, true);
wxPyEndBlockThreads(blocked);
if ( info.window )
- self->Show(info.window, show);
+ return self->Show(info.window, show, recursive);
else if ( info.sizer )
- self->Show(info.sizer, show);
+ return self->Show(info.sizer, show, recursive);
else if ( info.gotPos )
- self->Show(info.pos, show);
+ return self->Show(info.pos, show);
+ else
+ return false;
}
DocAStr(IsShown,
the item.", "");
bool IsShown(PyObject* item) {
bool blocked = wxPyBeginBlockThreads();
- wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, False, False);
+ wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, false, false);
wxPyEndBlockThreads(blocked);
if ( info.window )
return self->IsShown(info.window);
else if ( info.gotPos )
return self->IsShown(info.pos);
else
- return False;
+ return false;
}
}
%pythoncode {
- def Hide(self, item):
+ def Hide(self, item, recursive=False):
"""
- A convenience method for Show(item, False).
+ A convenience method for Show(item, False, recursive).
"""
- self.Show(item, False)
+ return self.Show(item, False, recursive)
}
DocDeclStr(
void , ShowItems(bool show),
- "Recursively call `wx.Window.Show` on all sizer items.", "");
+ "Recursively call `wx.SizerItem.Show` on all sizer items.", "");
};
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`
"Constructor. It takes an associated static box and the orientation
*orient* as parameters - orient can be either of ``wx.VERTICAL`` or
``wx.HORIZONTAL``.", "");
+
+ // TODO: wxStaticBoxSizer(int orient, wxWindow *win, const wxString& label = wxEmptyString);
- DocDeclStr(
- wxStaticBox *, GetStaticBox(),
- "Returns the static box associated with this sizer.", "");
+ DocDeclStr(
+ wxStaticBox *, GetStaticBox(),
+ "Returns the static box associated with this 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;
+};
+
+
//---------------------------------------------------------------------------