wxSizerFlags& Align(int alignment) // combination of wxAlignment values
{
- m_flags &= wxALL;
+ m_flags &= ~wxALIGN_MASK;
m_flags |= alignment;
return *this;
}
+ wxSizerFlags& Expand()
+ {
+ m_flags |= wxEXPAND;
+ return *this;
+ }
+
// some shortcuts for Align()
- wxSizerFlags& Expand() { return Align(wxEXPAND); }
wxSizerFlags& Centre() { return Align(wxCENTRE); }
wxSizerFlags& Center() { return Centre(); }
wxSizerFlags& Left() { return Align(wxALIGN_LEFT); }
{ return m_kind == Item_Sizer ? m_sizer : NULL; }
wxSize GetSpacer() const;
- void Show(bool show);
+ // this function behaves obviously for the windows and spacers but for the
+ // sizers it returns true if any sizer element is shown and only returns
+ // false if all of them are hidden
bool IsShown() const;
+ void Show(bool show);
+ void SetUserData(wxObject* userData)
+ { delete m_userData; m_userData = userData; }
wxObject* GetUserData() const
{ return m_userData; }
wxPoint GetPosition() const
// common part of ctors taking wxSizerFlags
void Init(const wxSizerFlags& flags);
+
+ // discriminated union: depending on m_kind one of the fields is valid
enum
{
Item_None,
class WXDLLEXPORT wxSizer: public wxObject, public wxClientDataContainer
{
public:
- wxSizer();
+ wxSizer() { }
~wxSizer();
// methods for adding elements to the sizer: there are Add/Insert/Prepend
// Recursively call wxWindow::Show () on all sizer items.
virtual void ShowItems (bool show);
- void Show(bool show)
- { m_isShown = show;
- ShowItems(show);
- }
- bool IsShown() const { return m_isShown; }
+ void Show(bool show) { ShowItems(show); }
protected:
wxSize m_size;
wxSize m_minSize;
wxPoint m_position;
wxSizerItemList m_children;
- bool m_isShown;
wxSize GetMaxWindowSize( wxWindow *window ) const;
wxSize GetMinWindowSize( wxWindow *window );