#ifndef __WXSIZER_H__
#define __WXSIZER_H__
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "sizer.h"
-#endif
-
#include "wx/defs.h"
#include "wx/button.h"
#include "wx/window.h"
#include "wx/frame.h"
#include "wx/dialog.h"
-#include "wx/bookctrl.h"
//---------------------------------------------------------------------------
// classes
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); }
wxSizerFlags& Border(int direction = wxALL)
{
// FIXME: default border size shouldn't be hardcoded
+#ifdef __SMARTPHONE__
+ // no borders by default on limited size screen
+ wxUnusedVar(direction);
+
+ return *this;
+#else
return Border(direction, 5);
+#endif
}
virtual wxSize GetSize() const;
virtual wxSize CalcMin();
- virtual void SetDimension( wxPoint pos, wxSize size );
+ virtual void SetDimension( const wxPoint& pos, const wxSize& size );
wxSize GetMinSize() const
{ return m_minSize; }
{ 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
void SetMinSize( int width, int height )
{ DoSetMinSize( width, height ); }
- void SetMinSize( wxSize size )
+ void SetMinSize( const wxSize& size )
{ DoSetMinSize( size.x, size.y ); }
// Searches recursively
bool SetItemMinSize( wxWindow *window, int width, int height )
{ return DoSetItemMinSize( window, width, height ); }
- bool SetItemMinSize( wxWindow *window, wxSize size )
+ bool SetItemMinSize( wxWindow *window, const wxSize& size )
{ return DoSetItemMinSize( window, size.x, size.y ); }
// Searches recursively
bool SetItemMinSize( wxSizer *sizer, int width, int height )
{ return DoSetItemMinSize( sizer, width, height ); }
- bool SetItemMinSize( wxSizer *sizer, wxSize size )
+ bool SetItemMinSize( wxSizer *sizer, const wxSize& size )
{ return DoSetItemMinSize( sizer, size.x, size.y ); }
bool SetItemMinSize( size_t index, int width, int height )
{ return DoSetItemMinSize( index, width, height ); }
- bool SetItemMinSize( size_t index, wxSize size )
+ bool SetItemMinSize( size_t index, const wxSize& size )
{ return DoSetItemMinSize( index, size.x, size.y ); }
wxSize GetSize() const
// 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 );