## wxTextAttrEx

wxTextAttrEx is an extended version of wxTextAttr with more paragraph attributes. Currently it is only used with wxRichTextCtrl.

It is intended that eventually, the members of wxTextAttrEx will be folded into wxTextAttr, and wxTextAttr will be the official cross-platform API for text controls that support attributes. However, for now, wxTextAttrEx is provided as a means of enabling extra functionality in wxRichTextCtrl, while retaining some compatibility with the wxTextAttr API.

The most efficient method of accessing wxRichTextCtrl functionality is a third attribute class, wxRichTextAttr, which optimizes its storage to allow it to be used for implementing objects in a buffer, as well as access to that buffer.

This section only documents the additional members; see wxTextAttr for the remaining functions.

Derived from

wxTextAttr

Include files

<wx/richtext/richtextbuffer.h>

Constants

The following values can be passed to SetAlignment to determine paragraph alignment.

    enum wxTextAttrAlignment
    {
        wxTEXT_ALIGNMENT_DEFAULT,
        wxTEXT_ALIGNMENT_LEFT,
        wxTEXT_ALIGNMENT_CENTRE,
        wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE,
        wxTEXT_ALIGNMENT_RIGHT,
        wxTEXT_ALIGNMENT_JUSTIFIED
    };

These values are passed in a bitlist to SetFlags to determine what attributes will be considered when setting the attributes for a text control.

    // Standard wxTextAttr constants

    #define wxTEXT_ATTR_TEXT_COLOUR             0x0001
    #define wxTEXT_ATTR_BACKGROUND_COLOUR       0x0002
    #define wxTEXT_ATTR_FONT_FACE               0x0004
    #define wxTEXT_ATTR_FONT_SIZE               0x0008
    #define wxTEXT_ATTR_FONT_WEIGHT             0x0010
    #define wxTEXT_ATTR_FONT_ITALIC             0x0020
    #define wxTEXT_ATTR_FONT_UNDERLINE          0x0040
    #define wxTEXT_ATTR_FONT \
      wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT \
    | wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE
    #define wxTEXT_ATTR_ALIGNMENT               0x0080
    #define wxTEXT_ATTR_LEFT_INDENT             0x0100
    #define wxTEXT_ATTR_RIGHT_INDENT            0x0200
    #define wxTEXT_ATTR_TABS                    0x0400

    // Extra formatting flags not in wxTextAttr

    #define wxTEXT_ATTR_PARA_SPACING_AFTER      0x00000800
    #define wxTEXT_ATTR_PARA_SPACING_BEFORE     0x00001000
    #define wxTEXT_ATTR_LINE_SPACING            0x00002000
    #define wxTEXT_ATTR_CHARACTER_STYLE_NAME    0x00004000
    #define wxTEXT_ATTR_PARAGRAPH_STYLE_NAME    0x00008000
    #define wxTEXT_ATTR_LIST_STYLE_NAME         0x00010000
    #define wxTEXT_ATTR_BULLET_STYLE            0x00020000
    #define wxTEXT_ATTR_BULLET_NUMBER           0x00040000
    #define wxTEXT_ATTR_BULLET_TEXT             0x00080000
    #define wxTEXT_ATTR_BULLET_NAME             0x00100000
    #define wxTEXT_ATTR_URL                     0x00200000
    #define wxTEXT_ATTR_PAGE_BREAK              0x00400000
    #define wxTEXT_ATTR_EFFECTS                 0x00800000
    #define wxTEXT_ATTR_OUTLINE_LEVEL           0x01000000

The following styles can be passed to wxTextAttrEx::SetBulletStyle:

    #define wxTEXT_ATTR_BULLET_STYLE_NONE               0x00000000
    #define wxTEXT_ATTR_BULLET_STYLE_ARABIC             0x00000001
    #define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER      0x00000002
    #define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER      0x00000004
    #define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER        0x00000008
    #define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER        0x00000010
    #define wxTEXT_ATTR_BULLET_STYLE_SYMBOL             0x00000020
    #define wxTEXT_ATTR_BULLET_STYLE_BITMAP             0x00000040
    #define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES        0x00000080
    #define wxTEXT_ATTR_BULLET_STYLE_PERIOD             0x00000100
    #define wxTEXT_ATTR_BULLET_STYLE_STANDARD           0x00000200
    #define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS  0x00000400
    #define wxTEXT_ATTR_BULLET_STYLE_OUTLINE            0x00000800
    #define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT         0x00000000
    #define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT        0x00001000
    #define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE       0x00002000

Of these, wxTEXT_ATTR_BULLET_STYLE_BITMAP is unimplemented.

The following constants can be passed to wxTextAttrEx::SetLineSpacing:

    #define wxTEXT_ATTR_LINE_SPACING_NORMAL         10
    #define wxTEXT_ATTR_LINE_SPACING_HALF           15
    #define wxTEXT_ATTR_LINE_SPACING_TWICE          20

The following styles can be passed to wxTextAttrEx::SetTextEffects:

    #define wxTEXT_ATTR_EFFECT_NONE                     0x00000000
    #define wxTEXT_ATTR_EFFECT_CAPITALS                 0x00000001
    #define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS           0x00000002
    #define wxTEXT_ATTR_EFFECT_STRIKETHROUGH            0x00000004
    #define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH     0x00000008
    #define wxTEXT_ATTR_EFFECT_SHADOW                   0x00000010
    #define wxTEXT_ATTR_EFFECT_EMBOSS                   0x00000020
    #define wxTEXT_ATTR_EFFECT_OUTLINE                  0x00000040
    #define wxTEXT_ATTR_EFFECT_ENGRAVE                  0x00000080
    #define wxTEXT_ATTR_EFFECT_SUPERSCRIPT              0x00000100
    #define wxTEXT_ATTR_EFFECT_SUBSCRIPT                0x00000200

Of these, only wxTEXT_ATTR_EFFECT_CAPITALS and wxTEXT_ATTR_EFFECT_STRIKETHROUGH are implemented.

See also

wxTextAttr, wxRichTextAttr, wxRichTextCtrl

Members

wxTextAttrEx::wxTextAttrEx
wxTextAttrEx::GetBulletFont
wxTextAttrEx::GetBulletName
wxTextAttrEx::GetBulletNumber
wxTextAttrEx::GetBulletStyle
wxTextAttrEx::GetBulletText
wxTextAttrEx::GetCharacterStyleName
wxTextAttrEx::GetLineSpacing
wxTextAttrEx::GetListStyleName
wxTextAttrEx::GetOutlineLevel
wxTextAttrEx::GetParagraphSpacingAfter
wxTextAttrEx::GetParagraphSpacingBefore
wxTextAttrEx::GetParagraphStyleName
wxTextAttrEx::GetTextEffectFlags
wxTextAttrEx::GetTextEffects
wxTextAttrEx::GetURL
wxTextAttrEx::HasBulletName
wxTextAttrEx::HasBulletNumber
wxTextAttrEx::HasBulletStyle
wxTextAttrEx::HasBulletText
wxTextAttrEx::HasCharacterStyleName
wxTextAttrEx::HasLineSpacing
wxTextAttrEx::HasListStyleName
wxTextAttrEx::HasOutlineLevel
wxTextAttrEx::HasPageBreak
wxTextAttrEx::HasParagraphSpacingAfter
wxTextAttrEx::HasParagraphSpacingBefore
wxTextAttrEx::HasParagraphStyleName
wxTextAttrEx::HasTextEffects
wxTextAttrEx::HasURL
wxTextAttrEx::Init
wxTextAttrEx::IsCharacterStyle
wxTextAttrEx::IsDefault
wxTextAttrEx::IsParagraphStyle
wxTextAttrEx::SetBulletFont
wxTextAttrEx::SetBulletNumber
wxTextAttrEx::SetBulletName
wxTextAttrEx::SetBulletStyle
wxTextAttrEx::SetBulletText
wxTextAttrEx::SetCharacterStyleName
wxTextAttrEx::SetLineSpacing
wxTextAttrEx::SetListStyleName
wxTextAttrEx::SetOutlineLevel
wxTextAttrEx::SetPageBreak
wxTextAttrEx::SetParagraphSpacingAfter
wxTextAttrEx::SetParagraphSpacingBefore
wxTextAttrEx::SetParagraphStyleName
wxTextAttrEx::SetTextEffectFlags
wxTextAttrEx::SetTextEffects
wxTextAttrEx::SetURL
wxTextAttrEx::operator=

### wxTextAttrEx::wxTextAttrEx

wxTextAttrEx()

wxTextAttrEx(const wxTextAttrEx& attr)

Constructors.

### wxTextAttrEx::GetBulletFont

const wxString& GetBulletFont() const

Returns a string containing the name of the font associated with the bullet symbol. Only valid for attributes with wxTEXT_ATTR_BULLET_SYMBOL.

### wxTextAttrEx::GetBulletName

const wxString& GetBulletName() const

Returns the standard bullet name, applicable if the bullet style is wxTEXT_ATTR_BULLET_STYLE_STANDARD. Currently the following standard bullet names are supported:

- `standard/circle`
- `standard/square`
- `standard/diamond`
- `standard/triangle`

If you wish your application to support further bullet graphics, you can derive a class from wxRichTextRenderer or wxRichTextStdRenderer, override `DrawStandardBullet` and `EnumerateStandardBulletNames`, and set an instance of the class using wxRichTextBuffer::SetRenderer.

### wxTextAttrEx::GetBulletNumber

int GetBulletNumber() const

Returns the bullet number.

### wxTextAttrEx::GetBulletStyle

int GetBulletStyle() const

Returns the bullet style. See wxTextAttrEx::SetBulletStyle for a list of available styles.

### wxTextAttrEx::GetBulletText

const wxString& GetBulletText() const

Returns the bullet text, which could be a symbol, or (for example) cached outline text.

### wxTextAttrEx::GetCharacterStyleName

const wxString& GetCharacterStyleName() const

Returns the name of the character style.

### wxTextAttrEx::GetLineSpacing

int GetLineSpacing() const

Returns the line spacing value, one of wxTEXT_ATTR_LINE_SPACING_NORMAL, wxTEXT_ATTR_LINE_SPACING_HALF, and wxTEXT_ATTR_LINE_SPACING_TWICE.

### wxTextAttrEx::GetListStyleName

const wxString& GetListStyleName() const

Returns the name of the list style.

### wxTextAttrEx::GetOutlineLevel

bool GetOutlineLevel() const

Returns the outline level.

### wxTextAttrEx::GetParagraphSpacingAfter

int GetParagraphSpacingAfter() const

Returns the space in tenths of a millimeter after the paragraph.

### wxTextAttrEx::GetParagraphSpacingBefore

int GetParagraphSpacingBefore() const

Returns the space in tenths of a millimeter before the paragraph.

### wxTextAttrEx::GetParagraphStyleName

const wxString& GetParagraphStyleName() const

Returns the name of the paragraph style.

### wxTextAttrEx::GetTextEffectFlags

int GetTextEffectFlags() const

Returns the text effect bits of interest. See wxTextAttr::SetFlags for further information.

### wxTextAttrEx::GetTextEffects

int GetTextEffects() const

Returns the text effects, a bit list of styles. See wxTextAttrEx::SetTextEffects for details.

### wxTextAttrEx::GetURL

const wxString& GetURL() const

Returns the URL for the content. Content with wxTEXT_ATTR_URL style causes wxRichTextCtrl to show a hand cursor over it, and wxRichTextCtrl generates a wxTextUrlEvent when the content is clicked.

### wxTextAttrEx::HasBulletName

bool HasBulletName() const

Returns `true` if the attribute object specifies a standard bullet name.

### wxTextAttrEx::HasBulletNumber

bool HasBulletNumber() const

Returns `true` if the attribute object specifies a bullet number.

### wxTextAttrEx::HasBulletStyle

bool HasBulletStyle() const

Returns `true` if the attribute object specifies a bullet style.

### wxTextAttrEx::HasBulletText

bool HasBulletText() const

Returns `true` if the attribute object specifies bullet text (usually containing a symbol).

### wxTextAttrEx::HasCharacterStyleName

bool HasCharacterStyleName() const

Returns `true` if the attribute object specifies a character style name.

### wxTextAttrEx::HasLineSpacing

bool HasLineSpacing() const

Returns `true` if the attribute object specifies line spacing.

### wxTextAttrEx::HasListStyleName

bool HasListStyleName() const

Returns `true` if the attribute object specifies a list style name.

### wxTextAttrEx::HasOutlineLevel

bool HasOutlineLevel() const

Returns `true` if the attribute object specifies an outline level.

### wxTextAttrEx::HasPageBreak

bool HasPageBreak() const

Returns `true` if the attribute object specifies a page break before this paragraph.

### wxTextAttrEx::HasParagraphSpacingAfter

bool HasParagraphSpacingAfter() const

Returns `true` if the attribute object specifies spacing after a paragraph.

### wxTextAttrEx::HasParagraphSpacingBefore

bool HasParagraphSpacingBefore() const

Returns `true` if the attribute object specifies spacing before a paragraph.

### wxTextAttrEx::HasParagraphStyleName

bool HasParagraphStyleName() const

Returns `true` if the attribute object specifies a paragraph style name.

### wxTextAttrEx::HasTextEffects

bool HasTextEffects() const

Returns `true` if the attribute object specifies text effects.

### wxTextAttrEx::HasURL

bool HasURL() const

Returns `true` if the attribute object specifies a URL.

### wxTextAttrEx::Init

void Init()

Initialises this object.

### wxTextAttrEx::IsCharacterStyle

bool IsCharacterStyle() const

Returns `true` if the object represents a character style, that is, the flags specify a font or a text background or foreground colour.

### wxTextAttrEx::IsDefault

bool IsDefault() const

Returns `false` if we have any attributes set, `true` otherwise.

### wxTextAttrEx::IsParagraphStyle

bool IsParagraphStyle() const

Returns `true` if the object represents a paragraph style, that is, the flags specify alignment, indentation, tabs, paragraph spacing, or bullet style.

### wxTextAttrEx::SetBulletFont

void SetBulletFont(const wxString& font)

Sets the name of the font associated with the bullet symbol. Only valid for attributes with wxTEXT_ATTR_BULLET_SYMBOL.

### wxTextAttrEx::SetBulletNumber

void SetBulletNumber(int n)

Sets the bullet number.

### wxTextAttrEx::SetBulletName

void SetBulletName(const wxString& name)

Sets the standard bullet name, applicable if the bullet style is wxTEXT_ATTR_BULLET_STYLE_STANDARD. See wxTextAttrEx::GetBulletName for a list of supported names, and how to expand the range of supported types.

### wxTextAttrEx::SetBulletStyle

void SetBulletStyle(int style)

Sets the bullet style. The following styles can be passed:

    #define wxTEXT_ATTR_BULLET_STYLE_NONE               0x00000000
    #define wxTEXT_ATTR_BULLET_STYLE_ARABIC             0x00000001
    #define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER      0x00000002
    #define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER      0x00000004
    #define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER        0x00000008
    #define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER        0x00000010
    #define wxTEXT_ATTR_BULLET_STYLE_SYMBOL             0x00000020
    #define wxTEXT_ATTR_BULLET_STYLE_BITMAP             0x00000040
    #define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES        0x00000080
    #define wxTEXT_ATTR_BULLET_STYLE_PERIOD             0x00000100
    #define wxTEXT_ATTR_BULLET_STYLE_STANDARD           0x00000200
    #define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS  0x00000400
    #define wxTEXT_ATTR_BULLET_STYLE_OUTLINE            0x00000800
    #define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT         0x00000000
    #define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT        0x00001000
    #define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE       0x00002000

Currently wxTEXT_ATTR_BULLET_STYLE_BITMAP is not supported.

### wxTextAttrEx::SetBulletText

void SetBulletText(const wxString& text)

Sets the bullet text, which could be a symbol, or (for example) cached outline text.

### wxTextAttrEx::SetCharacterStyleName

void SetCharacterStyleName(const wxString& name)

Sets the character style name.

### wxTextAttrEx::SetLineSpacing

void SetLineSpacing(int spacing)

Sets the line spacing. spacing is a multiple, where 10 means single-spacing, 15 means 1.5 spacing, and 20 means double spacing. The following constants are defined for convenience:

    #define wxTEXT_ATTR_LINE_SPACING_NORMAL         10
    #define wxTEXT_ATTR_LINE_SPACING_HALF           15
    #define wxTEXT_ATTR_LINE_SPACING_TWICE          20

### wxTextAttrEx::SetListStyleName

void SetListStyleName(const wxString& name)

Sets the list style name.

### wxTextAttrEx::SetOutlineLevel

void SetOutlineLevel(int level)

Specifies the outline level. Zero represents normal text. At present, the outline level is not used, but may be used in future for determining list levels and for applications that need to store document structure information.

### wxTextAttrEx::SetPageBreak

void SetPageBreak(bool pageBreak = true)

Specifies a page break before this paragraph.

### wxTextAttrEx::SetParagraphSpacingAfter

void SetParagraphSpacingAfter(int spacing)

Sets the spacing after a paragraph, in tenths of a millimetre.

### wxTextAttrEx::SetParagraphSpacingBefore

void SetParagraphSpacingBefore(int spacing)

Sets the spacing before a paragraph, in tenths of a millimetre.

### wxTextAttrEx::SetParagraphStyleName

void SetParagraphStyleName(const wxString& name)

Sets the name of the paragraph style.

### wxTextAttrEx::SetTextEffectFlags

void SetTextEffectFlags(int flags)

Sets the text effect bits of interest. You should also pass wxTEXT_ATTR_EFFECTS to wxTextAttr::SetFlags.

### wxTextAttrEx::SetTextEffects

void SetTextEffects(int effects)

Sets the text effects, a bit list of styles.

The following styles can be passed:

    #define wxTEXT_ATTR_EFFECT_NONE                     0x00000000
    #define wxTEXT_ATTR_EFFECT_CAPITALS                 0x00000001
    #define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS           0x00000002
    #define wxTEXT_ATTR_EFFECT_STRIKETHROUGH            0x00000004
    #define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH     0x00000008
    #define wxTEXT_ATTR_EFFECT_SHADOW                   0x00000010
    #define wxTEXT_ATTR_EFFECT_EMBOSS                   0x00000020
    #define wxTEXT_ATTR_EFFECT_OUTLINE                  0x00000040
    #define wxTEXT_ATTR_EFFECT_ENGRAVE                  0x00000080
    #define wxTEXT_ATTR_EFFECT_SUPERSCRIPT              0x00000100
    #define wxTEXT_ATTR_EFFECT_SUBSCRIPT                0x00000200

Of these, only wxTEXT_ATTR_EFFECT_CAPITALS and wxTEXT_ATTR_EFFECT_STRIKETHROUGH are implemented. wxTEXT_ATTR_EFFECT_CAPITALS capitalises text when displayed (leaving the case of the actual buffer text unchanged), and wxTEXT_ATTR_EFFECT_STRIKETHROUGH draws a line through text.

To set effects, you should also pass wxTEXT_ATTR_EFFECTS to wxTextAttr::SetFlags, and call wxTextAttrEx::SetTextEffectFlags with the styles (taken from the above set) that you are interested in setting.

### wxTextAttrEx::SetURL

void SetURL(const wxString& url)

Sets the URL for the content. Sets the wxTEXT_ATTR_URL style; content with this style causes wxRichTextCtrl to show a hand cursor over it, and wxRichTextCtrl generates a wxTextUrlEvent when the content is clicked.

### wxTextAttrEx::operator=

void operator operator=(const wxTextAttr& attr)

Assignment from a wxTextAttr object.

void operator operator=(const wxTextAttrEx& attr)

Assignment from a wxTextAttrEx object.