.. wxPython Phoenix documentation This file was generated by Phoenix's sphinx generator and associated tools, do not edit by hand. Copyright: (c) 2011-2020 by Total Control Software License: wxWindows License .. include:: headings.inc .. _wx.richtext.RichTextField: ========================================================================================================================================== |phoenix_title| **wx.richtext.RichTextField** ========================================================================================================================================== This class implements the general concept of a field, an object that represents additional functionality such as a footnote, a bookmark, a page number, a table of contents, and so on. Extra information (such as a bookmark name) can be stored in the object properties. Drawing, layout, and property editing is delegated to classes derived from :ref:`wx.richtext.RichTextFieldType`, such as instances of :ref:`wx.richtext.RichTextFieldTypeStandard`; this makes the use of fields an efficient method of introducing extra functionality, since most of the information required to draw a field (such as a bitmap) is kept centrally in a single field type definition. The FieldType property, accessed by SetFieldType/GetFieldType, is used to retrieve the field type definition. So be careful not to overwrite this property. :ref:`wx.richtext.RichTextField` is derived from :ref:`wx.richtext.RichTextParagraphLayoutBox`, which means that it can contain its own read-only content, refreshed when the application calls the UpdateField function. Whether a field is treated as a composite or a single graphic is determined by the field type definition. If using :ref:`wx.richtext.RichTextFieldTypeStandard`, passing the display type ``RICHTEXT_FIELD_STYLE_COMPOSITE`` to the field type definition causes the field to behave like a composite; the other display styles display a simple graphic. When implementing a composite field, you will still need to derive from :ref:`wx.richtext.RichTextFieldTypeStandard` or :ref:`wx.richtext.RichTextFieldType`, if only to implement UpdateField to refresh the field content appropriately. :ref:`wx.richtext.RichTextFieldTypeStandard` is only one possible implementation, but covers common needs especially for simple, static fields using text or a bitmap. Register field types on application initialisation with the static function :meth:`wx.richtext.RichTextBuffer.AddFieldType` . They will be deleted automatically on application exit. An application can write a field to a control with :meth:`wx.richtext.RichTextCtrl.WriteField` , taking a field type, the properties for the field, and optional attributes. .. seealso:: :ref:`wx.richtext.RichTextFieldTypeStandard`, :ref:`wx.richtext.RichTextFieldType`, :ref:`wx.richtext.RichTextParagraphLayoutBox`, :ref:`wx.richtext.RichTextProperties`, :ref:`wx.richtext.RichTextCtrl` | |class_hierarchy| Class Hierarchy ================================= .. raw:: html
Inheritance diagram for class RichTextField:
| |method_summary| Methods Summary ================================ ================================================================================ ================================================================================ :meth:`~wx.richtext.RichTextField.__init__` Default constructor; optionally pass the parent object. :meth:`~wx.richtext.RichTextField.AcceptsFocus` Returns ``True`` if objects of this class can accept the focus, i.e. a call to SetFocusObject is possible. :meth:`~wx.richtext.RichTextField.CalculateRange` Calculates the range of the object. :meth:`~wx.richtext.RichTextField.CanEditProperties` Returns ``True`` if we can edit the object's properties via a GUI. :meth:`~wx.richtext.RichTextField.Clone` Clones the object. :meth:`~wx.richtext.RichTextField.Copy` :meth:`~wx.richtext.RichTextField.Draw` Draw the item, within the given range. :meth:`~wx.richtext.RichTextField.EditProperties` Edits the object's properties via a GUI. :meth:`~wx.richtext.RichTextField.GetFieldType` :meth:`~wx.richtext.RichTextField.GetPropertiesMenuLabel` Returns the label to be used for the properties context menu item. :meth:`~wx.richtext.RichTextField.GetRangeSize` Returns the object size for the given range. :meth:`~wx.richtext.RichTextField.GetXMLNodeName` Returns the ``XML`` node name of this object. :meth:`~wx.richtext.RichTextField.IsAtomic` If a field has children, we don't want the user to be able to edit it. :meth:`~wx.richtext.RichTextField.IsEmpty` Returns ``True`` if the buffer is empty. :meth:`~wx.richtext.RichTextField.IsTopLevel` Returns ``True`` if this object is top-level, i.e. contains its own paragraphs, such as a text box. :meth:`~wx.richtext.RichTextField.Layout` Lay the item out at the specified position with the given size constraint. :meth:`~wx.richtext.RichTextField.SetFieldType` :meth:`~wx.richtext.RichTextField.UpdateField` Update the field; delegated to the associated field type. ================================================================================ ================================================================================ | |property_summary| Properties Summary ===================================== ================================================================================ ================================================================================ :attr:`~wx.richtext.RichTextField.FieldType` See :meth:`~wx.richtext.RichTextField.GetFieldType` and :meth:`~wx.richtext.RichTextField.SetFieldType` :attr:`~wx.richtext.RichTextField.PropertiesMenuLabel` See :meth:`~wx.richtext.RichTextField.GetPropertiesMenuLabel` :attr:`~wx.richtext.RichTextField.XMLNodeName` See :meth:`~wx.richtext.RichTextField.GetXMLNodeName` ================================================================================ ================================================================================ | |api| Class API =============== .. class:: wx.richtext.RichTextField(RichTextParagraphLayoutBox) **Possible constructors**:: RichTextField(fieldType="", parent=None) RichTextField(obj) This class implements the general concept of a field, an object that represents additional functionality such as a footnote, a bookmark, a page number, a table of contents, and so on. .. method:: __init__(self, *args, **kw) |overload| Overloaded Implementations: :html:`

` **__init__** `(self, fieldType="", parent=None)` Default constructor; optionally pass the parent object. :param `fieldType`: :type `fieldType`: string :param `parent`: :type `parent`: wx.richtext.RichTextObject :html:`

` **__init__** `(self, obj)` Copy constructor. :param `obj`: :type `obj`: wx.richtext.RichTextField :html:`

` .. method:: AcceptsFocus(self) Returns ``True`` if objects of this class can accept the focus, i.e. a call to SetFocusObject is possible. For example, containers supporting text, such as a text box object, can accept the focus, but a table can't (set the focus to individual cells instead). :rtype: `bool` .. 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:: CanEditProperties(self) Returns ``True`` if we can edit the object's properties via a GUI. :rtype: `bool` .. method:: Clone(self) Clones the object. :rtype: :ref:`wx.richtext.RichTextObject` .. method:: Copy(self, obj) :param `obj`: :type `obj`: wx.richtext.RichTextField .. method:: Draw(self, dc, context, range, selection, rect, descent, style) Draw the item, within the given range. Some objects may ignore the range (for example paragraphs) while others must obey it (lines, to implement wrapping) :param `dc`: :type `dc`: wx.DC :param `context`: :type `context`: wx.richtext.RichTextDrawingContext :param `range`: :type `range`: wx.richtext.RichTextRange :param `selection`: :type `selection`: wx.richtext.RichTextSelection :param `rect`: :type `rect`: wx.Rect :param `descent`: :type `descent`: int :param `style`: :type `style`: int :rtype: `bool` .. method:: EditProperties(self, parent, buffer) Edits the object's properties via a GUI. :param `parent`: :type `parent`: wx.Window :param `buffer`: :type `buffer`: wx.richtext.RichTextBuffer :rtype: `bool` .. method:: GetFieldType(self) :rtype: `string` .. method:: GetPropertiesMenuLabel(self) Returns the label to be used for the properties context menu item. :rtype: `string` .. 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:: GetXMLNodeName(self) Returns the ``XML`` node name of this object. This must be overridden for XmlNode-base ``XML`` export to work. :rtype: `string` .. method:: IsAtomic(self) If a field has children, we don't want the user to be able to edit it. :rtype: `bool` .. method:: IsEmpty(self) Returns ``True`` if the buffer is empty. :rtype: `bool` .. method:: IsTopLevel(self) Returns ``True`` if this object is top-level, i.e. contains its own paragraphs, such as a text box. :rtype: `bool` .. method:: Layout(self, dc, context, rect, parentRect, style) Lay the item out at the specified position with the given size constraint. Layout must set the cached size. `rect` is the available space for the object, and `parentRect` is the container that is used to determine a relative size or position (for example if a text box must be 50% of the parent text box). :param `dc`: :type `dc`: wx.DC :param `context`: :type `context`: wx.richtext.RichTextDrawingContext :param `rect`: :type `rect`: wx.Rect :param `parentRect`: :type `parentRect`: wx.Rect :param `style`: :type `style`: int :rtype: `bool` .. method:: SetFieldType(self, fieldType) :param `fieldType`: :type `fieldType`: string .. method:: UpdateField(self, buffer) Update the field; delegated to the associated field type. This would typically expand the field to its value, if this is a dynamically changing and/or composite field. :param `buffer`: :type `buffer`: wx.richtext.RichTextBuffer :rtype: `bool` .. attribute:: FieldType See :meth:`~wx.richtext.RichTextField.GetFieldType` and :meth:`~wx.richtext.RichTextField.SetFieldType` .. attribute:: PropertiesMenuLabel See :meth:`~wx.richtext.RichTextField.GetPropertiesMenuLabel` .. attribute:: XMLNodeName See :meth:`~wx.richtext.RichTextField.GetXMLNodeName`