]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/layout.h
Added paper classes.
[wxWidgets.git] / include / wx / layout.h
index a03b1d72c302fb4005d0302a25355f22b7ef8558..960ad9071623b0a6db7b23fc989a2b07035ea1aa 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     29/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Julian Smart
-// Licence:    wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_LAYOUTH__
@@ -48,6 +48,9 @@ class WXDLLEXPORT wxIndividualLayoutConstraint: public wxObject
   DECLARE_DYNAMIC_CLASS(wxIndividualLayoutConstraint)
 
  protected:
+   // To be allowed to modify the internal variables
+   friend class wxIndividualLayoutConstraint_Serialize;
+
    // 'This' window is the parent or sibling of otherWin
    wxWindow *otherWin;
 
@@ -161,7 +164,7 @@ 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
@@ -171,7 +174,7 @@ Algorithm:
 
  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
@@ -190,119 +193,119 @@ Algorithm:
 
 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.
+
 */
 
-typedef enum {
+enum wxSizerBehaviour
+{
     wxSizerShrink,
     wxSizerExpand,
     wxSizerNone
-} wxSizerBehaviour;
+};
 
 #define wxTYPE_SIZER        90
 
-class WXDLLEXPORT wxSizer: public wxWindow
+class WXDLLEXPORT wxSizer : public wxWindow
 {
-  DECLARE_DYNAMIC_CLASS(wxSizer)
+DECLARE_DYNAMIC_CLASS(wxSizer)
 
- private:
- protected:
-  wxSizerBehaviour sizerBehaviour;
-  int borderX;
-  int borderY;
-  int sizerWidth;
-  int sizerHeight;
-  int sizerX;
-  int sizerY;
- public:
-  wxSizer();
-  wxSizer(wxWindow *parent, wxSizerBehaviour behav = wxSizerNone);
-  ~wxSizer();
-
-  bool Create(wxWindow *parent, wxSizerBehaviour behav = wxSizerNone);
-  virtual void SetSize(int x, int y, int w, int h, int flags = wxSIZE_AUTO);
-  // Avoid compiler warning
-  void SetSize(int w, int h) { wxWindow::SetSize(w, h); }
-  virtual void Move(int x, int y);
-  virtual void GetSize(int *w, int *h) const;
-  inline virtual void GetClientSize(int *w, int *h) const { GetSize(w, h); }
-  virtual void GetPosition(int *x, int *y) const;
-
-  inline void SizerSetSize(int x, int y, int w, int h)
-    { SetSize(x, y, w, h); }
-  inline void SizerMove(int x, int y)
-    { Move(x, y); }
-
-  virtual void SetBorder(int w, int h);
-  inline int GetBorderX() { return borderX ; }
-  inline int GetBorderY() { return borderY ; }
-
-  virtual void AddSizerChild(wxWindow *child);
-  virtual void RemoveSizerChild(wxWindow *child);
-
-  inline virtual void SetBehaviour(wxSizerBehaviour b) { sizerBehaviour = b; }
-  inline virtual wxSizerBehaviour GetBehaviour() { return sizerBehaviour; }
-
-  virtual bool LayoutPhase1(int *);
-  virtual bool LayoutPhase2(int *);
+protected:
+    wxSizerBehaviour sizerBehaviour;
+    int borderX;
+    int borderY;
+    int sizerWidth;
+    int sizerHeight;
+    int sizerX;
+    int sizerY;
+
+public:
+    wxSizer();
+    wxSizer(wxWindow *parent, wxSizerBehaviour behav = wxSizerNone);
+    ~wxSizer();
+
+    bool Create(wxWindow *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(wxWindow *child);
+    virtual void RemoveSizerChild(wxWindow *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
+class WXDLLEXPORT wxRowColSizer : public wxSizer
 {
-  DECLARE_DYNAMIC_CLASS(wxRowColSizer)
-
- private:
- protected:
-  bool rowOrCol;
-  int rowOrColSize;
-  int xSpacing;
-  int ySpacing;
- public:
-  // rowOrCol = TRUE to be laid out in rows, otherwise in columns.
-  wxRowColSizer();
-  wxRowColSizer(wxWindow *parent, bool rowOrCol = wxSIZER_ROWS, int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink);
-  ~wxRowColSizer();
-
-  bool Create(wxWindow *parent, bool rowOrCol = wxSIZER_ROWS, int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink);
-  void SetSize(int x, int y, int w, int h, int flags = wxSIZE_AUTO);
-  // Avoid compiler warning
-  void SetSize(int w, int h) { wxSizer::SetSize(w, h); }
-
-  inline virtual void SetRowOrCol(bool rc) { rowOrCol = rc; }
-  inline virtual bool GetRowOrCol() { return rowOrCol; }
-  inline virtual void SetRowOrColSize(int n) { rowOrColSize = n; }
-  inline virtual int GetRowOrColSize() { return rowOrColSize; }
-  inline virtual void SetSpacing(int x, int y) { xSpacing = x; ySpacing = y; }
-  inline virtual void GetSpacing(int *x, int *y) { *x = xSpacing; *y = ySpacing; }
-
-  bool LayoutPhase1(int *);
-  bool LayoutPhase2(int *);
+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(wxWindow *parent, bool rowOrCol = wxSIZER_ROWS,
+                  int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink);
+    ~wxRowColSizer();
+
+    bool Create(wxWindow *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
+class WXDLLEXPORT wxSpacingSizer : public wxSizer
 {
-  DECLARE_DYNAMIC_CLASS(wxSpacingSizer)
+DECLARE_DYNAMIC_CLASS(wxSpacingSizer)
 
- private:
- protected:
- public:
-  wxSpacingSizer();
-  wxSpacingSizer(wxWindow *parent, wxRelationship rel, wxWindow *other, int spacing);
-  wxSpacingSizer(wxWindow *parent);
-  ~wxSpacingSizer();
+public:
+    wxSpacingSizer();
+    wxSpacingSizer(wxWindow *parent, wxRelationship rel, wxWindow *other, int spacing);
+    wxSpacingSizer(wxWindow *parent);
+    ~wxSpacingSizer();
 
-  bool Create(wxWindow *parent, wxRelationship rel, wxWindow *other, int sp);
-  bool Create(wxWindow *parent);
+    bool Create(wxWindow *parent, wxRelationship rel, wxWindow *other, int sp);
+    bool Create(wxWindow *parent);
 };
 
 #endif