12f5e1e78f
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1033 lines
31 KiB
Objective-C
1033 lines
31 KiB
Objective-C
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: richtext/richtextbuffer.h
|
|
// Purpose: interface of wxRichTextBuffer
|
|
// Author: wxWidgets team
|
|
// RCS-ID: $Id$
|
|
// Licence: wxWindows license
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
@class wxRichTextBuffer
|
|
|
|
This class represents the whole buffer associated with a wxRichTextCtrl.
|
|
|
|
@library{wxrichtext}
|
|
@category{richtext}
|
|
|
|
@see wxTextAttr, wxRichTextCtrl
|
|
*/
|
|
class wxRichTextBuffer
|
|
{
|
|
public:
|
|
//@{
|
|
/**
|
|
Default constructors.
|
|
*/
|
|
wxRichTextBuffer(const wxRichTextBuffer& obj);
|
|
wxRichTextBuffer();
|
|
//@}
|
|
|
|
/**
|
|
Destructor.
|
|
*/
|
|
~wxRichTextBuffer();
|
|
|
|
/**
|
|
Adds an event handler to the buffer's list of handlers. A buffer associated with
|
|
a contol has the control as the only event handler, but the application is free
|
|
to add more if further notification is required. All handlers are notified
|
|
of an event originating from the buffer, such as the replacement of a style
|
|
sheet
|
|
during loading. The buffer never deletes any of the event handlers, unless
|
|
RemoveEventHandler() is
|
|
called with @true as the second argument.
|
|
*/
|
|
bool AddEventHandler(wxEvtHandler* handler);
|
|
|
|
/**
|
|
Adds a file handler.
|
|
*/
|
|
void AddHandler(wxRichTextFileHandler* handler);
|
|
|
|
/**
|
|
Adds a paragraph of text.
|
|
*/
|
|
wxRichTextRange AddParagraph(const wxString& text);
|
|
|
|
/**
|
|
Returns @true if the buffer is currently collapsing commands into a single
|
|
notional command.
|
|
*/
|
|
bool BatchingUndo() const;
|
|
|
|
/**
|
|
Begins using alignment.
|
|
*/
|
|
bool BeginAlignment(wxTextAttrAlignment alignment);
|
|
|
|
/**
|
|
Begins collapsing undo/redo commands. Note that this may not work properly
|
|
if combining commands that delete or insert content, changing ranges for
|
|
subsequent actions.
|
|
@a cmdName should be the name of the combined command that will appear
|
|
next to Undo and Redo in the edit menu.
|
|
*/
|
|
bool BeginBatchUndo(const wxString& cmdName);
|
|
|
|
/**
|
|
Begin applying bold.
|
|
*/
|
|
bool BeginBold();
|
|
|
|
/**
|
|
Begins applying the named character style.
|
|
*/
|
|
bool BeginCharacterStyle(const wxString& characterStyle);
|
|
|
|
/**
|
|
Begins using this font.
|
|
*/
|
|
bool BeginFont(const wxFont& font);
|
|
|
|
/**
|
|
Begins using the given point size.
|
|
*/
|
|
bool BeginFontSize(int pointSize);
|
|
|
|
/**
|
|
Begins using italic.
|
|
*/
|
|
bool BeginItalic();
|
|
|
|
/**
|
|
Begin using @a leftIndent for the left indent, and optionally @a leftSubIndent
|
|
for
|
|
the sub-indent. Both are expressed 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.
|
|
*/
|
|
bool BeginLeftIndent(int leftIndent, int leftSubIndent = 0);
|
|
|
|
/**
|
|
Begins line spacing using the specified value. @e 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:
|
|
*/
|
|
bool BeginLineSpacing(int lineSpacing);
|
|
|
|
/**
|
|
Begins using a specified list style. Optionally, you can also pass a level and
|
|
a number.
|
|
*/
|
|
bool BeginListStyle(const wxString& listStyle, int level = 1,
|
|
int number = 1);
|
|
|
|
/**
|
|
Begins a numbered bullet. This call will be needed for each item in the list,
|
|
and the
|
|
application should take care of incrementing the numbering.
|
|
@a bulletNumber is a number, usually starting with 1.
|
|
@a leftIndent and @a leftSubIndent are values in tenths of a millimetre.
|
|
@a bulletStyle is a bitlist of the following values:
|
|
|
|
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.
|
|
*/
|
|
bool BeginNumberedBullet(int bulletNumber, int leftIndent,
|
|
int leftSubIndent,
|
|
int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_ARABIC|wxTEXT_ATTR_BULLET_STYLE_PERIOD);
|
|
|
|
/**
|
|
Begins paragraph spacing; pass the before-paragraph and after-paragraph spacing
|
|
in tenths of
|
|
a millimetre.
|
|
*/
|
|
bool BeginParagraphSpacing(int before, int after);
|
|
|
|
/**
|
|
Begins applying the named paragraph style.
|
|
*/
|
|
bool BeginParagraphStyle(const wxString& paragraphStyle);
|
|
|
|
/**
|
|
Begins a right indent, specified in tenths of a millimetre.
|
|
*/
|
|
bool BeginRightIndent(int rightIndent);
|
|
|
|
/**
|
|
Begins applying a standard bullet, using one of the standard bullet names
|
|
(currently @c standard/circle or @c standard/square.
|
|
See BeginNumberedBullet() for an explanation of how indentation is used to
|
|
render the bulleted paragraph.
|
|
*/
|
|
bool BeginStandardBullet(const wxString& bulletName,
|
|
int leftIndent,
|
|
int leftSubIndent,
|
|
int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_STANDARD);
|
|
|
|
/**
|
|
Begins using a specified style.
|
|
*/
|
|
bool BeginStyle(const wxTextAttr& style);
|
|
|
|
/**
|
|
Begins suppressing undo/redo commands. The way undo is suppressed may be
|
|
implemented
|
|
differently by each command. If not dealt with by a command implementation, then
|
|
it will be implemented automatically by not storing the command in the undo
|
|
history
|
|
when the action is submitted to the command processor.
|
|
*/
|
|
bool BeginSuppressUndo();
|
|
|
|
/**
|
|
Begins applying a symbol bullet, using a character from the current font. See
|
|
BeginNumberedBullet() for
|
|
an explanation of how indentation is used to render the bulleted paragraph.
|
|
*/
|
|
bool BeginSymbolBullet(wxChar symbol, int leftIndent,
|
|
int leftSubIndent,
|
|
int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL);
|
|
|
|
/**
|
|
Begins using the specified text foreground colour.
|
|
*/
|
|
bool BeginTextColour(const wxColour& colour);
|
|
|
|
/**
|
|
Begins applying wxTEXT_ATTR_URL to the content. Pass a URL and optionally, a
|
|
character style to apply,
|
|
since it is common to mark a URL with a familiar style such as blue text with
|
|
underlining.
|
|
*/
|
|
bool BeginURL(const wxString& url,
|
|
const wxString& characterStyle = wxEmptyString);
|
|
|
|
/**
|
|
Begins using underline.
|
|
*/
|
|
bool BeginUnderline();
|
|
|
|
/**
|
|
Returns @true if content can be pasted from the clipboard.
|
|
*/
|
|
bool CanPasteFromClipboard() const;
|
|
|
|
/**
|
|
Cleans up the file handlers.
|
|
*/
|
|
void CleanUpHandlers();
|
|
|
|
/**
|
|
Clears the buffer.
|
|
*/
|
|
void Clear();
|
|
|
|
//@{
|
|
/**
|
|
Clears the list style from the given range, clearing list-related attributes
|
|
and applying any named paragraph style associated with each paragraph.
|
|
@a flags is a bit list of the following:
|
|
wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable.
|
|
See also SetListStyle(), PromoteList(), NumberList().
|
|
*/
|
|
bool ClearListStyle(const wxRichTextRange& range,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
|
|
bool ClearListStyle(const wxRichTextRange& range,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
|
|
//@}
|
|
|
|
/**
|
|
Clears the style stack.
|
|
*/
|
|
void ClearStyleStack();
|
|
|
|
/**
|
|
Clones the object.
|
|
*/
|
|
wxRichTextObject* Clone() const;
|
|
|
|
/**
|
|
Copies the given buffer.
|
|
*/
|
|
void Copy(const wxRichTextBuffer& obj);
|
|
|
|
/**
|
|
Copy the given range to the clipboard.
|
|
*/
|
|
bool CopyToClipboard(const wxRichTextRange& range);
|
|
|
|
/**
|
|
Submits a command to delete the given range.
|
|
*/
|
|
bool DeleteRangeWithUndo(const wxRichTextRange& range,
|
|
wxRichTextCtrl* ctrl);
|
|
|
|
//@{
|
|
/**
|
|
Dumps the contents of the buffer for debugging purposes.
|
|
*/
|
|
void Dump();
|
|
void Dump(wxTextOutputStream& stream);
|
|
//@}
|
|
|
|
/**
|
|
Ends alignment.
|
|
*/
|
|
bool EndAlignment();
|
|
|
|
/**
|
|
Ends all styles that have been started with a Begin... command.
|
|
*/
|
|
bool EndAllStyles();
|
|
|
|
/**
|
|
Ends collapsing undo/redo commands, and submits the combined command.
|
|
*/
|
|
bool EndBatchUndo();
|
|
|
|
/**
|
|
Ends using bold.
|
|
*/
|
|
bool EndBold();
|
|
|
|
/**
|
|
Ends using the named character style.
|
|
*/
|
|
bool EndCharacterStyle();
|
|
|
|
/**
|
|
Ends using a font.
|
|
*/
|
|
bool EndFont();
|
|
|
|
/**
|
|
Ends using a point size.
|
|
*/
|
|
bool EndFontSize();
|
|
|
|
/**
|
|
Ends using italic.
|
|
*/
|
|
bool EndItalic();
|
|
|
|
/**
|
|
Ends using a left indent.
|
|
*/
|
|
bool EndLeftIndent();
|
|
|
|
/**
|
|
Ends using a line spacing.
|
|
*/
|
|
bool EndLineSpacing();
|
|
|
|
/**
|
|
Ends using a specified list style.
|
|
*/
|
|
bool EndListStyle();
|
|
|
|
/**
|
|
Ends a numbered bullet.
|
|
*/
|
|
bool EndNumberedBullet();
|
|
|
|
/**
|
|
Ends paragraph spacing.
|
|
*/
|
|
bool EndParagraphSpacing();
|
|
|
|
/**
|
|
Ends applying a named character style.
|
|
*/
|
|
bool EndParagraphStyle();
|
|
|
|
/**
|
|
Ends using a right indent.
|
|
*/
|
|
bool EndRightIndent();
|
|
|
|
/**
|
|
Ends using a standard bullet.
|
|
*/
|
|
bool EndStandardBullet();
|
|
|
|
/**
|
|
Ends the current style.
|
|
*/
|
|
bool EndStyle();
|
|
|
|
/**
|
|
Ends suppressing undo/redo commands.
|
|
*/
|
|
bool EndSuppressUndo();
|
|
|
|
/**
|
|
Ends using a symbol bullet.
|
|
*/
|
|
bool EndSymbolBullet();
|
|
|
|
/**
|
|
Ends using a text foreground colour.
|
|
*/
|
|
bool EndTextColour();
|
|
|
|
/**
|
|
Ends applying a URL.
|
|
*/
|
|
bool EndURL();
|
|
|
|
/**
|
|
Ends using underline.
|
|
*/
|
|
bool EndUnderline();
|
|
|
|
//@{
|
|
/**
|
|
Finds a handler by name.
|
|
*/
|
|
wxRichTextFileHandler* FindHandler(int imageType);
|
|
wxRichTextFileHandler* FindHandler(const wxString& extension,
|
|
int imageType);
|
|
wxRichTextFileHandler* FindHandler(const wxString& name);
|
|
//@}
|
|
|
|
/**
|
|
Finds a handler by filename or, if supplied, type.
|
|
*/
|
|
wxRichTextFileHandler* FindHandlerFilenameOrType(const wxString& filename,
|
|
int imageType);
|
|
|
|
/**
|
|
Gets the basic (overall) style. This is the style of the whole
|
|
buffer before further styles are applied, unlike the default style, which
|
|
only affects the style currently being applied (for example, setting the default
|
|
style to bold will cause subsequently inserted text to be bold).
|
|
*/
|
|
const wxTextAttr GetBasicStyle() const;
|
|
|
|
/**
|
|
Gets the collapsed command.
|
|
*/
|
|
wxRichTextCommand* GetBatchedCommand() const;
|
|
|
|
/**
|
|
Gets the command processor. A text buffer always creates its own command
|
|
processor when it is
|
|
initialized.
|
|
*/
|
|
wxCommandProcessor* GetCommandProcessor() const;
|
|
|
|
/**
|
|
Returns the current default style, affecting the style currently being applied
|
|
(for example, setting the default
|
|
style to bold will cause subsequently inserted text to be bold).
|
|
*/
|
|
const wxTextAttr GetDefaultStyle() const;
|
|
|
|
/**
|
|
Gets a wildcard incorporating all visible handlers. If @a types is present,
|
|
it will be filled with the file type corresponding to each filter. This can be
|
|
used to determine the type to pass to @ref getextwildcard() LoadFile given a
|
|
selected filter.
|
|
*/
|
|
wxString GetExtWildcard(bool combine = false, bool save = false,
|
|
wxArrayInt* types = NULL);
|
|
|
|
/**
|
|
Returns the list of file handlers.
|
|
*/
|
|
wxList GetHandlers();
|
|
|
|
/**
|
|
Returns the object to be used to render certain aspects of the content, such as
|
|
bullets.
|
|
*/
|
|
static wxRichTextRenderer* GetRenderer();
|
|
|
|
/**
|
|
Gets the attributes at the given position.
|
|
This function gets the combined style - that is, the style you see on the
|
|
screen as a result
|
|
of combining base style, paragraph style and character style attributes. To get
|
|
the character
|
|
or paragraph style alone, use GetUncombinedStyle().
|
|
*/
|
|
bool GetStyle(long position, wxTextAttr& style);
|
|
|
|
/**
|
|
This function gets a style representing the common, combined attributes in the
|
|
given range.
|
|
Attributes which have different values within the specified range will not be
|
|
included the style
|
|
flags.
|
|
The function is used to get the attributes to display in the formatting dialog:
|
|
the user
|
|
can edit the attributes common to the selection, and optionally specify the
|
|
values of further
|
|
attributes to be applied uniformly.
|
|
To apply the edited attributes, you can use SetStyle() specifying
|
|
the wxRICHTEXT_SETSTYLE_OPTIMIZE flag, which will only apply attributes that
|
|
are different
|
|
from the @e combined attributes within the range. So, the user edits the
|
|
effective, displayed attributes
|
|
for the range, but his choice won't be applied unnecessarily to content. As an
|
|
example,
|
|
say the style for a paragraph specifies bold, but the paragraph text doesn't
|
|
specify a weight. The
|
|
combined style is bold, and this is what the user will see on-screen and in the
|
|
formatting
|
|
dialog. The user now specifies red text, in addition to bold. When applying with
|
|
SetStyle, the content font weight attributes won't be changed to bold because
|
|
this is already specified
|
|
by the paragraph. However the text colour attributes @e will be changed to
|
|
show red.
|
|
*/
|
|
bool GetStyleForRange(const wxRichTextRange& range,
|
|
wxTextAttr& style);
|
|
|
|
/**
|
|
Returns the current style sheet associated with the buffer, if any.
|
|
*/
|
|
wxRichTextStyleSheet* GetStyleSheet() const;
|
|
|
|
/**
|
|
Get the size of the style stack, for example to check correct nesting.
|
|
*/
|
|
size_t GetStyleStackSize() const;
|
|
|
|
/**
|
|
Gets the attributes at the given position.
|
|
This function gets the @e uncombined style - that is, the attributes associated
|
|
with the
|
|
paragraph or character content, and not necessarily the combined attributes you
|
|
see on the
|
|
screen. To get the combined attributes, use GetStyle().
|
|
If you specify (any) paragraph attribute in @e style's flags, this function
|
|
will fetch
|
|
the paragraph attributes. Otherwise, it will return the character attributes.
|
|
*/
|
|
bool GetUncombinedStyle(long position, wxTextAttr& style);
|
|
|
|
/**
|
|
Finds the text position for the given position, putting the position in @a
|
|
textPosition if
|
|
one is found. @a pt is in logical units (a zero y position is
|
|
at the beginning of the buffer).
|
|
The function returns one of the following values:
|
|
*/
|
|
int HitTest(wxDC& dc, const wxPoint& pt, long& textPosition);
|
|
|
|
/**
|
|
Initialisation.
|
|
*/
|
|
void Init();
|
|
|
|
/**
|
|
Initialises the standard handlers. Currently, only the plain text
|
|
loading/saving handler
|
|
is initialised by default.
|
|
*/
|
|
void InitStandardHandlers();
|
|
|
|
/**
|
|
Inserts a handler at the front of the list.
|
|
*/
|
|
void InsertHandler(wxRichTextFileHandler* handler);
|
|
|
|
/**
|
|
Submits a command to insert the given image.
|
|
*/
|
|
bool InsertImageWithUndo(long pos,
|
|
const wxRichTextImageBlock& imageBlock,
|
|
wxRichTextCtrl* ctrl);
|
|
|
|
/**
|
|
Submits a command to insert a newline.
|
|
*/
|
|
bool InsertNewlineWithUndo(long pos, wxRichTextCtrl* ctrl);
|
|
|
|
/**
|
|
Submits a command to insert the given text.
|
|
*/
|
|
bool InsertTextWithUndo(long pos, const wxString& text,
|
|
wxRichTextCtrl* ctrl);
|
|
|
|
/**
|
|
Returns @true if the buffer has been modified.
|
|
*/
|
|
bool IsModified() const;
|
|
|
|
//@{
|
|
/**
|
|
Loads content from a file.
|
|
*/
|
|
bool LoadFile(wxInputStream& stream,
|
|
int type = wxRICHTEXT_TYPE_ANY);
|
|
bool LoadFile(const wxString& filename,
|
|
int type = wxRICHTEXT_TYPE_ANY);
|
|
//@}
|
|
|
|
/**
|
|
Marks the buffer as modified or unmodified.
|
|
*/
|
|
void Modify(bool modify = true);
|
|
|
|
//@{
|
|
/**
|
|
Numbers the paragraphs in the given range. Pass flags to determine how the
|
|
attributes are set.
|
|
Either the style definition or the name of the style definition (in the current
|
|
sheet) can be passed.
|
|
@a flags is a bit list of the following:
|
|
wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable.
|
|
wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from @e
|
|
startFrom, otherwise existing attributes are used.
|
|
wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used
|
|
as the level for all paragraphs, otherwise the current indentation will be used.
|
|
See also SetListStyle(), PromoteList(), ClearListStyle().
|
|
*/
|
|
bool NumberList(const wxRichTextRange& range,
|
|
const wxRichTextListStyleDefinition* style,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
|
|
int startFrom = -1,
|
|
int listLevel = -1);
|
|
bool Number(const wxRichTextRange& range,
|
|
const wxString& styleName,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
|
|
int startFrom = -1,
|
|
int listLevel = -1);
|
|
//@}
|
|
|
|
/**
|
|
Pastes the clipboard content to the buffer at the given position.
|
|
*/
|
|
bool PasteFromClipboard(long position);
|
|
|
|
//@{
|
|
/**
|
|
Promotes or demotes the paragraphs in the given range. A positive @a promoteBy
|
|
produces a smaller indent, and a negative number
|
|
produces a larger indent. Pass flags to determine how the attributes are set.
|
|
Either the style definition or the name of the style definition (in the current
|
|
sheet) can be passed.
|
|
@a flags is a bit list of the following:
|
|
wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable.
|
|
wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from @e
|
|
startFrom, otherwise existing attributes are used.
|
|
wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used
|
|
as the level for all paragraphs, otherwise the current indentation will be used.
|
|
See also SetListStyle(), See also SetListStyle(), ClearListStyle().
|
|
*/
|
|
bool PromoteList(int promoteBy, const wxRichTextRange& range,
|
|
const wxRichTextListStyleDefinition* style,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
|
|
int listLevel = -1);
|
|
bool PromoteList(int promoteBy, const wxRichTextRange& range,
|
|
const wxString& styleName,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
|
|
int listLevel = -1);
|
|
//@}
|
|
|
|
/**
|
|
Removes an event handler from the buffer's list of handlers, deleting the
|
|
object if @a deleteHandler is @true.
|
|
*/
|
|
bool RemoveEventHandler(wxEvtHandler* handler,
|
|
bool deleteHandler = false);
|
|
|
|
/**
|
|
Removes a handler.
|
|
*/
|
|
bool RemoveHandler(const wxString& name);
|
|
|
|
/**
|
|
Clears the buffer, adds a new blank paragraph, and clears the command history.
|
|
*/
|
|
void ResetAndClearCommands();
|
|
|
|
//@{
|
|
/**
|
|
Saves content to a file.
|
|
*/
|
|
bool SaveFile(wxOutputStream& stream,
|
|
int type = wxRICHTEXT_TYPE_ANY);
|
|
bool SaveFile(const wxString& filename,
|
|
int type = wxRICHTEXT_TYPE_ANY);
|
|
//@}
|
|
|
|
/**
|
|
Sets the basic (overall) style. This is the style of the whole
|
|
buffer before further styles are applied, unlike the default style, which
|
|
only affects the style currently being applied (for example, setting the default
|
|
style to bold will cause subsequently inserted text to be bold).
|
|
*/
|
|
void SetBasicStyle(const wxTextAttr& style);
|
|
|
|
/**
|
|
Sets the default style, affecting the style currently being applied (for
|
|
example, setting the default
|
|
style to bold will cause subsequently inserted text to be bold).
|
|
This is not cumulative - setting the default style will replace the previous
|
|
default style.
|
|
*/
|
|
void SetDefaultStyle(const wxTextAttr& style);
|
|
|
|
//@{
|
|
/**
|
|
Sets the list attributes for the given range, passing flags to determine how
|
|
the attributes are set.
|
|
Either the style definition or the name of the style definition (in the current
|
|
sheet) can be passed.
|
|
@a flags is a bit list of the following:
|
|
wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable.
|
|
wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from @e
|
|
startFrom, otherwise existing attributes are used.
|
|
wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used
|
|
as the level for all paragraphs, otherwise the current indentation will be used.
|
|
See also NumberList(), PromoteList(), ClearListStyle().
|
|
*/
|
|
bool SetListStyle(const wxRichTextRange& range,
|
|
const wxRichTextListStyleDefinition* style,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
|
|
int startFrom = -1,
|
|
int listLevel = -1);
|
|
bool SetListStyle(const wxRichTextRange& range,
|
|
const wxString& styleName,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
|
|
int startFrom = -1,
|
|
int listLevel = -1);
|
|
//@}
|
|
|
|
/**
|
|
Sets @a renderer as the object to be used to render certain aspects of the
|
|
content, such as bullets.
|
|
You can override default rendering by deriving a new class from
|
|
wxRichTextRenderer or wxRichTextStdRenderer,
|
|
overriding one or more virtual functions, and setting an instance of the class
|
|
using this function.
|
|
*/
|
|
static void SetRenderer(wxRichTextRenderer* renderer);
|
|
|
|
/**
|
|
Sets the attributes for the given range. Pass flags to determine how the
|
|
attributes are set.
|
|
The end point of range is specified as the last character position of the span
|
|
of text.
|
|
So, for example, to set the style for a character at position 5, use the range
|
|
(5,5).
|
|
This differs from the wxRichTextCtrl API, where you would specify (5,6).
|
|
@a flags may contain a bit list of the following values:
|
|
wxRICHTEXT_SETSTYLE_NONE: no style flag.
|
|
wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this operation should be
|
|
undoable.
|
|
wxRICHTEXT_SETSTYLE_OPTIMIZE: specifies that the style should not be applied
|
|
if the
|
|
combined style at this point is already the style in question.
|
|
wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY: specifies that the style should only be
|
|
applied to paragraphs,
|
|
and not the content. This allows content styling to be preserved independently
|
|
from that of e.g. a named paragraph style.
|
|
wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY: specifies that the style should only be
|
|
applied to characters,
|
|
and not the paragraph. This allows content styling to be preserved
|
|
independently from that of e.g. a named paragraph style.
|
|
wxRICHTEXT_SETSTYLE_RESET: resets (clears) the existing style before applying
|
|
the new style.
|
|
wxRICHTEXT_SETSTYLE_REMOVE: removes the specified style. Only the style flags
|
|
are used in this operation.
|
|
*/
|
|
bool SetStyle(const wxRichTextRange& range,
|
|
const wxTextAttr& style,
|
|
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
|
|
|
|
/**
|
|
Sets the current style sheet, if any. This will allow the application to use
|
|
named character and paragraph styles found in the style sheet.
|
|
*/
|
|
void SetStyleSheet(wxRichTextStyleSheet* styleSheet);
|
|
|
|
/**
|
|
Submit an action immediately, or delay it according to whether collapsing is on.
|
|
*/
|
|
bool SubmitAction(wxRichTextAction* action);
|
|
|
|
/**
|
|
Returns @true if undo suppression is currently on.
|
|
*/
|
|
bool SuppressingUndo() const;
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
@class wxRichTextFileHandler
|
|
|
|
This is the base class for file handlers, for loading and/or saving content
|
|
associated with a wxRichTextBuffer.
|
|
|
|
@library{wxrichtext}
|
|
@category{richtext}
|
|
*/
|
|
class wxRichTextFileHandler : public wxObject
|
|
{
|
|
public:
|
|
/**
|
|
Constructor.
|
|
*/
|
|
wxRichTextFileHandler(const wxString& name = wxEmptyString,
|
|
const wxString& ext = wxEmptyString,
|
|
int type = 0);
|
|
|
|
/**
|
|
Override this function and return @true if this handler can we handle @e
|
|
filename. By default,
|
|
this function checks the extension.
|
|
*/
|
|
bool CanHandle(const wxString& filename) const;
|
|
|
|
/**
|
|
Override and return @true if this handler can load content.
|
|
*/
|
|
bool CanLoad() const;
|
|
|
|
/**
|
|
Override and return @true if this handler can save content.
|
|
*/
|
|
bool CanSave() const;
|
|
|
|
/**
|
|
Override to load content from @a stream into @e buffer.
|
|
*/
|
|
bool DoLoadFile(wxRichTextBuffer* buffer, wxInputStream& stream);
|
|
|
|
/**
|
|
Override to save content to @a stream from @e buffer.
|
|
*/
|
|
bool DoSaveFile(wxRichTextBuffer* buffer, wxOutputStream& stream);
|
|
|
|
/**
|
|
Returns the encoding associated with the handler (if any).
|
|
*/
|
|
const wxString GetEncoding() const;
|
|
|
|
/**
|
|
Returns the extension associated with the handler.
|
|
*/
|
|
wxString GetExtension() const;
|
|
|
|
/**
|
|
Returns flags that change the behaviour of loading or saving. See the
|
|
documentation for each
|
|
handler class to see what flags are relevant for each handler.
|
|
*/
|
|
int GetFlags() const;
|
|
|
|
/**
|
|
Returns the name of the handler.
|
|
*/
|
|
wxString GetName() const;
|
|
|
|
/**
|
|
Returns the type of the handler.
|
|
*/
|
|
int GetType() const;
|
|
|
|
/**
|
|
Returns @true if this handler should be visible to the user.
|
|
*/
|
|
bool IsVisible() const;
|
|
|
|
//@{
|
|
/**
|
|
Loads content from a stream or file. Not all handlers will implement file
|
|
loading.
|
|
*/
|
|
bool LoadFile(wxRichTextBuffer* buffer, wxInputStream& stream);
|
|
bool LoadFile(wxRichTextBuffer* buffer,
|
|
const wxString& filename);
|
|
//@}
|
|
|
|
//@{
|
|
/**
|
|
Saves content to a stream or file. Not all handlers will implement file saving.
|
|
*/
|
|
bool SaveFile(wxRichTextBuffer* buffer, wxOutputStream& stream);
|
|
bool SaveFile(wxRichTextBuffer* buffer,
|
|
const wxString& filename);
|
|
//@}
|
|
|
|
/**
|
|
Sets the encoding to use when saving a file. If empty, a suitable encoding is
|
|
chosen.
|
|
*/
|
|
void SetEncoding(const wxString& encoding);
|
|
|
|
/**
|
|
Sets the default extension to recognise.
|
|
*/
|
|
void SetExtension(const wxString& ext);
|
|
|
|
/**
|
|
Sets flags that change the behaviour of loading or saving. See the
|
|
documentation for each
|
|
handler class to see what flags are relevant for each handler.
|
|
You call this function directly if you are using a file handler explicitly
|
|
(without
|
|
going through the text control or buffer LoadFile/SaveFile API). Or, you can
|
|
call the control or buffer's SetHandlerFlags function to set the flags that will
|
|
be used for subsequent load and save operations.
|
|
*/
|
|
void SetFlags(int flags);
|
|
|
|
/**
|
|
Sets the name of the handler.
|
|
*/
|
|
void SetName(const wxString& name);
|
|
|
|
/**
|
|
Sets the handler type.
|
|
*/
|
|
void SetType(int type);
|
|
|
|
/**
|
|
Sets whether the handler should be visible to the user (via the application's
|
|
load and save
|
|
dialogs).
|
|
*/
|
|
void SetVisible(bool visible);
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
@class wxRichTextRange
|
|
|
|
This class stores beginning and end positions for a range of data.
|
|
|
|
@library{wxrichtext}
|
|
@category{richtext}
|
|
*/
|
|
class wxRichTextRange
|
|
{
|
|
public:
|
|
//@{
|
|
/**
|
|
Constructors.
|
|
*/
|
|
wxRichTextRange(long start, long end);
|
|
wxRichTextRange(const wxRichTextRange& range);
|
|
wxRichTextRange();
|
|
//@}
|
|
|
|
/**
|
|
Destructor.
|
|
*/
|
|
~wxRichTextRange();
|
|
|
|
/**
|
|
Returns @true if the given position is within this range. Does not
|
|
match if the range is empty.
|
|
*/
|
|
bool Contains(long pos) const;
|
|
|
|
/**
|
|
Converts the internal range, which uses the first and last character positions
|
|
of the range,
|
|
to the API-standard range, whose end is one past the last character in the
|
|
range.
|
|
In other words, one is added to the end position.
|
|
*/
|
|
wxRichTextRange FromInternal() const;
|
|
|
|
/**
|
|
Returns the end position.
|
|
*/
|
|
long GetEnd() const;
|
|
|
|
/**
|
|
Returns the length of the range.
|
|
*/
|
|
long GetLength() const;
|
|
|
|
/**
|
|
Returns the start of the range.
|
|
*/
|
|
long GetStart() const;
|
|
|
|
/**
|
|
Returns @true if this range is completely outside @e range.
|
|
*/
|
|
bool IsOutside(const wxRichTextRange& range) const;
|
|
|
|
/**
|
|
Returns @true if this range is completely within @e range.
|
|
*/
|
|
bool IsWithin(const wxRichTextRange& range) const;
|
|
|
|
/**
|
|
Limits this range to be within @e range.
|
|
*/
|
|
bool LimitTo(const wxRichTextRange& range);
|
|
|
|
/**
|
|
Sets the end of the range.
|
|
*/
|
|
void SetEnd(long end);
|
|
|
|
/**
|
|
Sets the range.
|
|
*/
|
|
void SetRange(long start, long end);
|
|
|
|
/**
|
|
Sets the start of the range.
|
|
*/
|
|
void SetStart(long start);
|
|
|
|
/**
|
|
Swaps the start and end.
|
|
*/
|
|
void Swap();
|
|
|
|
/**
|
|
Converts the API-standard range, whose end is one past the last character in
|
|
the range,
|
|
to the internal form, which uses the first and last character positions of the
|
|
range.
|
|
In other words, one is subtracted from the end position.
|
|
*/
|
|
wxRichTextRange ToInternal() const;
|
|
|
|
/**
|
|
Adds @a range to this range.
|
|
*/
|
|
wxRichTextRange operator+(const wxRichTextRange& range) const;
|
|
|
|
/**
|
|
Subtracts @a range from this range.
|
|
*/
|
|
wxRichTextRange operator-(const wxRichTextRange& range) const;
|
|
|
|
/**
|
|
Assigns @a range to this range.
|
|
*/
|
|
void operator=(const wxRichTextRange& range);
|
|
|
|
/**
|
|
Returns @true if @a range is the same as this range.
|
|
*/
|
|
bool operator==(const wxRichTextRange& range) const;
|
|
};
|
|
|