.. 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



.. _wx.richtext.RichTextCompositeObject:

==========================================================================================================================================
|phoenix_title|  **wx.richtext.RichTextCompositeObject**
==========================================================================================================================================

Objects of this class can contain other objects.          







         



.. seealso:: :ref:`wx.richtext.RichTextObject`, :ref:`wx.richtext.RichTextBuffer`, :ref:`wx.richtext.RichTextCtrl`    







|

|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>RichTextCompositeObject</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.richtext.RichTextCompositeObject_inheritance.png" alt="Inheritance diagram of RichTextCompositeObject" 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.richtext.RichTextCompositeObject.html" title="Objects of this class can contain other objects." alt="" coords="5,160,279,189"/> <area shape="rect" id="node2" href="wx.richtext.RichTextObject.html" title="This is the base for drawable rich text objects." alt="" coords="41,83,243,112"/> <area shape="rect" id="node3" href="wx.Object.html" title="This is the root class of many of the wxWidgets classes." alt="" coords="98,5,186,35"/> </map> 
   </p>
   </div>

|


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

:ref:`wx.richtext.RichTextParagraph`, :ref:`wx.richtext.RichTextParagraphLayoutBox`

|


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

================================================================================ ================================================================================
:meth:`~wx.richtext.RichTextCompositeObject.__init__`                            
:meth:`~wx.richtext.RichTextCompositeObject.AppendChild`                         Appends a child, returning the position.
:meth:`~wx.richtext.RichTextCompositeObject.CalculateRange`                      Calculates the range of the object.
:meth:`~wx.richtext.RichTextCompositeObject.Copy`                                
:meth:`~wx.richtext.RichTextCompositeObject.Defragment`                          Recursively merges all pieces that can be merged.
:meth:`~wx.richtext.RichTextCompositeObject.DeleteChildren`                      Deletes all the children.
:meth:`~wx.richtext.RichTextCompositeObject.DeleteRange`                         Deletes the given range.
:meth:`~wx.richtext.RichTextCompositeObject.FindPosition`                        Finds the absolute position and row height for the given character position.
:meth:`~wx.richtext.RichTextCompositeObject.GetChild`                            Returns the nth child.
:meth:`~wx.richtext.RichTextCompositeObject.GetChildAtPosition`                  Returns the child object at the given character position.
:meth:`~wx.richtext.RichTextCompositeObject.GetChildCount`                       Returns the number of children.
:meth:`~wx.richtext.RichTextCompositeObject.GetChildren`                         Returns the children.
:meth:`~wx.richtext.RichTextCompositeObject.GetRangeSize`                        Returns the object size for the given range.
:meth:`~wx.richtext.RichTextCompositeObject.GetTextForRange`                     Returns any text in this object for the given range.
:meth:`~wx.richtext.RichTextCompositeObject.HitTest`                             Hit-testing: returns a flag indicating hit test details, plus information about position.
:meth:`~wx.richtext.RichTextCompositeObject.InsertChild`                         Inserts the child in front of the given object, or at the beginning.
:meth:`~wx.richtext.RichTextCompositeObject.Invalidate`                          Invalidates the object at the given range.
:meth:`~wx.richtext.RichTextCompositeObject.IsAtomic`                            Returns ``True`` if no user editing can be done inside the object.
:meth:`~wx.richtext.RichTextCompositeObject.IsComposite`                         Returns ``True`` if this object is composite.
:meth:`~wx.richtext.RichTextCompositeObject.IsEmpty`                             Returns ``True`` if the buffer is empty.
:meth:`~wx.richtext.RichTextCompositeObject.Move`                                Moves the object recursively, by adding the offset from old to new.
:meth:`~wx.richtext.RichTextCompositeObject.RemoveChild`                         Removes and optionally deletes the specified child.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.richtext.RichTextCompositeObject.ChildCount`                          See :meth:`~wx.richtext.RichTextCompositeObject.GetChildCount`
:attr:`~wx.richtext.RichTextCompositeObject.Children`                            See :meth:`~wx.richtext.RichTextCompositeObject.GetChildren`
================================================================================ ================================================================================


|


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


.. class:: wx.richtext.RichTextCompositeObject(RichTextObject)

   **Possible constructors**::

       RichTextCompositeObject(parent=None)
       
   
   Objects of this class can contain other objects.



   .. method:: __init__(self, parent=None)




      :param `parent`: 
      :type `parent`: wx.richtext.RichTextObject







   .. method:: AppendChild(self, child)

      Appends a child, returning the position.                  


      :param `child`: 
      :type `child`: wx.richtext.RichTextObject




      :rtype: `int`








   .. method:: CalculateRange(self, start)

      Calculates the range of the object.                  

      By default, guess that the object is 1 unit long.                  


      :param `start`: 
      :type `start`: long




      :rtype: `end`








   .. method:: Copy(self, obj)




      :param `obj`: 
      :type `obj`: wx.richtext.RichTextCompositeObject







   .. method:: Defragment(self, context, range=RICHTEXT_ALL)

      Recursively merges all pieces that can be merged.                  


      :param `context`: 
      :type `context`: wx.richtext.RichTextDrawingContext
      :param `range`: 
      :type `range`: wx.richtext.RichTextRange




      :rtype: `bool`








   .. method:: DeleteChildren(self)

      Deletes all the children.                  

      :rtype: `bool`








   .. method:: DeleteRange(self, range)

      Deletes the given range.                  


      :param `range`: 
      :type `range`: wx.richtext.RichTextRange




      :rtype: `bool`








   .. method:: FindPosition(self, dc, context, index, forceLineStart)

      Finds the absolute position and row height for the given character position.                  


      :param `dc`: 
      :type `dc`: wx.DC
      :param `context`: 
      :type `context`: wx.richtext.RichTextDrawingContext
      :param `index`: 
      :type `index`: long
      :param `forceLineStart`: 
      :type `forceLineStart`: bool




      :rtype: `tuple`







      :returns: 

         ( `bool`, `pt`, `height` ) 








   .. method:: GetChild(self, n)

      Returns the nth child.                  


      :param `n`: 
      :type `n`: int




      :rtype: :ref:`wx.richtext.RichTextObject`








   .. method:: GetChildAtPosition(self, pos)

      Returns the child object at the given character position.                  


      :param `pos`: 
      :type `pos`: long




      :rtype: :ref:`wx.richtext.RichTextObject`








   .. method:: GetChildCount(self)

      Returns the number of children.                  

      :rtype: `int`








   .. method:: GetChildren(self)

      Returns the children.                  

      :rtype: `RichTextObjectList`     








   .. method:: GetRangeSize(self, range, size, descent, dc, context, flags, position=Point(0,0), parentSize=DefaultSize, partialExtents=None)

      Returns the object size for the given range.                  

      Returns ``False`` if the range is invalid for this object.                  


      :param `range`: 
      :type `range`: wx.richtext.RichTextRange
      :param `size`: 
      :type `size`: wx.Size
      :param `descent`: 
      :type `descent`: int
      :param `dc`: 
      :type `dc`: wx.DC
      :param `context`: 
      :type `context`: wx.richtext.RichTextDrawingContext
      :param `flags`: 
      :type `flags`: int
      :param `position`: 
      :type `position`: wx.Point
      :param `parentSize`: 
      :type `parentSize`: wx.Size
      :param `partialExtents`: 
      :type `partialExtents`: list of integers




      :rtype: `bool`








   .. method:: GetTextForRange(self, range)

      Returns any text in this object for the given range.                  


      :param `range`: 
      :type `range`: wx.richtext.RichTextRange




      :rtype: `string`








   .. method:: HitTest(self, dc, context, pt, flags=0)

      Hit-testing: returns a flag indicating hit test details, plus information about position.                  

      `contextObj`  is returned to specify what object position is relevant to, since otherwise there's an ambiguity. @ obj might not be a child of `contextObj`, since we may be referring to the container itself if we have no hit on a child - for example if we click outside an object. 

      The function puts the position in `textPosition`  if one is found. `pt`  is in logical units (a zero y position is at the beginning of the buffer). 

                


      :param `dc`: 
      :type `dc`: wx.DC
      :param `context`: 
      :type `context`: wx.richtext.RichTextDrawingContext
      :param `pt`: 
      :type `pt`: wx.Point
      :param `flags`: 
      :type `flags`: int




      :rtype: `tuple`







      :returns: 

         ( `int`, `textPosition`, `obj`, `contextObj` ) 








   .. method:: InsertChild(self, child, inFrontOf)

      Inserts the child in front of the given object, or at the beginning.                  


      :param `child`: 
      :type `child`: wx.richtext.RichTextObject
      :param `inFrontOf`: 
      :type `inFrontOf`: wx.richtext.RichTextObject




      :rtype: `bool`








   .. method:: Invalidate(self, invalidRange=RICHTEXT_ALL)

      Invalidates the object at the given range.                  

      With no argument, invalidates the whole object.                  


      :param `invalidRange`: 
      :type `invalidRange`: wx.richtext.RichTextRange







   .. method:: IsAtomic(self)

      Returns ``True`` if no user editing can be done inside the object.                  

      This returns ``True`` for simple objects, ``False`` for most composite objects, but ``True`` for fields, which if composite, should not be user-edited.                  

      :rtype: `bool`








   .. method:: IsComposite(self)

      Returns ``True`` if this object is composite.                  

      :rtype: `bool`








   .. method:: IsEmpty(self)

      Returns ``True`` if the buffer is empty.                  

      :rtype: `bool`








   .. method:: Move(self, pt)

      Moves the object recursively, by adding the offset from old to new.                  


      :param `pt`: 
      :type `pt`: wx.Point







   .. method:: RemoveChild(self, child, deleteChild=False)

      Removes and optionally deletes the specified child.                  


      :param `child`: 
      :type `child`: wx.richtext.RichTextObject
      :param `deleteChild`: 
      :type `deleteChild`: bool




      :rtype: `bool`








   .. attribute:: ChildCount

      See :meth:`~wx.richtext.RichTextCompositeObject.GetChildCount`


   .. attribute:: Children

      See :meth:`~wx.richtext.RichTextCompositeObject.GetChildren`