.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2018 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc

.. currentmodule:: wx.lib.expando

.. highlight:: python



.. _wx.lib.expando.ExpandoTextCtrl:

==========================================================================================================================================
|phoenix_title|  **wx.lib.expando.ExpandoTextCtrl**
==========================================================================================================================================

The ExpandoTextCtrl is a multi-line wx.TextCtrl that will
adjust its height on the fly as needed to accomodate the number of
lines needed to display the current content of the control.  It is
assumed that the width of the control will be a fixed value and
that only the height will be adjusted automatically.  If the
control is used in a sizer then the width should be set as part of
the initial or min size of the control.

When the control resizes itself it will attempt to also make
necessary adjustments in the sizer hierarchy it is a member of (if
any) but if that is not suffiecient then the programmer can catch
the EVT_ETC_LAYOUT_NEEDED event in the container and make any
other layout adjustments that may be needed.



|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>ExpandoTextCtrl</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.lib.expando.ExpandoTextCtrl_inheritance.png" alt="Inheritance diagram of ExpandoTextCtrl" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.lib.expando.ExpandoTextCtrl.html" title="The ExpandoTextCtrl is a multi-line wx.TextCtrl that will" alt="" coords="54,469,293,499"/> <area shape="rect" id="node2" href="wx.TextCtrl.html" title="A text control allows text to be displayed and edited." alt="" coords="124,392,223,421"/> <area shape="rect" id="node3" href="wx.Control.html" title="This is the base class for a control or 'widget'." alt="" coords="64,315,157,344"/> <area shape="rect" id="node4" href="wx.TextEntry.html" title="Common base class for single line text entry fields." alt="" coords="181,315,291,344"/> <area shape="rect" id="node5" href="wx.Window.html" title="wx.Window  is the base class for all windows and represents any visible object on screen." alt="" coords="62,237,159,267"/> <area shape="rect" id="node6" href="wx.WindowBase.html" title="wx.WindowBase" alt="" coords="45,160,176,189"/> <area shape="rect" id="node7" href="wx.EvtHandler.html" title="A class that can handle events from the windowing system." alt="" coords="51,83,170,112"/> <area shape="rect" id="node8" href="wx.Object.html" title="This is the root class of many of the wxWidgets classes." alt="" coords="5,5,93,35"/> <area shape="rect" id="node9" href="wx.Trackable.html" title="Add-on base class for a trackable object." alt="" coords="118,5,229,35"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:class:`wx.lib.agw.aui.auibook.TabTextCtrl`, :class:`wx.lib.agw.customtreectrl.TreeTextCtrl`, :class:`wx.lib.agw.ultimatelistctrl.UltimateListTextCtrl`

|


|super_classes| Known Superclasses
==================================

:class:`wx.TextCtrl`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.lib.expando.ExpandoTextCtrl.__init__`                                 Default class constructor.
:meth:`~wx.lib.expando.ExpandoTextCtrl.AppendText`                               Appends the text to the end of the text control.
:meth:`~wx.lib.expando.ExpandoTextCtrl.GetMaxHeight`                             Returns the maximum height that the control will expand to on its own.
:meth:`~wx.lib.expando.ExpandoTextCtrl.GetNumberOfLines`                         GetNumberOfLines() -> int
:meth:`~wx.lib.expando.ExpandoTextCtrl.OnSize`                                   Handles the ``wx.EVT_SIZE`` event for :class:`ExpandoTextCtrl`.
:meth:`~wx.lib.expando.ExpandoTextCtrl.OnTextChanged`                            Handles the ``wx.EVT_TEXT`` event for :class:`ExpandoTextCtrl`.
:meth:`~wx.lib.expando.ExpandoTextCtrl.SetFont`                                  Sets the font for the :class:`ExpandoTextCtrl`.
:meth:`~wx.lib.expando.ExpandoTextCtrl.SetMaxHeight`                             Sets the maximum height that the control will expand to on its
:meth:`~wx.lib.expando.ExpandoTextCtrl.WriteText`                                Writes the text into the text control at the current insertion position.
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: ExpandoTextCtrl(wx.TextCtrl)

   The ExpandoTextCtrl is a multi-line wx.TextCtrl that will
   adjust its height on the fly as needed to accomodate the number of
   lines needed to display the current content of the control.  It is
   assumed that the width of the control will be a fixed value and
   that only the height will be adjusted automatically.  If the
   control is used in a sizer then the width should be set as part of
   the initial or min size of the control.
   
   When the control resizes itself it will attempt to also make
   necessary adjustments in the sizer hierarchy it is a member of (if
   any) but if that is not suffiecient then the programmer can catch
   the EVT_ETC_LAYOUT_NEEDED event in the container and make any
   other layout adjustments that may be needed.

   .. method:: __init__(self, parent, id=-1, value="", pos=wx.DefaultPosition,  size=wx.DefaultSize, style=0, validator=wx.DefaultValidator, name="expando")

      Default class constructor.
      
      :param `parent`: parent window, must not be ``None``;
      :param integer `id`: window identifier. A value of -1 indicates a default value;
      :param string `value`: the control text label;
      :param `pos`: the control position. A value of (-1, -1) indicates a default position,
       chosen by either the windowing system or wxPython, depending on platform;
      :param `size`: the control size. A value of (-1, -1) indicates a default size,
       chosen by either the windowing system or wxPython, depending on platform;
      :param integer `style`: the underlying :class:`wx.Control` style;
      :param wx.Validator `validator`: the window validator;
      :param string `name`: the widget name.
      
      :type parent: :class:`wx.Window`
      :type pos: tuple or :class:`wx.Point`
      :type size: tuple or :class:`wx.Size`


   .. method:: AppendText(self, text)

      Appends the text to the end of the text control.
      
      :param string `text`: text to write to the text control.
      
      .. seealso:: :meth:`WriteText`


   .. method:: GetMaxHeight(self)

      Returns the maximum height that the control will expand to on its own.
      
      :rtype: int


   .. method:: GetNumberOfLines(self)

      GetNumberOfLines() -> int
      
      Returns the number of lines in the text control buffer.


   .. method:: OnSize(self, evt)

      Handles the ``wx.EVT_SIZE`` event for :class:`ExpandoTextCtrl`.
      
      :param `event`: a :class:`wx.SizeEvent` event to be processed.


   .. method:: OnTextChanged(self, evt)

      Handles the ``wx.EVT_TEXT`` event for :class:`ExpandoTextCtrl`.
      
      :param `event`: a :class:`CommandEvent` event to be processed.


   .. method:: SetFont(self, font)

      Sets the font for the :class:`ExpandoTextCtrl`.
      
      :param wx.Font font: font to associate with the :class:`ExpandoTextCtrl`, pass
       ``NullFont`` to reset to the default font.
      
      :rtype: bool
      :returns: ``True`` if the font was really changed, ``False`` if it was already
       set to this font and nothing was done.


   .. method:: SetMaxHeight(self, h)

      Sets the maximum height that the control will expand to on its
      own, and adjusts it down if needed.
      
      :param integer `h`: the maximum control height, in pixels.


   .. method:: WriteText(self, text)

      Writes the text into the text control at the current insertion position.
      
      :param string `text`: text to write to the text control.
      
      .. note::
      
         Newlines in the text string are the only control characters allowed, and they
         will cause appropriate line breaks. See :meth:`AppendText` for more convenient
         ways of writing to the window. After the write operation, the insertion point
         will be at the end of the inserted text, so subsequent write operations will
         be appended. To append text after the user may have interacted with the control,
         call :meth:`TextCtrl.SetInsertionPointEnd` before writing.