added shortcut functions AddSpacer and AddStretchSpacer (plus Prepend and Insert variants)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Dimitri Schoolwerth
2004-07-25 16:37:48 +00:00
parent db4c39a9e8
commit 749bb9f129
3 changed files with 93 additions and 5 deletions

View File

@@ -11,12 +11,12 @@ The layout algorithm used by sizers in wxWidgets is closely related to layout
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
This will most often mean that the programmer does not set the original size of
a dialog in the beginning, rather the dialog will be 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, 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
and thus does 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
@@ -31,7 +31,8 @@ capabilities for the various virtual methods.}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\helpref{wxObject}{wxobject}\\
\helpref{wxClientDataContainer}{wxclientdatacontainer}
\wxheading{See also}
@@ -138,6 +139,22 @@ item, for use in derived classes when sizing information is more
complex than the {\it proportion} and {\it flag} will allow for.}
\membersection{wxSizer::AddSpacer}\label{wxsizeraddspacer}
\func{void}{AddSpacer}{\param{int }{size}}
Adds non-stretchable space to the sizer. More readable way of calling
\helpref{Add}{wxsizeradd}(size, size, 0).
\membersection{wxSizer::AddStretchSpacer}\label{wxsizeraddstretchspacer}
\func{void}{AddStretchSpacer}{\param{int }{prop = 1}}
Adds stretchable space to the sizer. More readable way of calling
\helpref{Add}{wxsizeradd}(0, 0, prop).
\membersection{wxSizer::CalcMin}\label{wxsizercalcmin}
\func{wxSize}{CalcMin}{\void}
@@ -231,6 +248,22 @@ Insert a child into the sizer before any existing item at {\it index}.
See \helpref{wxSizer::Add}{wxsizeradd} for the meaning of the other parameters.
\membersection{wxSizer::InsertSpacer}\label{wxsizerinsertspacer}
\func{void}{InsertSpacer}{\param{size\_t }{index}, \param{int }{size}}
Inserts non-stretchable space to the sizer. More readable way of calling
\helpref{Insert}{wxsizerinsert}(size, size, 0).
\membersection{wxSizer::InsertStretchSpacer}\label{wxsizerinsertstretchspacer}
\func{void}{InsertStretchSpacer}{\param{size\_t }{index}, \param{int }{prop = 1}}
Inserts stretchable space to the sizer. More readable way of calling
\helpref{Insert}{wxsizerinsert}(0, 0, prop).
\membersection{wxSizer::Layout}\label{wxsizerlayout}
\func{void}{Layout}{\void}
@@ -252,6 +285,22 @@ Same as \helpref{wxSizer::Add}{wxsizeradd}, but prepends the items to the beginn
list of items (windows, subsizers or spaces) owned by this sizer.
\membersection{wxSizer::PrependSpacer}\label{wxsizerprependspacer}
\func{void}{PrependSpacer}{\param{int }{size}}
Prepends non-stretchable space to the sizer. More readable way of calling
\helpref{Prepend}{wxsizerprepend}(size, size, 0).
\membersection{wxSizer::PrependStretchSpacer}\label{wxsizerprependstretchspacer}
\func{void}{PrepentStretchSpacer}{\param{int }{prop = 1}}
Prepends stretchable space to the sizer. More readable way of calling
\helpref{Prepend}{wxsizerprepend}(0, 0, prop).
\membersection{wxSizer::RecalcSizes}\label{wxsizerrecalcsizes}
\func{void}{RecalcSizes}{\void}

View File

@@ -198,6 +198,9 @@ public:
wxObject* userData = NULL );
virtual void Add( wxSizerItem *item );
virtual void AddSpacer(int size);
virtual void AddStretchSpacer(int prop = 1);
virtual void Insert( size_t index,
wxWindow *window,
int proportion = 0,
@@ -220,6 +223,9 @@ public:
virtual void Insert( size_t index,
wxSizerItem *item );
virtual void InsertSpacer(size_t index, int size);
virtual void InsertStretchSpacer(size_t index, int prop = 1);
virtual void Prepend( wxWindow *window,
int proportion = 0,
int flag = 0,
@@ -238,6 +244,9 @@ public:
wxObject* userData = NULL );
virtual void Prepend( wxSizerItem *item );
virtual void PrependSpacer(int size);
virtual void PrependStretchSpacer(int prop = 1);
// Deprecated in 2.6 since historically it does not delete the window,
// use Detach instead.
wxDEPRECATED( virtual bool Remove( wxWindow *window ) );
@@ -549,7 +558,7 @@ public:
protected:
// this protected ctor lets us mark the real one above as deprecated
// and still has warning-free build of the library itself:
// and still have warning-free build of the library itself:
wxBookCtrlSizer() {}
wxBookCtrl *m_bookctrl;

View File

@@ -366,6 +366,16 @@ void wxSizer::Add( wxSizerItem *item )
item->GetWindow()->SetContainingSizer( this );
}
void wxSizer::AddSpacer(int size)
{
Add(size, size);
}
void wxSizer::AddStretchSpacer(int prop)
{
Add(0, 0, prop);
}
void wxSizer::Prepend( wxWindow *window, int proportion, int flag, int border, wxObject* userData )
{
m_children.Insert( new wxSizerItem( window, proportion, flag, border, userData ) );
@@ -390,6 +400,16 @@ void wxSizer::Prepend( wxSizerItem *item )
item->GetWindow()->SetContainingSizer( this );
}
void wxSizer::PrependSpacer(int size)
{
Prepend(size, size);
}
void wxSizer::PrependStretchSpacer(int prop)
{
Prepend(0, 0, prop);
}
void wxSizer::Insert( size_t index,
wxWindow *window,
int proportion,
@@ -433,6 +453,16 @@ void wxSizer::Insert( size_t index, wxSizerItem *item )
item->GetWindow()->SetContainingSizer( this );
}
void wxSizer::InsertSpacer(size_t index, int size)
{
Insert(index, size, size);
}
void wxSizer::InsertStretchSpacer(size_t index, int prop)
{
Insert(index, 0, 0, prop);
}
bool wxSizer::Remove( wxWindow *window )
{
return Detach( window );