-%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxTextAttr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\section{\class{wxTextAttr}}\label{wxtextattr}
-wxTextAttr represents the character and paragraph attributes, or style, for a range of text in a\rtfsp
-\helpref{wxTextCtrl}{wxtextctrl}.
+wxTextAttr represents the character and paragraph attributes, or style,
+for a range of text in a \helpref{wxTextCtrl}{wxtextctrl} or \helpref{wxRichTextCtrl}{wxrichtextctrl}.
-When setting up a wxTextAttr object, pass a bitlist mask to SetFlags to indicate
-which style elements should be changed. As a convenience, when you call a
-setter such as SetFont, the relevant bit will be set.
+When setting up a wxTextAttr object, pass a bitlist mask to \helpref{SetFlags}{wxtextattrsetflags} to
+indicate which style elements should be changed. As a convenience, when you call a setter such
+as SetFont, the relevant bit will be set.
\wxheading{Derived from}
<wx/textctrl.h>
-\wxheading{Typedefs}
-
-\texttt{wxTextPos} is the type containing the index of a position in a text
-control. \texttt{wxTextCoord} contains the index of a column or a row in the
-control.
+\wxheading{Library}
-Note that although both of these types should probably have been unsigned, due
-to backwards compatibility reasons, are defined as \texttt{long} currently.
-Their use (instead of plain \texttt{long}) is still encouraged as it makes the
-code more readable.
+\helpref{wxCore}{librarieslist}
\wxheading{Constants}
-The following values can be passed to SetAlignment to determine
+The following values can be passed to wxTextAttr::SetAlignment to determine
paragraph alignment.
{\small
\end{verbatim}
}
-These values are passed in a bitlist to SetFlags to determine
+Of these, wxTEXT\_ALIGNMENT\_JUSTIFIED is unimplemented. In future justification may be supported
+when printing or previewing, only.
+
+The following values are passed in a bitlist to wxTextAttr::SetFlags to determine
what attributes will be considered when setting the attributes
for a text control.
{\small
\begin{verbatim}
-#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
+// Standard wxTextAttr constants
+
+#define wxTEXT_ATTR_TEXT_COLOUR 0x00000001
+#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x00000002
+#define wxTEXT_ATTR_FONT_FACE 0x00000004
+#define wxTEXT_ATTR_FONT_SIZE 0x00000008
+#define wxTEXT_ATTR_FONT_WEIGHT 0x00000010
+#define wxTEXT_ATTR_FONT_ITALIC 0x00000020
+#define wxTEXT_ATTR_FONT_UNDERLINE 0x00000040
+#define wxTEXT_ATTR_FONT_ENCODING 0x02000000
#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
+| wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING
+#define wxTEXT_ATTR_ALIGNMENT 0x00000080
+#define wxTEXT_ATTR_LEFT_INDENT 0x00000100
+#define wxTEXT_ATTR_RIGHT_INDENT 0x00000200
+#define wxTEXT_ATTR_TABS 0x00000400
+
+// 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
\end{verbatim}
}
-\latexignore{\rtfignore{\wxheading{Members}}}
+The following styles can be passed to wxTextAttr::SetBulletStyle:
+
+{\small
+\begin{verbatim}
+#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
+\end{verbatim}
+}
+Of these, wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is unimplemented.
-\membersection{wxTextAttr::wxTextAttr}\label{wxtextattrctor}
+The following constants can be passed to wxTextAttr::SetLineSpacing:
+
+{\small
+\begin{verbatim}
+#define wxTEXT_ATTR_LINE_SPACING_NORMAL 10
+#define wxTEXT_ATTR_LINE_SPACING_HALF 15
+#define wxTEXT_ATTR_LINE_SPACING_TWICE 20
+\end{verbatim}
+}
+
+The following styles can be passed to wxTextAttr::SetTextEffects:
+
+{\small
+\begin{verbatim}
+#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
+\end{verbatim}
+}
+
+Of these, only wxTEXT\_ATTR\_EFFECT\_CAPITALS and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH are implemented.
+
+\wxheading{See also}
+
+\helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxRichTextCtrl}{wxrichtextctrl}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxTextAttr::wxTextAttr}\label{wxtextattrwxtextattr}
\func{}{wxTextAttr}{\void}
-\func{}{wxTextAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack = wxNullColour},
- \param{const wxFont\& }{font = wxNullFont}, \param{wxTextAttrAlignment }{alignment = wxTEXT\_ALIGNMENT\_DEFAULT}}
+\func{}{wxTextAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack = wxNullColour}, \param{const wxFont\& }{font = wxNullFont}, \param{wxTextAttrAlignment }{alignment = wxTEXT\_ALIGNMENT\_DEFAULT}}
+
+\func{}{wxTextAttr}{\param{const wxTextAttr\& }{attr}}
-The constructors initialize one or more of the text foreground colour, background
-colour, font, and alignment. The values not initialized in the constructor can be set
-later, otherwise \helpref{wxTextCtrl::SetStyle}{wxtextctrlsetstyle} will use
-the default values for them.
+Constructors.
+\membersection{wxTextAttr::Apply}\label{wxtextattrapply}
+
+\func{bool}{Apply}{\param{const wxTextAttr\& }{style}, \param{const wxTextAttr* }{compareWith = NULL}}
+
+Applies the attributes in {\it style} to the original object, but not those attributes from {\it style} that are the same as those in {\it compareWith} (if passed).
+
+\membersection{wxTextAttr::CreateFont}\label{wxtextattrcreatefont}
+
+\constfunc{wxFont}{CreateFont}{\void}
+
+Creates a font from the font attributes.
\membersection{wxTextAttr::GetAlignment}\label{wxtextattrgetalignment}
\constfunc{wxTextAttrAlignment}{GetAlignment}{\void}
-Returns the paragraph alignment.
-
+Returns the alignment flags.
+See \helpref{wxTextAttr::SetAlignment}{wxtextattrsetalignment} for a list of available styles.
\membersection{wxTextAttr::GetBackgroundColour}\label{wxtextattrgetbackgroundcolour}
\constfunc{const wxColour\&}{GetBackgroundColour}{\void}
-Return the background colour specified by this attribute.
+Returns the background colour.
+
+\membersection{wxTextAttr::GetBulletFont}\label{wxtextattrgetbulletfont}
+
+\constfunc{const wxString\&}{GetBulletFont}{\void}
+
+Returns a string containing the name of the font associated with the bullet symbol.
+Only valid for attributes with wxTEXT\_ATTR\_BULLET\_SYMBOL.
+\membersection{wxTextAttr::GetBulletName}\label{wxtextattrgetbulletname}
+
+\constfunc{const wxString\&}{GetBulletName}{\void}
+
+Returns the standard bullet name, applicable if the bullet style is wxTEXT\_ATTR\_BULLET\_STYLE\_STANDARD.
+Currently the following standard bullet names are supported:
+
+\begin{itemize}\itemsep=0pt
+\item {\tt standard/circle}
+\item {\tt standard/square}
+\item {\tt standard/diamond}
+\item {\tt standard/triangle}
+\end{itemize}
+
+For wxRichTextCtrl users only: if you wish your rich text controls to support further bullet graphics, you can derive a
+class from wxRichTextRenderer or wxRichTextStdRenderer, override {\tt DrawStandardBullet} and {\tt EnumerateStandardBulletNames}, and
+set an instance of the class using \helpref{wxRichTextBuffer::SetRenderer}{wxrichtextbuffersetrenderer}.
+
+\membersection{wxTextAttr::GetBulletNumber}\label{wxtextattrgetbulletnumber}
+
+\constfunc{int}{GetBulletNumber}{\void}
+
+Returns the bullet number.
+
+\membersection{wxTextAttr::GetBulletStyle}\label{wxtextattrgetbulletstyle}
+
+\constfunc{int}{GetBulletStyle}{\void}
+
+Returns the bullet style.
+See \helpref{wxTextAttr::SetBulletStyle}{wxtextattrsetbulletstyle} for a list of available styles.
+
+\membersection{wxTextAttr::GetBulletText}\label{wxtextattrgetbullettext}
+
+\constfunc{const wxString\&}{GetBulletText}{\void}
+
+Returns the bullet text, which could be a symbol, or (for example) cached outline text.
+
+\membersection{wxTextAttr::GetCharacterStyleName}\label{wxtextattrgetcharacterstylename}
+
+\constfunc{const wxString\&}{GetCharacterStyleName}{\void}
+
+Returns the name of the character style.
+
+\membersection{wxTextAttr::GetFlags}\label{wxtextattrgetflags}
+
+\constfunc{long}{GetFlags}{\void}
+
+Returns flags indicating which attributes are applicable.
+See \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags} for a list of available flags.
\membersection{wxTextAttr::GetFont}\label{wxtextattrgetfont}
-\constfunc{const wxFont\&}{GetFont}{\void}
+\constfunc{wxFont}{GetFont}{\void}
+
+Creates and returns a font specified by the font attributes in the wxTextAttr object. Note that
+wxTextAttr does not store a wxFont object, so this is only a temporary font. For greater
+efficiency, access the font attributes directly.
+
+\membersection{wxTextAttr::GetFontAttributes}\label{wxtextattrgetfontattributes}
+
+\func{bool}{GetFontAttributes}{\param{const wxFont\& }{font}, \param{int}{ flags = wxTEXT\_ATTR\_FONT}}
+
+Gets the font attributes from the given font, using only the attributes specified by {\it flags}.
+
+\membersection{wxTextAttr::GetFontEncoding}\label{wxtextattrgetfontencoding}
+
+\constfunc{wxFontEncoding}{GetFontEncoding}{\void}
+
+Returns the font encoding.
+
+\membersection{wxTextAttr::GetFontFaceName}\label{wxtextattrgetfontfacename}
+
+\constfunc{const wxString\&}{GetFontFaceName}{\void}
+
+Returns the font face name.
+
+\membersection{wxTextAttr::GetFontSize}\label{wxtextattrgetfontsize}
+
+\constfunc{int}{GetFontSize}{\void}
+
+Returns the font size in points.
+
+\membersection{wxTextAttr::GetFontStyle}\label{wxtextattrgetfontstyle}
+
+\constfunc{int}{GetFontStyle}{\void}
+
+Returns the font style.
-Return the text font specified by this attribute.
+\membersection{wxTextAttr::GetFontUnderlined}\label{wxtextattrgetfontunderlined}
+\constfunc{bool}{GetFontUnderlined}{\void}
+
+Returns \true if the font is underlined.
+
+\membersection{wxTextAttr::GetFontWeight}\label{wxtextattrgetfontweight}
+
+\constfunc{int}{GetFontWeight}{\void}
+
+Returns the font weight.
\membersection{wxTextAttr::GetLeftIndent}\label{wxtextattrgetleftindent}
-\constfunc{int}{GetLeftIndent}{\void}
+\constfunc{long}{GetLeftIndent}{\void}
Returns the left indent in tenths of a millimetre.
-
\membersection{wxTextAttr::GetLeftSubIndent}\label{wxtextattrgetleftsubindent}
-\constfunc{int}{GetLeftSubIndent}{\void}
+\constfunc{long}{GetLeftSubIndent}{\void}
-Returns the left sub indent for all lines but the first line in a paragraph in
-tenths of a millimetre.
+Returns the left sub-indent in tenths of a millimetre.
+\membersection{wxTextAttr::GetLineSpacing}\label{wxtextattrgetlinespacing}
-\membersection{wxTextAttr::GetRightIndent}\label{wxtextattrgetrightindent}
+\constfunc{int}{GetLineSpacing}{\void}
+
+Returns the line spacing value, one of wxTEXT\_ATTR\_LINE\_SPACING\_NORMAL,
+wxTEXT\_ATTR\_LINE\_SPACING\_HALF, and wxTEXT\_ATTR\_LINE\_SPACING\_TWICE.
+
+\membersection{wxTextAttr::GetListStyleName}\label{wxtextattrgetliststylename}
+
+\constfunc{const wxString\&}{GetListStyleName}{\void}
+
+Returns the name of the list style.
+
+\membersection{wxTextAttr::GetOutlineLevel}\label{wxtextattrgetoutlinelevel}
+
+\constfunc{bool}{GetOutlineLevel}{\void}
+
+Returns the outline level.
+
+\membersection{wxTextAttr::GetParagraphSpacingAfter}\label{wxtextattrgetparagraphspacingafter}
+
+\constfunc{int}{GetParagraphSpacingAfter}{\void}
+
+Returns the space in tenths of a millimeter after the paragraph.
+
+\membersection{wxTextAttr::GetParagraphSpacingBefore}\label{wxtextattrgetparagraphspacingbefore}
+
+\constfunc{int}{GetParagraphSpacingBefore}{\void}
+
+Returns the space in tenths of a millimeter before the paragraph.
-\constfunc{int}{GetRightIndent}{\void}
+\membersection{wxTextAttr::GetParagraphStyleName}\label{wxtextattrgetparagraphstylename}
-Returns the right indent in tenths of a millimetre.
+\constfunc{const wxString\&}{GetParagraphStyleName}{\void}
+Returns the name of the paragraph style.
+
+\membersection{wxTextAttr::GetRightIndent}\label{wxtextattrgetrightindent}
+
+\constfunc{long}{GetRightIndent}{\void}
+
+Returns the right indent in tenths of a millimeter.
\membersection{wxTextAttr::GetTabs}\label{wxtextattrgettabs}
\constfunc{const wxArrayInt\&}{GetTabs}{\void}
-Returns the array of integers representing the tab stops. Each
-array element specifies the tab stop in tenths of a millimetre.
-
+Returns an array of tab stops, each expressed in tenths of a millimeter. Each stop
+is measured from the left margin and therefore each value must be larger than the last.
\membersection{wxTextAttr::GetTextColour}\label{wxtextattrgettextcolour}
\constfunc{const wxColour\&}{GetTextColour}{\void}
-Return the text colour specified by this attribute.
+Returns the text foreground colour.
+
+\membersection{wxTextAttr::GetTextEffectFlags}\label{wxtextattrgettexteffectflags}
+
+\constfunc{int}{GetTextEffectFlags}{\void}
+
+Returns the text effect bits of interest. See \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags} for further information.
+
+\membersection{wxTextAttr::GetTextEffects}\label{wxtextattrgettexteffects}
+\constfunc{int}{GetTextEffects}{\void}
+
+Returns the text effects, a bit list of styles. See \helpref{wxTextAttr::SetTextEffects}{wxtextattrsettexteffects} for
+details.
+
+\membersection{wxTextAttr::GetURL}\label{wxtextattrgeturl}
+
+\constfunc{const wxString\&}{GetURL}{\void}
+
+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.
+
+\membersection{wxTextAttr::HasAlignment}\label{wxtextattrhasalignment}
+
+\constfunc{bool}{HasAlignment}{\void}
+
+Returns \true if the attribute object specifies alignment.
\membersection{wxTextAttr::HasBackgroundColour}\label{wxtextattrhasbackgroundcolour}
\constfunc{bool}{HasBackgroundColour}{\void}
-Returns {\tt true} if this style specifies the background colour to use.
+Returns \true if the attribute object specifies a background colour.
+
+\membersection{wxTextAttr::HasBulletName}\label{wxtextattrhasbulletname}
+
+\constfunc{bool}{HasBulletName}{\void}
+Returns \true if the attribute object specifies a standard bullet name.
+
+\membersection{wxTextAttr::HasBulletNumber}\label{wxtextattrhasbulletnumber}
+
+\constfunc{bool}{HasBulletNumber}{\void}
+
+Returns \true if the attribute object specifies a bullet number.
+
+\membersection{wxTextAttr::HasBulletStyle}\label{wxtextattrhasbulletstyle}
+
+\constfunc{bool}{HasBulletStyle}{\void}
+
+Returns \true if the attribute object specifies a bullet style.
+
+\membersection{wxTextAttr::HasBulletText}\label{wxtextattrhasbullettext}
+
+\constfunc{bool}{HasBulletText}{\void}
+
+Returns \true if the attribute object specifies bullet text (usually specifying a symbol).
+
+\membersection{wxTextAttr::HasCharacterStyleName}\label{wxtextattrhascharacterstylename}
+
+\constfunc{bool}{HasCharacterStyleName}{\void}
+
+Returns \true if the attribute object specifies a character style name.
+
+\membersection{wxTextAttr::HasFontEncoding}\label{wxtextattrhasfontencoding}
+
+\constfunc{bool}{HasFontEncoding}{\void}
+
+Returns \true if the attribute object specifies an encoding.
+
+\membersection{wxTextAttr::HasFontFaceName}\label{wxtextattrhasfontfacename}
+
+\constfunc{bool}{HasFontFaceName}{\void}
+
+Returns \true if the attribute object specifies a font face name.
+
+\membersection{wxTextAttr::HasFlag}\label{wxtextattrhasflag}
+
+\constfunc{bool}{HasFlag}{\param{long }{flag}}
+
+Returns \true if the {\it flag} is present in the attribute object's flag bitlist.
\membersection{wxTextAttr::HasFont}\label{wxtextattrhasfont}
\constfunc{bool}{HasFont}{\void}
-Returns {\tt true} if this style specifies the font to use.
+Returns \true if the attribute object specifies any font attributes.
+
+\membersection{wxTextAttr::HasFontItalic}\label{wxtextattrhasfontitalic}
+
+\constfunc{bool}{HasFontItalic}{\void}
+
+Returns \true if the attribute object specifies italic style.
+
+\membersection{wxTextAttr::HasFontUnderlined}\label{wxtextattrhasfontunderlined}
+
+\constfunc{bool}{HasFontUnderlined}{\void}
+
+Returns \true if the attribute object specifies either underlining or no underlining.
+
+\membersection{wxTextAttr::HasURL}\label{wxtextattrhasurl}
+
+\constfunc{bool}{HasURL}{\void}
+
+Returns \true if the attribute object specifies a URL.
+
+\membersection{wxTextAttr::HasFontWeight}\label{wxtextattrhasfontweight}
+
+\constfunc{bool}{HasFontWeight}{\void}
+
+Returns \true if the attribute object specifies font weight (bold, light or normal).
+
+\membersection{wxTextAttr::HasLeftIndent}\label{wxtextattrhasleftindent}
+
+\constfunc{bool}{HasLeftIndent}{\void}
+
+Returns \true if the attribute object specifies a left indent.
+\membersection{wxTextAttr::HasLineSpacing}\label{wxtextattrhaslinespacing}
+
+\constfunc{bool}{HasLineSpacing}{\void}
+
+Returns \true if the attribute object specifies line spacing.
+
+\membersection{wxTextAttr::HasListStyleName}\label{wxtextattrhasliststylename}
+
+\constfunc{bool}{HasListStyleName}{\void}
+
+Returns \true if the attribute object specifies a list style name.
+
+\membersection{wxTextAttr::HasOutlineLevel}\label{wxtextattrhasoutlinelevel}
+
+\constfunc{bool}{HasOutlineLevel}{\void}
+
+Returns \true if the attribute object specifies an outline level.
+
+\membersection{wxTextAttr::HasPageBreak}\label{wxtextattrhaspagebreak}
+
+\constfunc{bool}{HasPageBreak}{\void}
+
+Returns \true if the attribute object specifies a page break before this paragraph.
+
+\membersection{wxTextAttr::HasParagraphSpacingAfter}\label{wxtextattrhasparagraphspacingafter}
+
+\constfunc{bool}{HasParagraphSpacingAfter}{\void}
+
+Returns \true if the attribute object specifies spacing after a paragraph.
+
+\membersection{wxTextAttr::HasParagraphSpacingBefore}\label{wxtextattrhasparagraphspacingbefore}
+
+\constfunc{bool}{HasParagraphSpacingBefore}{\void}
+
+Returns \true if the attribute object specifies spacing before a paragraph.
+
+\membersection{wxTextAttr::HasParagraphStyleName}\label{wxtextattrhasparagraphstylename}
+
+\constfunc{bool}{HasParagraphStyleName}{\void}
+
+Returns \true if the attribute object specifies a paragraph style name.
+
+\membersection{wxTextAttr::HasRightIndent}\label{wxtextattrhasrightindent}
+
+\constfunc{bool}{HasRightIndent}{\void}
+
+Returns \true if the attribute object specifies a right indent.
+
+\membersection{wxTextAttr::HasFontSize}\label{wxtextattrhasfontsize}
+
+\constfunc{bool}{HasFontSize}{\void}
+
+Returns \true if the attribute object specifies a font point size.
+
+\membersection{wxTextAttr::HasTabs}\label{wxtextattrhastabs}
+
+\constfunc{bool}{HasTabs}{\void}
+
+Returns \true if the attribute object specifies tab stops.
\membersection{wxTextAttr::HasTextColour}\label{wxtextattrhastextcolour}
\constfunc{bool}{HasTextColour}{\void}
-Returns {\tt true} if this style specifies the foreground colour to use.
+Returns \true if the attribute object specifies a text foreground colour.
+\membersection{wxTextAttr::HasTextEffects}\label{wxtextattrhastexteffects}
-\membersection{wxTextAttr::GetFlags}\label{wxtextattrgetflags}
+\constfunc{bool}{HasTextEffects}{\void}
+
+Returns \true if the attribute object specifies text effects.
-\func{long}{GetFlags}{\void}
+\membersection{wxTextAttr::IsCharacterStyle}\label{wxtextattrischaracterstyle}
-Returns a bitlist indicating which attributes will be set.
+\constfunc{bool}{IsCharacterStyle}{\void}
+Returns \true if the object represents a character style, that is,
+the flags specify a font or a text background or foreground colour.
\membersection{wxTextAttr::IsDefault}\label{wxtextattrisdefault}
\constfunc{bool}{IsDefault}{\void}
-Returns {\tt true} if this style specifies any non-default attributes.
+Returns \false if we have any attributes set, \true otherwise.
+
+\membersection{wxTextAttr::IsParagraphStyle}\label{wxtextattrisparagraphstyle}
+
+\constfunc{bool}{IsParagraphStyle}{\void}
+Returns \true if the object represents a paragraph style, that is,
+the flags specify alignment, indentation, tabs, paragraph spacing, or
+bullet style.
\membersection{wxTextAttr::Merge}\label{wxtextattrmerge}
\membersection{wxTextAttr::SetAlignment}\label{wxtextattrsetalignment}
-\func{void}{SetAlignment}{\param{wxTextAttrAlignment}{ alignment}}
+\func{void}{SetAlignment}{\param{wxTextAttrAlignment }{alignment}}
-Sets the paragraph alignment.
+Sets the paragraph alignment. These are the possible values for {\it alignment}:
+{\small
+\begin{verbatim}
+enum wxTextAttrAlignment
+{
+ wxTEXT_ALIGNMENT_DEFAULT,
+ wxTEXT_ALIGNMENT_LEFT,
+ wxTEXT_ALIGNMENT_CENTRE,
+ wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE,
+ wxTEXT_ALIGNMENT_RIGHT,
+ wxTEXT_ALIGNMENT_JUSTIFIED
+};
+\end{verbatim}
+}
+
+Of these, wxTEXT\_ALIGNMENT\_JUSTIFIED is unimplemented. In future justification may be supported
+when printing or previewing, only.
\membersection{wxTextAttr::SetBackgroundColour}\label{wxtextattrsetbackgroundcolour}
-\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colour}}
+\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colBack}}
Sets the background colour.
+\membersection{wxTextAttr::SetBulletFont}\label{wxtextattrsetbulletfont}
+
+\func{void}{SetBulletFont}{\param{const wxString\& }{font}}
+
+Sets the name of the font associated with the bullet symbol.
+Only valid for attributes with wxTEXT\_ATTR\_BULLET\_SYMBOL.
+
+\membersection{wxTextAttr::SetBulletName}\label{wxtextattrsetbulletname}
+
+\func{void}{SetBulletName}{\param{const wxString\& }{name}}
+
+Sets the standard bullet name, applicable if the bullet style is wxTEXT\_ATTR\_BULLET\_STYLE\_STANDARD.
+See \helpref{wxTextAttr::GetBulletName}{wxtextattrgetbulletname} for a list
+of supported names, and how to expand the range of supported types.
+
+\membersection{wxTextAttr::SetBulletNumber}\label{wxtextattrsetbulletnumber}
+
+\func{void}{SetBulletNumber}{\param{int }{n}}
+
+Sets the bullet number.
+
+\membersection{wxTextAttr::SetBulletStyle}\label{wxtextattrsetbulletstyle}
+
+\func{void}{SetBulletStyle}{\param{int }{style}}
+
+Sets the bullet style. The following styles can be passed:
+
+{\small
+\begin{verbatim}
+#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
+\end{verbatim}
+}
+
+Currently wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is not supported.
+
+\membersection{wxTextAttr::SetBulletText}\label{wxtextattrsetbullettext}
+
+\func{void}{SetBulletText}{\param{const wxString& }{text}}
+
+Sets the bullet text, which could be a symbol, or (for example) cached outline text.
+
+\membersection{wxTextAttr::SetCharacterStyleName}\label{wxtextattrsetcharacterstylename}
+
+\func{void}{SetCharacterStyleName}{\param{const wxString\& }{name}}
+
+Sets the character style name.
\membersection{wxTextAttr::SetFlags}\label{wxtextattrsetflags}
-\func{void}{SetFlags}{\param{long}{ flags}}
+\func{void}{SetFlags}{\param{long }{flags}}
-Pass a bitlist indicating which attributes will be set.
+Sets the flags determining which styles are being specified. The following
+flags can be passed in a bitlist:
+{\small
+\begin{verbatim}
+// Standard wxTextAttr constants
+
+#define wxTEXT_ATTR_TEXT_COLOUR 0x00000001
+#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x00000002
+#define wxTEXT_ATTR_FONT_FACE 0x00000004
+#define wxTEXT_ATTR_FONT_SIZE 0x00000008
+#define wxTEXT_ATTR_FONT_WEIGHT 0x00000010
+#define wxTEXT_ATTR_FONT_ITALIC 0x00000020
+#define wxTEXT_ATTR_FONT_UNDERLINE 0x00000040
+#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 0x00000080
+#define wxTEXT_ATTR_LEFT_INDENT 0x00000100
+#define wxTEXT_ATTR_RIGHT_INDENT 0x00000200
+#define wxTEXT_ATTR_TABS 0x00000400
+
+// 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
+\end{verbatim}
+}
\membersection{wxTextAttr::SetFont}\label{wxtextattrsetfont}
\func{void}{SetFont}{\param{const wxFont\&}{ font}}
-Sets the text font.
+Sets the attributes for the given font. Note that wxTextAttr does not store an actual wxFont object.
+
+\membersection{wxTextAttr::SetFontEncoding}\label{wxtextattrsetfontencoding}
+
+\func{void}{SetFontEncoding}{\param{wxFontEncoding }{encoding}}
+
+Sets the font encoding.
+
+\membersection{wxTextAttr::SetFontFaceName}\label{wxtextattrsetfontfacename}
+
+\func{void}{SetFontFaceName}{\param{const wxString\& }{faceName}}
+
+Sets the paragraph alignment.
+
+\membersection{wxTextAttr::SetFontSize}\label{wxtextattrsetfontsize}
+
+\func{void}{SetFontSize}{\param{int }{pointSize}}
+
+Sets the font size in points.
+
+\membersection{wxTextAttr::SetFontStyle}\label{wxtextattrsetfontstyle}
+
+\func{void}{SetFontStyle}{\param{int }{fontStyle}}
+
+Sets the font style (normal, italic or slanted).
+
+\membersection{wxTextAttr::SetFontUnderlined}\label{wxtextattrsetfontunderlined}
+\func{void}{SetFontUnderlined}{\param{bool }{underlined}}
+
+Sets the font underlining.
+
+\membersection{wxTextAttr::SetFontWeight}\label{wxtextattrsetfontweight}
+
+\func{void}{SetFontWeight}{\param{int }{fontWeight}}
+
+Sets the font weight.
\membersection{wxTextAttr::SetLeftIndent}\label{wxtextattrsetleftindent}
\func{void}{SetLeftIndent}{\param{int }{indent}, \param{int }{subIndent = 0}}
-Sets the left indent in tenths of a millimetre.
-subIndent sets the indent for all lines but the first line in a paragraph
-relative to the first line.
+Sets the left indent and left subindent in tenths of a millimetre.
+
+The sub-indent is an offset from the left of the paragraph, and is used for all but the
+first line in a paragraph. A positive value will cause the first line to appear to the left
+of the subsequent lines, and a negative value will cause the first line to be indented
+relative to the subsequent lines.
+
+wxRichTextBuffer uses indentation to render a bulleted item. The left indent is the distance between
+the margin and the bullet. The content of the paragraph, including the first line, starts
+at leftMargin + leftSubIndent. So the distance between the left edge of the bullet and the
+left of the actual paragraph is leftSubIndent.
+
+\membersection{wxTextAttr::SetLineSpacing}\label{wxtextattrsetlinespacing}
+
+\func{void}{SetLineSpacing}{\param{int }{spacing}}
+
+Sets the line spacing. {\it 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:
+
+{\small
+\begin{verbatim}
+#define wxTEXT_ATTR_LINE_SPACING_NORMAL 10
+#define wxTEXT_ATTR_LINE_SPACING_HALF 15
+#define wxTEXT_ATTR_LINE_SPACING_TWICE 20
+\end{verbatim}
+}
+
+\membersection{wxTextAttr::SetListStyleName}\label{wxtextattrsetliststylename}
+
+\func{void}{SetListStyleName}{\param{const wxString\& }{name}}
+
+Sets the list style name.
+
+\membersection{wxTextAttr::SetOutlineLevel}\label{wxtextattrsetoutlinelevel}
+\func{void}{SetOutlineLevel}{\param{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.
+
+\membersection{wxTextAttr::SetPageBreak}\label{wxtextattrsetpagebreak}
+
+\func{void}{SetPageBreak}{\param{bool}{ pageBreak = true}}
+
+Specifies a page break before this paragraph.
+
+\membersection{wxTextAttr::SetParagraphSpacingAfter}\label{wxtextattrsetparagraphspacingafter}
+
+\func{void}{SetParagraphSpacingAfter}{\param{int }{spacing}}
+
+Sets the spacing after a paragraph, in tenths of a millimetre.
+
+\membersection{wxTextAttr::SetParagraphSpacingBefore}\label{wxtextattrsetparagraphspacingbefore}
+
+\func{void}{SetParagraphSpacingBefore}{\param{int }{spacing}}
+
+Sets the spacing before a paragraph, in tenths of a millimetre.
+
+\membersection{wxTextAttr::SetParagraphStyleName}\label{wxtextattrsetparagraphstylename}
+
+\func{void}{SetParagraphStyleName}{\param{const wxString\& }{name}}
+
+Sets the name of the paragraph style.
\membersection{wxTextAttr::SetRightIndent}\label{wxtextattrsetrightindent}
Sets the right indent in tenths of a millimetre.
-
\membersection{wxTextAttr::SetTabs}\label{wxtextattrsettabs}
-\func{void}{SetTabs}{\param{const wxArrayInt\&}{ tabs}}
-
-Sets the array of integers representing the tab stops. Each
-array element specifies the tab stop in tenths of a millimetre.
+\func{void}{SetTabs}{\param{const wxArrayInt\& }{tabs}}
+Sets the tab stops, expressed in tenths of a millimetre.
+Each stop is measured from the left margin and therefore each value must be larger than the last.
\membersection{wxTextAttr::SetTextColour}\label{wxtextattrsettextcolour}
-\func{void}{SetTextColour}{\param{const wxColour\& }{colour}}
+\func{void}{SetTextColour}{\param{const wxColour\& }{colText}}
+
+Sets the text foreground colout.
+
+\membersection{wxTextAttr::SetTextEffectFlags}\label{wxtextattrsettexteffectflags}
+
+\func{void}{SetTextEffectFlags}{\param{int }{flags}}
+
+Sets the text effect bits of interest. You should also pass wxTEXT\_ATTR\_EFFECTS to \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags}.
+See \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags} for further information.
+
+\membersection{wxTextAttr::SetTextEffects}\label{wxtextattrsettexteffects}
+
+\func{void}{SetTextEffects}{\param{int }{effects}}
+
+Sets the text effects, a bit list of styles.
+
+The following styles can be passed:
+
+{\small
+\begin{verbatim}
+#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
+\end{verbatim}
+}
+
+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 \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags}, and call\rtfsp
+\helpref{wxTextAttr::SetTextEffectFlags}{wxtextattrsettexteffectflags} with the styles (taken from the
+above set) that you are interested in setting.
+
+\membersection{wxTextAttr::SetURL}\label{wxtextattrseturl}
+
+\func{void}{SetURL}{\param{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.
+
+\membersection{wxTextAttr::operator=}\label{wxtextattroperatorassign}
+
+\func{void operator}{operator=}{\param{const wxTextAttr\& }{attr}}
+
+Assignment from a \helpref{wxTextAttr}{wxtextattr} object.
-Sets the text colour.