<?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>wxSizerItem</title>
</header>
<module>wxSizerItem</module>
<modulesummary>Functions for wxSizerItem class</modulesummary>
<description><p>The <seeerl marker="wxSizerItem"><c>wxSizerItem</c></seeerl> class is used to track the position, size and other attributes of each item managed by a <seeerl marker="wxSizer"><c>wxSizer</c></seeerl>.
      </p><p>It is not usually necessary to use this class because the sizer elements can also be identified by their positions or window or sizer pointers but sometimes it may be more convenient to use it directly.
      </p>
  <p>wxWidgets docs: <url href="https://docs.wxwidgets.org/3.1/classwx_sizer_item.html">wxSizerItem</url></p>
  </description>
<datatypes><datatype><name name="wxSizerItem"/></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=""/>
  
    <name name="new" arity="2" clause_i="2" since=""/>
  
    <name name="new" arity="2" clause_i="3" since=""/>
    <fsummary/>
    <desc/>
  </func>
  
  <func>
    <name name="new" arity="3" clause_i="1" since=""/>
    <fsummary>Construct a sizer item for tracking a spacer. </fsummary>
    <desc><p>Construct a sizer item for tracking a spacer. 
      </p></desc>
  </func>
  
  <func>
    <name name="destroy" arity="1" clause_i="1" since=""/>
    <fsummary>Deletes the user data and subsizer, if any. </fsummary>
    <desc><p>Deletes the user data and subsizer, if any. 
      </p></desc>
  </func>
  
  <func>
    <name name="calcMin" arity="1" clause_i="1" since=""/>
    <fsummary>Calculates the minimum desired size for the item, including any space needed by borders. </fsummary>
    <desc><p>Calculates the minimum desired size for the item, including any space needed by borders. 
      </p></desc>
  </func>
  
  <func>
    <name name="deleteWindows" arity="1" clause_i="1" since=""/>
    <fsummary>Destroy the window or the windows in a subsizer, depending on the type of item. </fsummary>
    <desc><p>Destroy the window or the windows in a subsizer, depending on the type of item. 
      </p></desc>
  </func>
  
  <func>
    <name name="detachSizer" arity="1" clause_i="1" since=""/>
    <fsummary>Enable deleting the SizerItem without destroying the contained sizer. </fsummary>
    <desc><p>Enable deleting the SizerItem without destroying the contained sizer. 
      </p></desc>
  </func>
  
  <func>
    <name name="getBorder" arity="1" clause_i="1" since=""/>
    <fsummary>Return the border attribute. </fsummary>
    <desc><p>Return the border attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="getFlag" arity="1" clause_i="1" since=""/>
    <fsummary>Return the flags attribute. </fsummary>
    <desc><p>Return the flags attribute. 
      </p><p>See <c>wxSizer flags list</c> (not implemented in wx) for details. 
      </p></desc>
  </func>
  
  <func>
    <name name="getMinSize" arity="1" clause_i="1" since=""/>
    <fsummary>Get the minimum size needed for the item. </fsummary>
    <desc><p>Get the minimum size needed for the item. 
      </p></desc>
  </func>
  
  <func>
    <name name="getPosition" arity="1" clause_i="1" since=""/>
    <fsummary>What is the current position of the item, as set in the last Layout. </fsummary>
    <desc><p>What is the current position of the item, as set in the last Layout. 
      </p></desc>
  </func>
  
  <func>
    <name name="getProportion" arity="1" clause_i="1" since=""/>
    <fsummary>Get the proportion item attribute. </fsummary>
    <desc><p>Get the proportion item attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="getRatio" arity="1" clause_i="1" since=""/>
    <fsummary>Get the ratio item attribute. </fsummary>
    <desc><p>Get the ratio item attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="getRect" arity="1" clause_i="1" since=""/>
    <fsummary>Get the rectangle of the item on the parent window, excluding borders. </fsummary>
    <desc><p>Get the rectangle of the item on the parent window, excluding borders. 
      </p></desc>
  </func>
  
  <func>
    <name name="getSize" arity="1" clause_i="1" since=""/>
    <fsummary>Get the current size of the item, as set in the last Layout. </fsummary>
    <desc><p>Get the current size of the item, as set in the last Layout. 
      </p></desc>
  </func>
  
  <func>
    <name name="getSizer" arity="1" clause_i="1" since=""/>
    <fsummary>If this item is tracking a sizer, return it. </fsummary>
    <desc><p>If this item is tracking a sizer, return it. 
      </p><p>NULL otherwise. 
      </p></desc>
  </func>
  
  <func>
    <name name="getSpacer" arity="1" clause_i="1" since=""/>
    <fsummary>If this item is tracking a spacer, return its size. </fsummary>
    <desc><p>If this item is tracking a spacer, return its size. 
      </p></desc>
  </func>
  
  <func>
    <name name="getUserData" arity="1" clause_i="1" since=""/>
    <fsummary>Get the userData item attribute. </fsummary>
    <desc><p>Get the userData item attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="getWindow" arity="1" clause_i="1" since=""/>
    <fsummary>If this item is tracking a window then return it. </fsummary>
    <desc><p>If this item is tracking a window then return it. 
      </p><p>NULL otherwise. 
      </p></desc>
  </func>
  
  <func>
    <name name="isSizer" arity="1" clause_i="1" since=""/>
    <fsummary>Is this item a sizer? </fsummary>
    <desc><p>Is this item a sizer? 
      </p></desc>
  </func>
  
  <func>
    <name name="isShown" arity="1" clause_i="1" since=""/>
    <fsummary>Returns true if this item is a window or a spacer and it is shown or if this item is a sizer and not all of its elements are hidden. </fsummary>
    <desc><p>Returns true if this item is a window or a spacer and it is shown or if this item is a sizer and not all of its elements are hidden. 
      </p><p>In other words, for sizer items, all of the child elements must be hidden for the sizer itself to be considered hidden.
      </p><p>As an exception, if the <c>wxRESERVE_SPACE_EVEN_IF_HIDDEN</c> flag was used for this sizer item, then <seemfa marker="#isShown/1"><c>isShown/1</c></seemfa> always returns true for it (see <c>wxSizerFlags::ReserveSpaceEvenIfHidden()</c> (not implemented in wx)). 
      </p></desc>
  </func>
  
  <func>
    <name name="isSpacer" arity="1" clause_i="1" since=""/>
    <fsummary>Is this item a spacer? </fsummary>
    <desc><p>Is this item a spacer? 
      </p></desc>
  </func>
  
  <func>
    <name name="isWindow" arity="1" clause_i="1" since=""/>
    <fsummary>Is this item a window? </fsummary>
    <desc><p>Is this item a window? 
      </p></desc>
  </func>
  
  <func>
    <name name="setBorder" arity="2" clause_i="1" since=""/>
    <fsummary>Set the border item attribute. </fsummary>
    <desc><p>Set the border item attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="setDimension" arity="3" clause_i="1" since=""/>
    <fsummary>Set the position and size of the space allocated to the sizer, and adjust the position and size of the item to be within that space taking alignment and borders into account. </fsummary>
    <desc><p>Set the position and size of the space allocated to the sizer, and adjust the position and size of the item to be within that space taking alignment and borders into account. 
      </p></desc>
  </func>
  
  <func>
    <name name="setFlag" arity="2" clause_i="1" since=""/>
    <fsummary>Set the flag item attribute. </fsummary>
    <desc><p>Set the flag item attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="setInitSize" arity="3" clause_i="1" since=""/>
    <fsummary>Sets the minimum size to be allocated for this item. </fsummary>
    <desc><p>Sets the minimum size to be allocated for this item. 
      </p><p>This is identical to <seemfa marker="#setMinSize/3"><c>setMinSize/3</c></seemfa>, prefer to use the other function, as its name is more clear. 
      </p></desc>
  </func>
  
  <func>
    <name name="setMinSize" arity="2" clause_i="1" since=""/>
    <fsummary>Sets the minimum size to be allocated for this item. </fsummary>
    <desc><p>Sets the minimum size to be allocated for this item. 
      </p><p>If this item is a window, the <c>size</c> is also passed to <seemfa marker="wxWindow#setMinSize/2"><c>wxWindow:setMinSize/2</c></seemfa>. 
      </p></desc>
  </func>
  
  <func>
    <name name="setMinSize" arity="3" clause_i="1" since=""/>
    <fsummary>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </fsummary>
    <desc><p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 
      </p></desc>
  </func>
  
  <func>
    <name name="setProportion" arity="2" clause_i="1" since=""/>
    <fsummary>Set the proportion item attribute. </fsummary>
    <desc><p>Set the proportion item attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="setRatio" arity="2" clause_i="1" since=""/>
  
    <name name="setRatio" arity="2" clause_i="2" since=""/>
    <fsummary/>
    <desc/>
  </func>
  
  <func>
    <name name="setRatio" arity="3" clause_i="1" since=""/>
    <fsummary>Set the ratio item attribute. </fsummary>
    <desc><p>Set the ratio item attribute. 
      </p></desc>
  </func>
  
  <func>
    <name name="assignSizer" arity="2" clause_i="1" since=""/>
    <fsummary>Set the sizer tracked by this item. </fsummary>
    <desc><p>Set the sizer tracked by this item. 
      </p><p>Old sizer, if any, is deleted. 
      </p></desc>
  </func>
  
  <func>
    <name name="assignSpacer" arity="2" clause_i="1" since=""/>
    <fsummary>Set the size of the spacer tracked by this item. </fsummary>
    <desc><p>Set the size of the spacer tracked by this item. 
      </p><p>Old spacer, if any, is deleted. 
      </p></desc>
  </func>
  
  <func>
    <name name="assignSpacer" arity="3" clause_i="1" since=""/>
    <fsummary/>
    <desc/>
  </func>
  
  <func>
    <name name="assignWindow" arity="2" clause_i="1" since=""/>
    <fsummary>Set the window to be tracked by this item. </fsummary>
    <desc><p>Set the window to be tracked by this item. 
      </p><p>Note: This is a low-level method which is dangerous if used incorrectly, avoid using it if possible, i.e. if higher level methods such as <seemfa marker="wxSizer#replace/4"><c>wxSizer:replace/4</c></seemfa> can be used instead.
      </p><p> If the sizer item previously contained a window, it is dissociated from the sizer containing this sizer item (if any), but this object doesn't have the pointer to the containing sizer and so it's the caller's responsibility to call <seemfa marker="wxWindow#setContainingSizer/2"><c>wxWindow:setContainingSizer/2</c></seemfa> on <c>window</c>. Failure to do this can result in memory corruption when the window is destroyed later, so it is crucial to not forget to do it.
      </p><p>Also note that the previously contained window is <c>not</c> deleted, so it's also the callers responsibility to do it, if necessary. 
      </p></desc>
  </func>
  
  <func>
    <name name="show" arity="2" clause_i="1" since=""/>
    <fsummary>Set the show item attribute, which sizers use to determine if the item is to be made part of the layout or not. </fsummary>
    <desc><p>Set the show item attribute, which sizers use to determine if the item is to be made part of the layout or not. 
      </p><p>If the item is tracking a window then it is shown or hidden as needed. 
      </p></desc>
  </func>
  </funcs>
</erlref>
