<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<!-- THIS FILE IS GENERATED DO NOT EDIT -->


<erlref>
<header>
  <copyright>
    <year>2020</year>
    <holder>Ericsson AB. All Rights Reserved.</holder></copyright>
  <legalnotice>
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

  </legalnotice>
  <title>wxFlexGridSizer</title>
</header>
<module>wxFlexGridSizer</module>
<modulesummary>Functions for wxFlexGridSizer class</modulesummary>
<description><p>A flex grid sizer is a sizer which lays out its children in a two-dimensional table with all table fields in one row having the same height and all fields in one column having the same width, but all rows or all columns are not necessarily the same height or width as in the <seeerl marker="wxGridSizer"><c>wxGridSizer</c></seeerl>.
      </p><p>Since wxWidgets 2.5.0, <seeerl marker="wxFlexGridSizer"><c>wxFlexGridSizer</c></seeerl> can also size items equally in one direction but unequally ("flexibly") in the other. If the sizer is only flexible in one direction (this can be changed using <seemfa marker="#setFlexibleDirection/2"><c>setFlexibleDirection/2</c></seemfa>), it needs to be decided how the sizer should grow in the other ("non-flexible") direction in order to fill the available space. The <seemfa marker="#setNonFlexibleGrowMode/2"><c>setNonFlexibleGrowMode/2</c></seemfa> method serves this purpose.
      </p><p>See: <seeerl marker="wxSizer"><c>wxSizer</c></seeerl>, <url href="https://docs.wxwidgets.org/3.1/overview_sizer.html#overview_sizer">Overview sizer</url>
      </p>
  <p>This class is derived (and can use functions) from: 
    <seeerl marker="wxGridSizer"><c>wxGridSizer</c></seeerl> <seeerl marker="wxSizer"><c>wxSizer</c></seeerl></p>
  
  <p>wxWidgets docs: <url href="https://docs.wxwidgets.org/3.1/classwx_flex_grid_sizer.html">wxFlexGridSizer</url></p>
  </description>
<datatypes><datatype><name name="wxFlexGridSizer"/></datatype></datatypes>

<funcs>
  <func>
    <name name="new" arity="1" clause_i="1" since=""/>
    <fsummary>See: <c>new/2</c></fsummary>
  </func>
  
  <func>
    <name name="new" arity="2" clause_i="1" since=""/>
    <fsummary/>
    <desc/>
  </func>
  
  <func>
    <name name="new" arity="3" clause_i="1" since=""/>
  
    <name name="new" arity="3" clause_i="2" since=""/>
    <fsummary/>
    <desc/>
  </func>
  
  <func>
    <name name="new" arity="4" clause_i="1" since=""/>
    <fsummary/>
    <desc/>
  </func>
  
  <func>
    <name name="addGrowableCol" arity="2" clause_i="1" since=""/>
    <fsummary>See: <c>addGrowableCol/3</c></fsummary>
  </func>
  
  <func>
    <name name="addGrowableCol" arity="3" clause_i="1" since=""/>
    <fsummary>Specifies that column <c>idx</c> (starting from zero) should be grown if there is extra space available to the sizer. </fsummary>
    <desc><p>Specifies that column <c>idx</c> (starting from zero) should be grown if there is extra space available to the sizer. 
      </p><p>The <c>proportion</c> parameter has the same meaning as the stretch factor for the sizers (see <seeerl marker="wxBoxSizer"><c>wxBoxSizer</c></seeerl>) except that if all proportions are 0, then all columns are resized equally (instead of not being resized at all).
      </p><p>Notice that the column must not be already growable, if you need to change the proportion you must call <seemfa marker="#removeGrowableCol/2"><c>removeGrowableCol/2</c></seemfa> first and then make it growable (with a different proportion) again. You can use <c>IsColGrowable()</c> (not implemented in wx) to check whether a column is already growable. 
      </p></desc>
  </func>
  
  <func>
    <name name="addGrowableRow" arity="2" clause_i="1" since=""/>
    <fsummary>See: <c>addGrowableRow/3</c></fsummary>
  </func>
  
  <func>
    <name name="addGrowableRow" arity="3" clause_i="1" since=""/>
    <fsummary>Specifies that row idx (starting from zero) should be grown if there is extra space available to the sizer. </fsummary>
    <desc><p>Specifies that row idx (starting from zero) should be grown if there is extra space available to the sizer. 
      </p><p>This is identical to <seemfa marker="#addGrowableCol/3"><c>addGrowableCol/3</c></seemfa> except that it works with rows and not columns. 
      </p></desc>
  </func>
  
  <func>
    <name name="getFlexibleDirection" arity="1" clause_i="1" since=""/>
    <fsummary>Returns a ?wxOrientation value that specifies whether the sizer flexibly resizes its columns, rows, or both (default). </fsummary>
    <desc><p>Returns a ?wxOrientation value that specifies whether the sizer flexibly resizes its columns, rows, or both (default). 
      </p><p>Return: One of the following values: 
      </p><p>See: <seemfa marker="#setFlexibleDirection/2"><c>setFlexibleDirection/2</c></seemfa>
      </p></desc>
  </func>
  
  <func>
    <name name="getNonFlexibleGrowMode" arity="1" clause_i="1" since=""/>
    <fsummary>Returns the value that specifies how the sizer grows in the "non-flexible" direction if there is one. </fsummary>
    <desc><p>Returns the value that specifies how the sizer grows in the "non-flexible" direction if there is one. 
      </p><p>The behaviour of the elements in the flexible direction (i.e. both rows and columns by default, or rows only if <seemfa marker="#getFlexibleDirection/1"><c>getFlexibleDirection/1</c></seemfa> is <c>wxVERTICAL</c> or columns only if it is <c>wxHORIZONTAL</c>) is always governed by their proportion as specified in the call to <seemfa marker="#addGrowableRow/3"><c>addGrowableRow/3</c></seemfa> or <seemfa marker="#addGrowableCol/3"><c>addGrowableCol/3</c></seemfa>. What happens in the other direction depends on the value of returned by this function as described below.
      </p><p>Return: One of the following values: 
      </p><p>See: <seemfa marker="#setFlexibleDirection/2"><c>setFlexibleDirection/2</c></seemfa>, <seemfa marker="#setNonFlexibleGrowMode/2"><c>setNonFlexibleGrowMode/2</c></seemfa>
      </p></desc>
  </func>
  
  <func>
    <name name="removeGrowableCol" arity="2" clause_i="1" since=""/>
    <fsummary>Specifies that the <c>idx</c> column index is no longer growable. </fsummary>
    <desc><p>Specifies that the <c>idx</c> column index is no longer growable. 
      </p></desc>
  </func>
  
  <func>
    <name name="removeGrowableRow" arity="2" clause_i="1" since=""/>
    <fsummary>Specifies that the <c>idx</c> row index is no longer growable. </fsummary>
    <desc><p>Specifies that the <c>idx</c> row index is no longer growable. 
      </p></desc>
  </func>
  
  <func>
    <name name="setFlexibleDirection" arity="2" clause_i="1" since=""/>
    <fsummary>Specifies whether the sizer should flexibly resize its columns, rows, or both. </fsummary>
    <desc><p>Specifies whether the sizer should flexibly resize its columns, rows, or both. 
      </p><p>Argument <c>direction</c> can be <c>wxVERTICAL</c>, <c>wxHORIZONTAL</c> or <c>wxBOTH</c> (which is the default value). Any other value is ignored.
      </p><p>See <seemfa marker="#getFlexibleDirection/1"><c>getFlexibleDirection/1</c></seemfa> for the explanation of these values. Note that this method does not trigger relayout. 
      </p></desc>
  </func>
  
  <func>
    <name name="setNonFlexibleGrowMode" arity="2" clause_i="1" since=""/>
    <fsummary>Specifies how the sizer should grow in the non-flexible direction if there is one (so <c>setFlexibleDirection/2</c> must have been called previously). </fsummary>
    <desc><p>Specifies how the sizer should grow in the non-flexible direction if there is one (so <seemfa marker="#setFlexibleDirection/2"><c>setFlexibleDirection/2</c></seemfa> must have been called previously). 
      </p><p>Argument <c>mode</c> can be one of those documented in <seemfa marker="#getNonFlexibleGrowMode/1"><c>getNonFlexibleGrowMode/1</c></seemfa>, please see there for their explanation. Note that this method does not trigger relayout. 
      </p></desc>
  </func>
  
  <func>
    <name name="destroy" arity="1" clause_i="1" since=""/>
    <fsummary>Destructor</fsummary>
    <desc><p>Destroys the object.</p></desc>
  </func>
  </funcs>
</erlref>
