]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/layout.h
support for using DIBs for wxBitmap implementation (patch 649866)
[wxWidgets.git] / include / wx / layout.h
index f4418fd6fb4417216b8faf0263dd5b89dc2f0b28..fe232e266a90e9141e38aa82986a89ccad698934 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "layout.h"
 #endif
 
-#include "wx/defs.h"
+#include "wx/object.h"
 
 // X stupidly defines these in X.h
 #ifdef Above
@@ -62,19 +62,6 @@ enum wxRelationship
     wxAbsolute
 };
 
-enum wxSizerBehaviour
-{
-    wxSizerShrink,
-    wxSizerExpand,
-    wxSizerNone
-};
-
-#define wxTYPE_SIZER        90
-
-// =============================================================================
-// classes
-// =============================================================================
-
 // ----------------------------------------------------------------------------
 // wxIndividualLayoutConstraint: a constraint on window position
 // ----------------------------------------------------------------------------
@@ -190,164 +177,10 @@ public:
     bool SatisfyConstraints(wxWindowBase *win, int *noChanges);
     bool AreSatisfied() const
     {
-        return left.GetDone() && top.GetDone() && right.GetDone() &&
-               bottom.GetDone() && centreX.GetDone() && centreY.GetDone();
+        return left.GetDone() && top.GetDone() &&
+               width.GetDone() && height.GetDone();
     }
 };
 
-// ----------------------------------------------------------------------------
-// sizers
-// ----------------------------------------------------------------------------
-
-/*
-
-Algorithm:
-
- Each sizer has a Layout function.
-
- wxExpandSizer::Layout                  ; E.g. for resizeable windows
-
-   - parent size must be known (i.e. called
-      from OnSize or explicitly)
-   - call Layout on each child to give it a chance to resize
-     (e.g. child shrinks around its own children):
-     stop when all children return TRUE, or no change
-   - evaluate constraints on self to set size
-
- wxShrinkSizer::Layout                  ; E.g. fit-to-contents windows
-                                        ; Perhaps 2 rowcols, one above other.
-
-   - call Layout on each child to give it a chance to resize
-     (e.g. child shrinks around its own children):
-     stop when each returns TRUE, or no change
-   - fit around children
-        (what if some want to be centred? E.g. OK/Cancel rowcol.
-         - done by centring e.g. bottom sizer w.r.t. top sizer.
-           (sibling relationship only))
-   - evaluate own constraints (e.g. may be below another window)
-   - IF parent is a real window (remember: a real window can
-     have only one child sizer, although a sizer can have several child
-     (real) windows), then resize this parent WITHOUT invoking Layout
-     again.
-     Frame and dialog box OnSizes can check if the sizer is a shrink
-     sizer; if not, can call layout. Maybe have virtual bool AutoSizeLayout()
-     to determine this.
-
-How to relayout if a child sizer/window changes? Need to go all the way
-to the top of the hierarchy and call Layout() again.
-
- wxRowColSizer::Layout
-
-   - Similar to wxShrinkSizer only instead of shrinking to fit
-     contents, more sophisticated layout of contents, and THEN
-     shrinking (possibly).
-   - Do the same parent window check/setsize as for wxShrinkSizer.
-
-*/
-
-class WXDLLEXPORT wxSizer : public wxWindow
-{
-    DECLARE_DYNAMIC_CLASS(wxSizer)
-
-protected:
-    wxSizerBehaviour sizerBehaviour;
-    int borderX;
-    int borderY;
-    int sizerWidth;
-    int sizerHeight;
-    int sizerX;
-    int sizerY;
-
-public:
-    wxSizer();
-    wxSizer(wxWindowBase *parent, wxSizerBehaviour behav = wxSizerNone);
-    ~wxSizer();
-
-    bool Create(wxWindowBase *parent, wxSizerBehaviour behav = wxSizerNone);
-
-    virtual void GetSize(int *w, int *h) const;
-
-    virtual void GetClientSize(int *w, int *h) const { GetSize(w, h); }
-
-    virtual void GetPosition(int *x, int *y) const;
-
-    void SizerSetSize(int x, int y, int w, int h) { SetSize(x, y, w, h); }
-    void SizerMove(int x, int y) { Move(x, y); }
-
-    virtual void SetBorder(int w, int h);
-    int GetBorderX() { return borderX ; }
-    int GetBorderY() { return borderY ; }
-
-    virtual void AddSizerChild(wxWindowBase *child);
-    virtual void RemoveSizerChild(wxWindowBase *child);
-
-    virtual void SetBehaviour(wxSizerBehaviour b) { sizerBehaviour = b; }
-    virtual wxSizerBehaviour GetBehaviour() { return sizerBehaviour; }
-
-    virtual bool LayoutPhase1(int *);
-    virtual bool LayoutPhase2(int *);
-
-protected:
-    virtual void DoSetSize(int x, int y,
-                           int width, int height,
-                           int sizeFlags = wxSIZE_AUTO);
-};
-
-#define wxSIZER_ROWS  TRUE
-#define wxSIZER_COLS  FALSE
-
-class WXDLLEXPORT wxRowColSizer : public wxSizer
-{
-    DECLARE_DYNAMIC_CLASS(wxRowColSizer)
-
-protected:
-    bool rowOrCol;
-    int rowOrColSize;
-    int xSpacing;
-    int ySpacing;
-
-public:
-    // rowOrCol = TRUE to be laid out in rows, otherwise in columns.
-    wxRowColSizer();
-    wxRowColSizer(wxWindowBase *parent, bool rowOrCol = wxSIZER_ROWS,
-                  int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink);
-    ~wxRowColSizer();
-
-    bool Create(wxWindowBase *parent, bool rowOrCol = wxSIZER_ROWS,
-                int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink);
-
-    virtual void SetRowOrCol(bool rc) { rowOrCol = rc; }
-    virtual bool GetRowOrCol() { return rowOrCol; }
-    virtual void SetRowOrColSize(int n) { rowOrColSize = n; }
-    virtual int GetRowOrColSize() { return rowOrColSize; }
-    virtual void SetSpacing(int x, int y) { xSpacing = x; ySpacing = y; }
-    virtual void GetSpacing(int *x, int *y) { *x = xSpacing; *y = ySpacing; }
-
-    bool LayoutPhase1(int *);
-    bool LayoutPhase2(int *);
-};
-
-class WXDLLEXPORT wxSpacingSizer : public wxSizer
-{
-    DECLARE_DYNAMIC_CLASS(wxSpacingSizer)
-
-public:
-    wxSpacingSizer();
-    wxSpacingSizer(wxWindowBase *parent, wxRelationship rel, wxWindowBase *other, int spacing);
-    wxSpacingSizer(wxWindowBase *parent);
-    ~wxSpacingSizer();
-
-    bool Create(wxWindowBase *parent, wxRelationship rel, wxWindowBase *other, int sp);
-    bool Create(wxWindowBase *parent);
-};
-
-// ----------------------------------------------------------------------------
-// global functions
-// ----------------------------------------------------------------------------
-
-#if WXWIN_COMPATIBILITY
-    extern bool WXDLLEXPORT wxOldDoLayout(wxWindowBase *win);
-#endif // WXWIN_COMPATIBILITY
-
 #endif
     // _WX_LAYOUTH__