<?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>wxAuiManager</title>
</header>
<module>wxAuiManager</module>
<modulesummary>Functions for wxAuiManager class</modulesummary>
<description><p><seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> is the central class of the wxAUI class framework.
      </p><p><seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> manages the panes associated with it for a particular <seeerl marker="wxFrame"><c>wxFrame</c></seeerl>, using a pane's <seeerl marker="wxAuiPaneInfo"><c>wxAuiPaneInfo</c></seeerl> information to determine each pane's docking and floating behaviour.
      </p><p><seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> uses wxWidgets' sizer mechanism to plan the layout of each frame. It uses a replaceable dock art class to do all drawing, so all drawing is localized in one area, and may be customized depending on an application's specific needs.
      </p><p><seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> works as follows: the programmer adds panes to the class, or makes changes to existing pane properties (dock position, floating state, show state, etc.). To apply these changes, <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl>'s <seemfa marker="#update/1"><c>update/1</c></seemfa> function is called. This batch processing can be used to avoid flicker, by modifying more than one pane at a time, and then "committing" all of the changes at once by calling <seemfa marker="#update/1"><c>update/1</c></seemfa>.
      </p><p>Panes can be added quite easily:
      </p><p>Later on, the positions can be modified easily. The following will float an existing pane in a tool window:
      </p><p>Layers, Rows and Directions, Positions</p> <p>Inside wxAUI, the docking layout is figured out by checking several pane parameters. Four of these are important for determining where a pane will end up:
      </p> <p>Styles</p><p>This class supports the following styles:
      </p><p>See: <url href="https://docs.wxwidgets.org/3.1/overview_aui.html#overview_aui">Overview aui</url>, <seeerl marker="wxAuiNotebook"><c>wxAuiNotebook</c></seeerl>, <seeerl marker="wxAuiDockArt"><c>wxAuiDockArt</c></seeerl>, <seeerl marker="wxAuiPaneInfo"><c>wxAuiPaneInfo</c></seeerl>
      </p>
  <p>This class is derived (and can use functions) from: 
    <seeerl marker="wxEvtHandler"><c>wxEvtHandler</c></seeerl></p>
  
  <p>wxWidgets docs: <url href="https://docs.wxwidgets.org/3.1/classwx_aui_manager.html">wxAuiManager</url></p>
  </description><section><title>Events</title><p>Event types emitted from this class: <seeerl marker="wxAuiManagerEvent"><c>aui_pane_button</c></seeerl>, <seeerl marker="wxAuiManagerEvent"><c>aui_pane_close</c></seeerl>, <seeerl marker="wxAuiManagerEvent"><c>aui_pane_maximize</c></seeerl>, <seeerl marker="wxAuiManagerEvent"><c>aui_pane_restore</c></seeerl>, <seeerl marker="wxAuiManagerEvent"><c>aui_pane_activated</c></seeerl>, <seeerl marker="wxAuiManagerEvent"><c>aui_render</c></seeerl></p></section>
<datatypes><datatype><name name="wxAuiManager"/></datatype></datatypes>

<funcs>
  <func>
    <name name="new" arity="0" clause_i="1" since=""/>
    <fsummary>See: <c>new/1</c></fsummary>
  </func>
  
  <func>
    <name name="new" arity="1" clause_i="1" since=""/>
    <fsummary>Constructor. </fsummary>
    <desc><p>Constructor. 
      </p></desc>
  </func>
  
  <func>
    <name name="destroy" arity="1" clause_i="1" since=""/>
    <fsummary>Dtor. </fsummary>
    <desc><p>Dtor. 
      </p></desc>
  </func>
  
  <func>
    <name name="addPane" arity="2" clause_i="1" since=""/>
    <fsummary>See: <c>addPane/3</c></fsummary>
  </func>
  
  <func>
    <name name="addPane" arity="3" clause_i="1" since=""/>
  
    <name name="addPane" arity="3" clause_i="2" since=""/>
    <fsummary><c>addPane/4</c> tells the frame manager to start managing a child window. </fsummary>
    <desc><p><seemfa marker="#addPane/4"><c>addPane/4</c></seemfa> tells the frame manager to start managing a child window. 
      </p><p>There are several versions of this function. The first version allows the full spectrum of pane parameter possibilities. The second version is used for simpler user interfaces which do not require as much configuration. The last version allows a drop position to be specified, which will determine where the pane will be added. 
      </p></desc>
  </func>
  
  <func>
    <name name="addPane" arity="4" clause_i="1" since=""/>
    <fsummary/>
    <desc/>
  </func>
  
  <func>
    <name name="detachPane" arity="2" clause_i="1" since=""/>
    <fsummary>Tells the <c>wxAuiManager</c> to stop managing the pane specified by window. </fsummary>
    <desc><p>Tells the <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> to stop managing the pane specified by window. 
      </p><p>The window, if in a floated frame, is reparented to the frame managed by <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl>. 
      </p></desc>
  </func>
  
  <func>
    <name name="getAllPanes" arity="1" clause_i="1" since=""/>
    <fsummary>Returns an array of all panes managed by the frame manager. </fsummary>
    <desc><p>Returns an array of all panes managed by the frame manager. 
      </p></desc>
  </func>
  
  <func>
    <name name="getArtProvider" arity="1" clause_i="1" since=""/>
    <fsummary>Returns the current art provider being used. </fsummary>
    <desc><p>Returns the current art provider being used. 
      </p><p>See: <seeerl marker="wxAuiDockArt"><c>wxAuiDockArt</c></seeerl>
      </p></desc>
  </func>
  
  <func>
    <name name="getDockSizeConstraint" arity="1" clause_i="1" since=""/>
    <fsummary>Returns the current dock constraint values. </fsummary>
    <desc><p>Returns the current dock constraint values. 
      </p><p>See <seemfa marker="#setDockSizeConstraint/3"><c>setDockSizeConstraint/3</c></seemfa> for more information. 
      </p></desc>
  </func>
  
  <func>
    <name name="getFlags" arity="1" clause_i="1" since=""/>
    <fsummary>Returns the current ?wxAuiManagerOption's flags. </fsummary>
    <desc><p>Returns the current ?wxAuiManagerOption's flags. 
      </p></desc>
  </func>
  
  <func>
    <name name="getManagedWindow" arity="1" clause_i="1" since=""/>
    <fsummary>Returns the frame currently being managed by <c>wxAuiManager</c>. </fsummary>
    <desc><p>Returns the frame currently being managed by <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl>. 
      </p></desc>
  </func>
  
  <func>
    <name name="getManager" arity="1" clause_i="1" since=""/>
    <fsummary>Calling this method will return the <c>wxAuiManager</c> for a given window. </fsummary>
    <desc><p>Calling this method will return the <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> for a given window. 
      </p><p>The <c>window</c> parameter should specify any child window or sub-child window of the frame or window managed by <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl>.
      </p><p>The <c>window</c> parameter need not be managed by the manager itself, nor does it even need to be a child or sub-child of a managed window. It must however be inside the window hierarchy underneath the managed window. 
      </p></desc>
  </func>
  
  <func>
    <name name="getPane" arity="2" clause_i="1" since=""/>
  
    <name name="getPane" arity="2" clause_i="2" since=""/>
    <fsummary><c>getPane/2</c> is used to lookup a <c>wxAuiPaneInfo</c> object either by window pointer or by pane name, which acts as a unique id for a window pane. </fsummary>
    <desc><p><seemfa marker="#getPane/2"><c>getPane/2</c></seemfa> is used to lookup a <seeerl marker="wxAuiPaneInfo"><c>wxAuiPaneInfo</c></seeerl> object either by window pointer or by pane name, which acts as a unique id for a window pane. 
      </p><p>The returned <seeerl marker="wxAuiPaneInfo"><c>wxAuiPaneInfo</c></seeerl> object may then be modified to change a pane's look, state or position. After one or more modifications to <seeerl marker="wxAuiPaneInfo"><c>wxAuiPaneInfo</c></seeerl>, <seemfa marker="#update/1"><c>update/1</c></seemfa> should be called to commit the changes to the user interface. If the lookup failed (meaning the pane could not be found in the manager), a call to the returned <seeerl marker="wxAuiPaneInfo"><c>wxAuiPaneInfo</c></seeerl>'s IsOk() method will return false. 
      </p></desc>
  </func>
  
  <func>
    <name name="hideHint" arity="1" clause_i="1" since=""/>
    <fsummary><c>hideHint/1</c> hides any docking hint that may be visible. </fsummary>
    <desc><p><seemfa marker="#hideHint/1"><c>hideHint/1</c></seemfa> hides any docking hint that may be visible. 
      </p></desc>
  </func>
  
  <func>
    <name name="insertPane" arity="3" clause_i="1" since=""/>
    <fsummary>See: <c>insertPane/4</c></fsummary>
  </func>
  
  <func>
    <name name="insertPane" arity="4" clause_i="1" since=""/>
    <fsummary>This method is used to insert either a previously unmanaged pane window into the frame manager, or to insert a currently managed pane somewhere else. </fsummary>
    <desc><p>This method is used to insert either a previously unmanaged pane window into the frame manager, or to insert a currently managed pane somewhere else. 
      </p><p><seemfa marker="#insertPane/4"><c>insertPane/4</c></seemfa> will push all panes, rows, or docks aside and insert the window into the position specified by <c>insert_location</c>.
      </p><p>Because <c>insert_location</c> can specify either a pane, dock row, or dock layer, the <c>insert_level</c> parameter is used to disambiguate this. The parameter <c>insert_level</c> can take a value of wxAUI_INSERT_PANE, wxAUI_INSERT_ROW or wxAUI_INSERT_DOCK. 
      </p></desc>
  </func>
  
  <func>
    <name name="loadPaneInfo" arity="3" clause_i="1" since=""/>
    <fsummary><c>loadPaneInfo/3</c> is similar to LoadPerspective, with the exception that it only loads information about a single pane. </fsummary>
    <desc><p><seemfa marker="#loadPaneInfo/3"><c>loadPaneInfo/3</c></seemfa> is similar to LoadPerspective, with the exception that it only loads information about a single pane. 
      </p><p>This method writes the serialized data into the passed pane. Pointers to UI elements are not modified.
      </p><p>Note: This operation also changes the name in the pane information!
      </p><p>See: <seemfa marker="#loadPerspective/3"><c>loadPerspective/3</c></seemfa>
      </p><p>See: <seemfa marker="#savePaneInfo/2"><c>savePaneInfo/2</c></seemfa>
      </p><p>See: <seemfa marker="#savePerspective/1"><c>savePerspective/1</c></seemfa>
      </p></desc>
  </func>
  
  <func>
    <name name="loadPerspective" arity="2" clause_i="1" since=""/>
    <fsummary>See: <c>loadPerspective/3</c></fsummary>
  </func>
  
  <func>
    <name name="loadPerspective" arity="3" clause_i="1" since=""/>
    <fsummary>Loads a saved perspective. </fsummary>
    <desc><p>Loads a saved perspective. 
      </p><p>A perspective is the layout state of an AUI managed window.
      </p><p>All currently existing panes that have an object in "perspective" with the same name ("equivalent") will receive the layout parameters of the object in "perspective". Existing panes that do not have an equivalent in "perspective" remain unchanged, objects in "perspective" having no equivalent in the manager are ignored.
      </p><p>See: <seemfa marker="#loadPaneInfo/3"><c>loadPaneInfo/3</c></seemfa>
      </p><p>See: <seemfa marker="#loadPerspective/3"><c>loadPerspective/3</c></seemfa>
      </p><p>See: <seemfa marker="#savePerspective/1"><c>savePerspective/1</c></seemfa>
      </p></desc>
  </func>
  
  <func>
    <name name="savePaneInfo" arity="2" clause_i="1" since=""/>
    <fsummary><c>savePaneInfo/2</c> is similar to SavePerspective, with the exception that it only saves information about a single pane. </fsummary>
    <desc><p><seemfa marker="#savePaneInfo/2"><c>savePaneInfo/2</c></seemfa> is similar to SavePerspective, with the exception that it only saves information about a single pane. 
      </p><p>Return: The serialized layout parameters of the pane are returned within the string. Information about the pointers to UI elements stored in the pane are not serialized.
      </p><p>See: <seemfa marker="#loadPaneInfo/3"><c>loadPaneInfo/3</c></seemfa>
      </p><p>See: <seemfa marker="#loadPerspective/3"><c>loadPerspective/3</c></seemfa>
      </p><p>See: <seemfa marker="#savePerspective/1"><c>savePerspective/1</c></seemfa>
      </p></desc>
  </func>
  
  <func>
    <name name="savePerspective" arity="1" clause_i="1" since=""/>
    <fsummary>Saves the entire user interface layout into an encoded <c>wxString</c> (not implemented in wx), which can then be stored by the application (probably using wxConfig). </fsummary>
    <desc><p>Saves the entire user interface layout into an encoded <c>wxString</c> (not implemented in wx), which can then be stored by the application (probably using wxConfig). 
      </p><p>See: <seemfa marker="#loadPerspective/3"><c>loadPerspective/3</c></seemfa>
      </p><p>See: <seemfa marker="#loadPaneInfo/3"><c>loadPaneInfo/3</c></seemfa>
      </p><p>See: <seemfa marker="#savePaneInfo/2"><c>savePaneInfo/2</c></seemfa>
      </p></desc>
  </func>
  
  <func>
    <name name="setArtProvider" arity="2" clause_i="1" since=""/>
    <fsummary>Instructs <c>wxAuiManager</c> to use art provider specified by parameter <c>art_provider</c> for all drawing calls. </fsummary>
    <desc><p>Instructs <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> to use art provider specified by parameter <c>art_provider</c> for all drawing calls. 
      </p><p>This allows pluggable look-and-feel features. The previous art provider object, if any, will be deleted by <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl>.
      </p><p>See: <seeerl marker="wxAuiDockArt"><c>wxAuiDockArt</c></seeerl>
      </p></desc>
  </func>
  
  <func>
    <name name="setDockSizeConstraint" arity="3" clause_i="1" since=""/>
    <fsummary>When a user creates a new dock by dragging a window into a docked position, often times the large size of the window will create a dock that is unwieldy large. </fsummary>
    <desc><p>When a user creates a new dock by dragging a window into a docked position, often times the large size of the window will create a dock that is unwieldy large. 
      </p><p><seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl> by default limits the size of any new dock to 1/3 of the window size. For horizontal docks, this would be 1/3 of the window height. For vertical docks, 1/3 of the width.
      </p><p>Calling this function will adjust this constraint value. The numbers must be between 0.0 and 1.0. For instance, calling SetDockSizeContraint with 0.5, 0.5 will cause new docks to be limited to half of the size of the entire managed window. 
      </p></desc>
  </func>
  
  <func>
    <name name="setFlags" arity="2" clause_i="1" since=""/>
    <fsummary>This method is used to specify ?wxAuiManagerOption's flags. </fsummary>
    <desc><p>This method is used to specify ?wxAuiManagerOption's flags. 
      </p><p><c>flags</c> specifies options which allow the frame management behaviour to be modified. 
      </p></desc>
  </func>
  
  <func>
    <name name="setManagedWindow" arity="2" clause_i="1" since=""/>
    <fsummary>Called to specify the frame or window which is to be managed by <c>wxAuiManager</c>. </fsummary>
    <desc><p>Called to specify the frame or window which is to be managed by <seeerl marker="wxAuiManager"><c>wxAuiManager</c></seeerl>. 
      </p><p>Frame management is not restricted to just frames. Child windows or custom controls are also allowed. 
      </p></desc>
  </func>
  
  <func>
    <name name="showHint" arity="2" clause_i="1" since=""/>
    <fsummary>This function is used by controls to explicitly show a hint window at the specified rectangle. </fsummary>
    <desc><p>This function is used by controls to explicitly show a hint window at the specified rectangle. 
      </p><p>It is rarely called, and is mostly used by controls implementing custom pane drag/drop behaviour. The specified rectangle should be in screen coordinates. 
      </p></desc>
  </func>
  
  <func>
    <name name="unInit" arity="1" clause_i="1" since=""/>
    <fsummary>Dissociate the managed window from the manager. </fsummary>
    <desc><p>Dissociate the managed window from the manager. 
      </p><p>This function may be called before the managed frame or window is destroyed, but, since wxWidgets 3.1.4, it's unnecessary to call it explicitly, as it will be called automatically when this window is destroyed, as well as when the manager itself is. 
      </p></desc>
  </func>
  
  <func>
    <name name="update" arity="1" clause_i="1" since=""/>
    <fsummary>This method is called after any number of changes are made to any of the managed panes. </fsummary>
    <desc><p>This method is called after any number of changes are made to any of the managed panes. 
      </p><p><seemfa marker="#update/1"><c>update/1</c></seemfa> must be invoked after <seemfa marker="#addPane/4"><c>addPane/4</c></seemfa> or <seemfa marker="#insertPane/4"><c>insertPane/4</c></seemfa> are called in order to "realize" or "commit" the changes. In addition, any number of changes may be made to <seeerl marker="wxAuiPaneInfo"><c>wxAuiPaneInfo</c></seeerl> structures (retrieved with <seemfa marker="#getPane/2"><c>getPane/2</c></seemfa>), but to realize the changes, <seemfa marker="#update/1"><c>update/1</c></seemfa> must be called. This construction allows pane flicker to be avoided by updating the whole layout at one time. 
      </p></desc>
  </func>
  </funcs>
</erlref>
