]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/sizer.h
Resolve ambiguity between GetClientXXX() methods in wxOSX wxComboBox.
[wxWidgets.git] / interface / wx / sizer.h
index 1423c6d485ea86a05188ab40da833b76771b25b7..ec02ec9e3c6fbf7444a4d0243328c3d40c121359 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxStdDialogButtonSizer
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Purpose:     interface of wxStdDialogButtonSizer
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -88,7 +88,7 @@
              @c wxFIXED_MINSIZE.}
     @itemdef{wxRESERVE_SPACE_EVEN_IF_HIDDEN,
              Normally wxSizers don't allocate space for hidden windows or other
              @c wxFIXED_MINSIZE.}
     @itemdef{wxRESERVE_SPACE_EVEN_IF_HIDDEN,
              Normally wxSizers don't allocate space for hidden windows or other
-             items. This flag overrides this behavior so that sufficient space
+             items. This flag overrides this behaviour so that sufficient space
              is allocated for the window even if it isn't visible. This makes
              it possible to dynamically show and hide controls without resizing
              parent dialog, for example. (Available since 2.8.8.)}
              is allocated for the window even if it isn't visible. This makes
              it possible to dynamically show and hide controls without resizing
              parent dialog, for example. (Available since 2.8.8.)}
@@ -168,7 +168,7 @@ public:
             to make them grow and shrink equally with the sizer's horizontal
             dimension.
         @param flag
             to make them grow and shrink equally with the sizer's horizontal
             dimension.
         @param flag
-            OR-combination of flags affecting sizer's behavior. See
+            OR-combination of flags affecting sizer's behaviour. See
             @ref wxsizer_flags "wxSizer flags list" for details.
         @param border
             Determines the border width, if the flag parameter is set to
             @ref wxsizer_flags "wxSizer flags list" for details.
         @param border
             Determines the border width, if the flag parameter is set to
@@ -226,7 +226,7 @@ public:
             to make them grow and shrink equally with the sizer's horizontal
             dimension.
         @param flag
             to make them grow and shrink equally with the sizer's horizontal
             dimension.
         @param flag
-            OR-combination of flags affecting sizer's behavior. See
+            OR-combination of flags affecting sizer's behaviour. See
             @ref wxsizer_flags "wxSizer flags list" for details.
         @param border
             Determines the border width, if the flag parameter is set to
             @ref wxsizer_flags "wxSizer flags list" for details.
         @param border
             Determines the border width, if the flag parameter is set to
@@ -274,7 +274,7 @@ public:
             to make them grow and shrink equally with the sizer's horizontal
             dimension.
         @param flag
             to make them grow and shrink equally with the sizer's horizontal
             dimension.
         @param flag
-            OR-combination of flags affecting sizer's behavior. See
+            OR-combination of flags affecting sizer's behaviour. See
             @ref wxsizer_flags "wxSizer flags list" for details.
         @param border
             Determines the border width, if the flag parameter is set to
             @ref wxsizer_flags "wxSizer flags list" for details.
         @param border
             Determines the border width, if the flag parameter is set to
@@ -291,13 +291,15 @@ public:
                      wxObject* userData = NULL);
 
     /**
                      wxObject* userData = NULL);
 
     /**
-        Adds non-stretchable space to the sizer.
+        This base function adds non-stretchable space to both the horizontal
+        and vertical orientation of the sizer.
         More readable way of calling:
         @code
         wxSizer::Add(size, size, 0).
         @endcode
         More readable way of calling:
         @code
         wxSizer::Add(size, size, 0).
         @endcode
+        @see wxBoxSizer::AddSpacer()
     */
     */
-    wxSizerItem* AddSpacer(int size);
+    virtual wxSizerItem *AddSpacer(int size);
 
     /**
         Adds stretchable space to the sizer.
 
     /**
         Adds stretchable space to the sizer.
@@ -841,7 +843,8 @@ public:
         the sizer's minimal size. For windows with managed scrollbars this will set them
         appropriately.
 
         the sizer's minimal size. For windows with managed scrollbars this will set them
         appropriately.
 
-        @deprecated @todo provide deprecation description
+        @deprecated This is exactly the same as FitInside() in wxWidgets 2.9
+        and later, please replace calls to it with FitInside().
 
         @see wxScrolled::SetScrollbars()
     */
 
         @see wxScrolled::SetScrollbars()
     */
@@ -1015,6 +1018,30 @@ public:
     */
     virtual ~wxSizerItem();
 
     */
     virtual ~wxSizerItem();
 
+    /**
+        Set the window to be tracked by this item.
+
+        The old window isn't deleted as it is now owned by the sizer item.
+    */
+    void AssignWindow(wxWindow *window);
+
+    /**
+        Set the sizer tracked by this item.
+
+        Old sizer, if any, is deleted.
+    */
+    void AssignSizer(wxSizer *sizer);
+
+    //@{
+    /**
+        Set the size of the spacer tracked by this item.
+
+        Old spacer, if any, is deleted.
+    */
+    void AssignSpacer(const wxSize& size);
+    void AssignSpacer(int w, int h) { AssignSpacer(wxSize(w, h)); }
+    //@}
+
     /**
         Calculates the minimum desired size for the item, including any space
         needed by borders.
     /**
         Calculates the minimum desired size for the item, including any space
         needed by borders.
@@ -1184,13 +1211,17 @@ public:
 
     /**
         Set the sizer tracked by this item.
 
     /**
         Set the sizer tracked by this item.
-        @deprecated @todo provide deprecation description
+
+        @deprecated This function does not free the old sizer which may result
+        in memory leaks, use AssignSizer() which does free it instead.
     */
     void SetSizer(wxSizer* sizer);
 
     /**
         Set the size of the spacer tracked by this item.
     */
     void SetSizer(wxSizer* sizer);
 
     /**
         Set the size of the spacer tracked by this item.
-        @deprecated @todo provide deprecation description
+
+        @deprecated This function does not free the old spacer which may result
+        in memory leaks, use AssignSpacer() which does free it instead.
     */
     void SetSpacer(const wxSize& size);
 
     */
     void SetSpacer(const wxSize& size);
 
@@ -1331,7 +1362,7 @@ public:
     /**
         Set the @c wxRESERVE_SPACE_EVEN_IF_HIDDEN flag. Normally wxSizers
         don't allocate space for hidden windows or other items. This flag
     /**
         Set the @c wxRESERVE_SPACE_EVEN_IF_HIDDEN flag. Normally wxSizers
         don't allocate space for hidden windows or other items. This flag
-        overrides this behavior so that sufficient space is allocated for the
+        overrides this behaviour so that sufficient space is allocated for the
         window even if it isn't visible. This makes it possible to dynamically
         show and hide controls without resizing parent dialog, for example.
 
         window even if it isn't visible. This makes it possible to dynamically
         show and hide controls without resizing parent dialog, for example.
 
@@ -1430,17 +1461,7 @@ public:
     /**
         wxFlexGridSizer constructors.
 
     /**
         wxFlexGridSizer constructors.
 
-        Usually only the number of columns in the flex grid sizer needs to be
-        specified using @a cols argument. The number of rows will be deduced
-        automatically depending on the number of the elements added to the
-        sizer. If the number of @a rows is explicitly specified (and not zero),
-        the sizer will check that it no more than @code cols*rows @endcode
-        elements are added to it.
-
-        The @a gap (or @a vgap and @a hgap, which correspond to the height and
-        width of the wxSize object) argument defines the size of the padding
-        between the rows (its vertical component, or @a vgap) and columns
-        (its horizontal component, or @a hgap), in pixels.
+        Please see wxGridSizer::wxGridSizer documentation.
 
         @since 2.9.1 (except for the four argument overload)
     */
 
         @since 2.9.1 (except for the four argument overload)
     */
@@ -1583,18 +1604,27 @@ public:
     /**
         wxGridSizer constructors.
 
     /**
         wxGridSizer constructors.
 
-        Usually only the number of columns in the grid sizer needs to be
+        Usually only the number of columns in the flex grid sizer needs to be
         specified using @a cols argument. The number of rows will be deduced
         automatically depending on the number of the elements added to the
         specified using @a cols argument. The number of rows will be deduced
         automatically depending on the number of the elements added to the
-        sizer. If the number of @a rows is explicitly specified (and not zero),
-        the sizer will check that it no more than @code cols*rows @endcode
-        elements are added to it.
+        sizer.
 
 
-        The @a gap (or @a vgap and @a hgap, which correspond to @c y and @c x
-        fields of the wxSize object) argument defines the size of the padding
-        between the grid rows (its vertical component, or @a vgap) and columns
+        If a constructor form with @a rows parameter is used (and the value of
+        @a rows argument is not zero, meaning "unspecified") the sizer will
+        check that no more than @c cols*rows elements are added to it, i.e.
+        that no more than the given number of @a rows is used. Adding less than
+        maximally allowed number of items is not an error however.
+
+        Finally, it is also possible to specify the number of rows and use 0
+        for @a cols. In this case, the sizer will use the given fixed number of
+        rows and as many columns as necessary.
+
+        The @a gap (or @a vgap and @a hgap, which correspond to the height and
+        width of the wxSize object) argument defines the size of the padding
+        between the rows (its vertical component, or @a vgap) and columns
         (its horizontal component, or @a hgap), in pixels.
 
         (its horizontal component, or @a hgap), in pixels.
 
+
         @since 2.9.1 (except for the four argument overload)
     */
     wxGridSizer( int cols, int vgap, int hgap );
         @since 2.9.1 (except for the four argument overload)
     */
     wxGridSizer( int cols, int vgap, int hgap );
@@ -1604,23 +1634,28 @@ public:
     wxGridSizer( int rows, int cols, const wxSize& gap );
     //@}
 
     wxGridSizer( int rows, int cols, const wxSize& gap );
     //@}
 
-    //@{
     /**
     /**
-        Returns the number of columns or rows that has been specified for the
+        Returns the number of columns that has been specified for the
         sizer.
 
         Returns zero if the sizer is automatically adjusting the number of
         sizer.
 
         Returns zero if the sizer is automatically adjusting the number of
-        columns/rows depending on number of its children. To get the effective
-        number of columns or rows being currently used, see
-        GetEffectiveColsCount() and GetEffectiveRowsCount().
+        columns depending on number of its children. To get the effective
+        number of columns or rows being currently used, see GetEffectiveColsCount()
     */
     int GetCols() const;
     */
     int GetCols() const;
+    
+    /**
+        Returns the number of rows that has been specified for the
+        sizer.
+
+        Returns zero if the sizer is automatically adjusting the number of
+        rows depending on number of its children. To get the effective
+        number of columns or rows being currently used, see GetEffectiveRowsCount().
+    */
     int GetRows() const;
     int GetRows() const;
-    //@}
 
 
-    //@{
     /**
     /**
-        Returns the number of columns or rows currently used by the sizer.
+        Returns the number of columns currently used by the sizer.
 
         This will depend on the number of children the sizer has if
         the sizer is automatically adjusting the number of columns/rows.
 
         This will depend on the number of children the sizer has if
         the sizer is automatically adjusting the number of columns/rows.
@@ -1628,8 +1663,16 @@ public:
         @since 2.9.1
     */
     int GetEffectiveColsCount() const;
         @since 2.9.1
     */
     int GetEffectiveColsCount() const;
+    
+    /**
+        Returns the number of rows currently used by the sizer.
+
+        This will depend on the number of children the sizer has if
+        the sizer is automatically adjusting the number of columns/rows.
+
+        @since 2.9.1
+    */
     int GetEffectiveRowsCount() const;
     int GetEffectiveRowsCount() const;
-    //@}
 
     /**
         Returns the horizontal gap (in pixels) between cells in the sizer.
 
     /**
         Returns the horizontal gap (in pixels) between cells in the sizer.
@@ -1747,6 +1790,22 @@ public:
     */
     wxBoxSizer(int orient);
 
     */
     wxBoxSizer(int orient);
 
+    /**
+        Adds non-stretchable space to the main orientation of the sizer only.
+        More readable way of calling:
+        @code
+        if ( wxBoxSizer::IsVertical() )
+        {
+            wxBoxSizer::Add(0, size, 0).
+        }
+        else
+        {
+            wxBoxSizer::Add(size, 0, 0).
+        }
+        @endcode
+    */
+    virtual wxSizerItem *AddSpacer(int size);
+
     /**
         Implements the calculation of a box sizer's minimal.
 
     /**
         Implements the calculation of a box sizer's minimal.