#include <wx/richtext/richtextbuffer.h>
This object represents a single paragraph containing various objects such as text content, images, and further paragraph layout objects.
<>< =''>:</>&;&;< =''>\ </></>
Public Member Functions | |
wxRichTextParagraph (wxRichTextObject *parent=NULL, wxRichTextAttr *style=NULL) | |
Constructor taking a parent and style. | |
wxRichTextParagraph (const wxString &text, wxRichTextObject *parent=NULL, wxRichTextAttr *paraStyle=NULL, wxRichTextAttr *charStyle=NULL) | |
Constructor taking a text string, a parent and paragraph and character attributes. | |
virtual | ~wxRichTextParagraph () |
wxRichTextParagraph (const wxRichTextParagraph &obj) | |
virtual bool | Draw (wxDC &dc, wxRichTextDrawingContext &context, const wxRichTextRange &range, const wxRichTextSelection &selection, const wxRect &rect, int descent, int style) |
Draw the item, within the given range. | |
virtual bool | Layout (wxDC &dc, wxRichTextDrawingContext &context, const wxRect &rect, const wxRect &parentRect, int style) |
Lay the item out at the specified position with the given size constraint. | |
virtual bool | GetRangeSize (const wxRichTextRange &range, wxSize &size, int &descent, wxDC &dc, wxRichTextDrawingContext &context, int flags, const wxPoint &position=wxPoint(0, 0), const wxSize &parentSize=wxDefaultSize, wxArrayInt *partialExtents=NULL) const |
Returns the object size for the given range. | |
virtual bool | FindPosition (wxDC &dc, wxRichTextDrawingContext &context, long index, wxPoint &pt, int *height, bool forceLineStart) |
Finds the absolute position and row height for the given character position. | |
virtual int | HitTest (wxDC &dc, wxRichTextDrawingContext &context, const wxPoint &pt, long &textPosition, wxRichTextObject **obj, wxRichTextObject **contextObj, int flags=0) |
Hit-testing: returns a flag indicating hit test details, plus information about position. | |
virtual void | CalculateRange (long start, long &end) |
Calculates the range of the object. | |
virtual wxString | GetXMLNodeName () const |
Returns the XML node name of this object. | |
wxRichTextLineList & | GetLines () |
Returns the cached lines. | |
void | Copy (const wxRichTextParagraph &obj) |
Copies the object. | |
virtual wxRichTextObject * | Clone () const |
Clones the object. | |
void | ClearLines () |
Clears the cached lines. | |
virtual void | ApplyParagraphStyle (wxRichTextLine *line, const wxRichTextAttr &attr, const wxRect &rect, wxDC &dc) |
Applies paragraph styles such as centering to the wrapped lines. | |
virtual bool | InsertText (long pos, const wxString &text) |
Inserts text at the given position. | |
virtual wxRichTextObject * | SplitAt (long pos, wxRichTextObject **previousObject=NULL) |
Splits an object at this position if necessary, and returns the previous object, or NULL if inserting at the beginning. | |
virtual void | MoveToList (wxRichTextObject *obj, wxList &list) |
Moves content to a list from this point. | |
virtual void | MoveFromList (wxList &list) |
Adds content back from a list. | |
bool | GetContiguousPlainText (wxString &text, const wxRichTextRange &range, bool fromStart=true) |
Returns the plain text searching from the start or end of the range. | |
bool | FindWrapPosition (const wxRichTextRange &range, wxDC &dc, wxRichTextDrawingContext &context, int availableSpace, long &wrapPosition, wxArrayInt *partialExtents) |
Finds a suitable wrap position. | |
wxRichTextObject * | FindObjectAtPosition (long position) |
Finds the object at the given position. | |
wxString | GetBulletText () |
Returns the bullet text for this paragraph. | |
wxRichTextLine * | AllocateLine (int pos) |
Allocates or reuses a line object. | |
bool | ClearUnusedLines (int lineCount) |
Clears remaining unused line objects, if any. | |
wxRichTextAttr | GetCombinedAttributes (const wxRichTextAttr &contentStyle, bool includingBoxAttr=false) const |
Returns combined attributes of the base style, paragraph style and character style. | |
wxRichTextAttr | GetCombinedAttributes (bool includingBoxAttr=false) const |
Returns the combined attributes of the base style and paragraph style. | |
long | GetFirstLineBreakPosition (long pos) |
Returns the first position from pos that has a line break character. | |
void | LayoutFloat (wxDC &dc, wxRichTextDrawingContext &context, const wxRect &rect, const wxRect &parentRect, int style, wxRichTextFloatCollector *floatCollector) |
Lays out the floating objects. | |
![]() | |
wxRichTextCompositeObject (wxRichTextObject *parent=NULL) | |
virtual | ~wxRichTextCompositeObject () |
virtual bool | DeleteRange (const wxRichTextRange &range) |
Deletes the given range. | |
virtual wxString | GetTextForRange (const wxRichTextRange &range) const |
Returns any text in this object for the given range. | |
virtual void | Dump (wxTextOutputStream &stream) |
Dump object data to the given output stream for debugging. | |
virtual void | Invalidate (const wxRichTextRange &invalidRange=wxRICHTEXT_ALL) |
Invalidates the object at the given range. | |
wxRichTextObjectList & | GetChildren () |
Returns the children. | |
const wxRichTextObjectList & | GetChildren () const |
Returns the children. | |
size_t | GetChildCount () const |
Returns the number of children. | |
wxRichTextObject * | GetChild (size_t n) const |
Returns the nth child. | |
virtual bool | IsComposite () const |
Returns true if this object is composite. | |
virtual bool | IsAtomic () const |
Returns true if no user editing can be done inside the object. | |
virtual bool | IsEmpty () const |
Returns true if the buffer is empty. | |
virtual wxRichTextObject * | GetChildAtPosition (long pos) const |
Returns the child object at the given character position. | |
void | Copy (const wxRichTextCompositeObject &obj) |
void | operator= (const wxRichTextCompositeObject &obj) |
size_t | AppendChild (wxRichTextObject *child) |
Appends a child, returning the position. | |
bool | InsertChild (wxRichTextObject *child, wxRichTextObject *inFrontOf) |
Inserts the child in front of the given object, or at the beginning. | |
bool | RemoveChild (wxRichTextObject *child, bool deleteChild=false) |
Removes and optionally deletes the specified child. | |
bool | DeleteChildren () |
Deletes all the children. | |
bool | Defragment (wxRichTextDrawingContext &context, const wxRichTextRange &range=wxRICHTEXT_ALL) |
Recursively merges all pieces that can be merged. | |
virtual void | Move (const wxPoint &pt) |
Moves the object recursively, by adding the offset from old to new. | |
![]() | |
wxRichTextObject (wxRichTextObject *parent=NULL) | |
Constructor, taking an optional parent pointer. | |
virtual | ~wxRichTextObject () |
virtual wxSize | GetBestSize () const |
Returns the best size, i.e. the ideal starting size for this object irrespective of available space. | |
virtual wxRichTextObject * | DoSplit (long pos) |
Do a split from pos, returning an object containing the second part, and setting the first part in 'this'. | |
virtual bool | IsFloatable () const |
Returns true if this class of object is floatable. | |
virtual bool | IsFloating () const |
Returns true if this object is currently floating. | |
virtual int | GetFloatDirection () const |
Returns the floating direction. | |
virtual bool | CanMerge (wxRichTextObject *object, wxRichTextDrawingContext &context) const |
Returns true if this object can merge itself with the given one. | |
virtual bool | Merge (wxRichTextObject *object, wxRichTextDrawingContext &context) |
Returns true if this object merged itself with the given one. | |
virtual bool | CanSplit (wxRichTextDrawingContext &context) const |
Returns true if this object can potentially be split, by virtue of having different virtual attributes for individual sub-objects. | |
virtual wxRichTextObject * | Split (wxRichTextDrawingContext &context) |
Returns the final object in the split objects if this object was split due to differences between sub-object virtual attributes. | |
virtual bool | CanEditProperties () const |
Returns true if we can edit the object's properties via a GUI. | |
virtual bool | EditProperties (wxWindow *parent, wxRichTextBuffer *buffer) |
Edits the object's properties via a GUI. | |
virtual wxString | GetPropertiesMenuLabel () const |
Returns the label to be used for the properties context menu item. | |
virtual bool | AcceptsFocus () const |
Returns true if objects of this class can accept the focus, i.e. a call to SetFocusObject is possible. | |
virtual bool | ImportFromXML (wxRichTextBuffer *buffer, wxXmlNode *node, wxRichTextXMLHandler *handler, bool *recurse) |
Imports this object from XML. | |
virtual bool | UsesParagraphAttributes () const |
Returns true if this object takes note of paragraph attributes (text and image objects don't). | |
virtual bool | HandlesChildSelections () const |
Returns true if this object can handle the selections of its children, fOr example a table. | |
virtual wxRichTextSelection | GetSelection (long start, long end) const |
Returns a selection object specifying the selections between start and end character positions. | |
virtual wxSize | GetCachedSize () const |
Gets the cached object size as calculated by Layout. | |
virtual void | SetCachedSize (const wxSize &sz) |
Sets the cached object size as calculated by Layout. | |
virtual wxSize | GetMaxSize () const |
Gets the maximum object size as calculated by Layout. | |
virtual void | SetMaxSize (const wxSize &sz) |
Sets the maximum object size as calculated by Layout. | |
virtual wxSize | GetMinSize () const |
Gets the minimum object size as calculated by Layout. | |
virtual void | SetMinSize (const wxSize &sz) |
Sets the minimum object size as calculated by Layout. | |
virtual wxTextAttrSize | GetNaturalSize () const |
Gets the 'natural' size for an object. | |
virtual wxPoint | GetPosition () const |
Returns the object position in pixels. | |
virtual void | SetPosition (const wxPoint &pos) |
Sets the object position in pixels. | |
virtual wxPoint | GetAbsolutePosition () const |
Returns the absolute object position, by traversing up the child/parent hierarchy. | |
virtual wxRect | GetRect () const |
Returns the rectangle enclosing the object. | |
void | SetRange (const wxRichTextRange &range) |
Sets the object's range within its container. | |
const wxRichTextRange & | GetRange () const |
Returns the object's range. | |
wxRichTextRange & | GetRange () |
Returns the object's range. | |
void | SetOwnRange (const wxRichTextRange &range) |
Set the object's own range, for a top-level object with its own position space. | |
const wxRichTextRange & | GetOwnRange () const |
Returns the object's own range (valid if top-level). | |
wxRichTextRange & | GetOwnRange () |
Returns the object's own range (valid if top-level). | |
wxRichTextRange | GetOwnRangeIfTopLevel () const |
Returns the object's own range only if a top-level object. | |
virtual wxRichTextObject * | GetParent () const |
Returns a pointer to the parent object. | |
virtual void | SetParent (wxRichTextObject *parent) |
Sets the pointer to the parent object. | |
virtual wxRichTextParagraphLayoutBox * | GetContainer () const |
Returns the top-level container of this object. | |
virtual wxRichTextParagraphLayoutBox * | GetParentContainer () const |
Returns the top-level container of this object. | |
virtual void | SetMargins (int margin) |
Set the margin around the object, in pixels. | |
virtual void | SetMargins (int leftMargin, int rightMargin, int topMargin, int bottomMargin) |
Set the margin around the object, in pixels. | |
virtual int | GetLeftMargin () const |
Returns the left margin of the object, in pixels. | |
virtual int | GetRightMargin () const |
Returns the right margin of the object, in pixels. | |
virtual int | GetTopMargin () const |
Returns the top margin of the object, in pixels. | |
virtual int | GetBottomMargin () const |
Returns the bottom margin of the object, in pixels. | |
virtual wxRect | GetAvailableContentArea (wxDC &dc, wxRichTextDrawingContext &context, const wxRect &outerRect) const |
Calculates the available content space in the given rectangle, given the margins, border and padding specified in the object's attributes. | |
virtual bool | LayoutToBestSize (wxDC &dc, wxRichTextDrawingContext &context, wxRichTextBuffer *buffer, const wxRichTextAttr &parentAttr, const wxRichTextAttr &attr, const wxRect &availableParentSpace, const wxRect &availableContainerSpace, int style) |
Lays out the object first with a given amount of space, and then if no width was specified in attr, lays out the object again using the minimum size. | |
virtual bool | AdjustAttributes (wxRichTextAttr &attr, wxRichTextDrawingContext &context) |
Adjusts the attributes for virtual attribute provision, collapsed borders, etc. | |
void | SetAttributes (const wxRichTextAttr &attr) |
Sets the object's attributes. | |
const wxRichTextAttr & | GetAttributes () const |
Returns the object's attributes. | |
wxRichTextAttr & | GetAttributes () |
Returns the object's attributes. | |
wxRichTextProperties & | GetProperties () |
Returns the object's properties. | |
const wxRichTextProperties & | GetProperties () const |
Returns the object's properties. | |
void | SetProperties (const wxRichTextProperties &props) |
Sets the object's properties. | |
void | SetDescent (int descent) |
Sets the stored descent value. | |
int | GetDescent () const |
Returns the stored descent value. | |
wxRichTextBuffer * | GetBuffer () const |
Returns the containing buffer. | |
void | SetName (const wxString &name) |
Sets the identifying name for this object as a property using the "name" key. | |
wxString | GetName () const |
Returns the identifying name for this object from the properties, using the "name" key. | |
virtual bool | IsTopLevel () const |
Returns true if this object is top-level, i.e. contains its own paragraphs, such as a text box. | |
bool | IsShown () const |
Returns true if the object will be shown, false otherwise. | |
virtual void | Show (bool show) |
Call to show or hide this object. | |
void | Copy (const wxRichTextObject &obj) |
Copies the object. | |
void | Reference () |
Reference-counting allows us to use the same object in multiple lists (not yet used). | |
void | Dereference () |
Reference-counting allows us to use the same object in multiple lists (not yet used). | |
int | ConvertTenthsMMToPixels (wxDC &dc, int units) const |
Converts units in tenths of a millimetre to device units. | |
int | ConvertPixelsToTenthsMM (wxDC &dc, int pixels) const |
Convert units in pixels to tenths of a millimetre. | |
![]() | |
wxObject () | |
Default ctor; initializes to NULL the internal reference data. | |
wxObject (const wxObject &other) | |
Copy ctor. | |
virtual | ~wxObject () |
Destructor. | |
virtual wxClassInfo * | GetClassInfo () const |
This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). | |
wxObjectRefData * | GetRefData () const |
Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. | |
bool | IsKindOf (const wxClassInfo *info) const |
Determines whether this class is a subclass of (or the same class as) the given class. | |
bool | IsSameAs (const wxObject &obj) const |
Returns true if this object has the same data pointer as obj. | |
void | Ref (const wxObject &clone) |
Makes this object refer to the data in clone. | |
void | SetRefData (wxObjectRefData *data) |
Sets the wxObject::m_refData pointer. | |
void | UnRef () |
Decrements the reference count in the associated data, and if it is zero, deletes the data. | |
void | UnShare () |
This is the same of AllocExclusive() but this method is public. | |
void | operator delete (void *buf) |
The delete operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. | |
void * | operator new (size_t size, const wxString &filename=NULL, int lineNum=0) |
The new operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. | |
Protected Attributes | |
wxRichTextLineList | m_cachedLines |
![]() | |
wxRichTextObjectList | m_children |
![]() | |
wxSize | m_size |
wxSize | m_maxSize |
wxSize | m_minSize |
wxPoint | m_pos |
int | m_descent |
int | m_refCount |
bool | m_show |
wxRichTextObject * | m_parent |
wxRichTextRange | m_range |
wxRichTextRange | m_ownRange |
wxRichTextAttr | m_attributes |
wxRichTextProperties | m_properties |
![]() | |
wxObjectRefData * | m_refData |
Pointer to an object which is the object's reference-counted data. | |
Static Protected Attributes | |
static wxArrayInt | sm_defaultTabs |
Friends | |
class | wxRichTextFloatCollector |
Additional Inherited Members | |
![]() | |
void | AllocExclusive () |
Ensure that this object's data is not shared with any other object. | |
virtual wxObjectRefData * | CreateRefData () const |
Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. | |
virtual wxObjectRefData * | CloneRefData (const wxObjectRefData *data) const |
Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. | |
wxRichTextParagraph::wxRichTextParagraph | ( | wxRichTextObject * | parent = NULL , |
wxRichTextAttr * | style = NULL |
||
) |
Constructor taking a parent and style.
wxRichTextParagraph::wxRichTextParagraph | ( | const wxString & | text, |
wxRichTextObject * | parent = NULL , |
||
wxRichTextAttr * | paraStyle = NULL , |
||
wxRichTextAttr * | charStyle = NULL |
||
) |
Constructor taking a text string, a parent and paragraph and character attributes.
|
virtual |
|
inline |
wxRichTextLine * wxRichTextParagraph::AllocateLine | ( | int | pos | ) |
Allocates or reuses a line object.
|
virtual |
Applies paragraph styles such as centering to the wrapped lines.
Calculates the range of the object.
By default, guess that the object is 1 unit long.
Reimplemented from wxRichTextCompositeObject.
void wxRichTextParagraph::ClearLines | ( | ) |
Clears the cached lines.
Clears remaining unused line objects, if any.
|
inlinevirtual |
Clones the object.
Reimplemented from wxRichTextObject.
void wxRichTextParagraph::Copy | ( | const wxRichTextParagraph & | obj | ) |
Copies the object.
|
virtual |
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)
Implements wxRichTextObject.
wxRichTextObject * wxRichTextParagraph::FindObjectAtPosition | ( | long | position | ) |
Finds the object at the given position.
|
virtual |
Finds the absolute position and row height for the given character position.
Reimplemented from wxRichTextCompositeObject.
bool wxRichTextParagraph::FindWrapPosition | ( | const wxRichTextRange & | range, |
wxDC & | dc, | ||
wxRichTextDrawingContext & | context, | ||
int | availableSpace, | ||
long & | wrapPosition, | ||
wxArrayInt * | partialExtents | ||
) |
Finds a suitable wrap position.
wrapPosition is the last position in the line to the left of the split.
wxString wxRichTextParagraph::GetBulletText | ( | ) |
Returns the bullet text for this paragraph.
wxRichTextAttr wxRichTextParagraph::GetCombinedAttributes | ( | bool | includingBoxAttr = false | ) | const |
Returns the combined attributes of the base style and paragraph style.
wxRichTextAttr wxRichTextParagraph::GetCombinedAttributes | ( | const wxRichTextAttr & | contentStyle, |
bool | includingBoxAttr = false |
||
) | const |
Returns combined attributes of the base style, paragraph style and character style.
We use this to dynamically retrieve the actual style.
bool wxRichTextParagraph::GetContiguousPlainText | ( | wxString & | text, |
const wxRichTextRange & | range, | ||
bool | fromStart = true |
||
) |
Returns the plain text searching from the start or end of the range.
The resulting string may be shorter than the range given.
|
inlinestatic |
Returns the default tabstop array.
Returns the first position from pos that has a line break character.
|
inline |
Returns the cached lines.
|
virtual |
Returns the object size for the given range.
Returns false if the range is invalid for this object.
Reimplemented from wxRichTextCompositeObject.
Returns the XML node name of this object.
This must be overridden for wxXmlNode-base XML export to work.
Reimplemented from wxRichTextObject.
|
virtual |
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).
Reimplemented from wxRichTextCompositeObject.
Inserts text at the given position.
|
virtual |
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).
Implements wxRichTextObject.
void wxRichTextParagraph::LayoutFloat | ( | wxDC & | dc, |
wxRichTextDrawingContext & | context, | ||
const wxRect & | rect, | ||
const wxRect & | parentRect, | ||
int | style, | ||
wxRichTextFloatCollector * | floatCollector | ||
) |
Lays out the floating objects.
Adds content back from a list.
|
virtual |
Moves content to a list from this point.
|
virtual |
Splits an object at this position if necessary, and returns the previous object, or NULL if inserting at the beginning.
|
protected |
|
staticprotected |