--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: _richtextctrl.i
+// Purpose: wxRichTextCtrl and related classes
+//
+// Author: Robin Dunn
+//
+// Created: 11-April-2006
+// RCS-ID: $Id$
+// Copyright: (c) 2006 by Total Control Software
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+// Not a %module
+
+
+//---------------------------------------------------------------------------
+
+%{
+%}
+
+//---------------------------------------------------------------------------
+%newgroup
+
+enum {
+ wxRE_READONLY,
+ wxRE_MULTILINE,
+
+ wxRICHTEXT_SHIFT_DOWN,
+ wxRICHTEXT_CTRL_DOWN,
+ wxRICHTEXT_ALT_DOWN,
+
+ wxRICHTEXT_SELECTED,
+ wxRICHTEXT_TAGGED,
+ wxRICHTEXT_FOCUSSED,
+ wxRICHTEXT_IS_FOCUS,
+
+};
+
+
+//---------------------------------------------------------------------------
+
+MAKE_CONST_WXSTRING2(RichTextCtrlNameStr, wxT("richText"));
+
+MustHaveApp(wxRichTextCtrl);
+
+
+DocStr(wxRichTextCtrl,
+"", "");
+
+
+class wxRichTextCtrl : public wxScrolledWindow
+{
+public:
+ %pythonAppend wxRichTextCtrl "self._setOORInfo(self)"
+ %pythonAppend wxRichTextCtrl() ""
+
+ wxRichTextCtrl( wxWindow* parent,
+ wxWindowID id = -1,
+ const wxString& value = wxPyEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxRE_MULTILINE,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxPyRichTextCtrlNameStr );
+ %RenameCtor(PreRichTextCtrl, wxRichTextCtrl());
+
+
+ bool Create( wxWindow* parent,
+ wxWindowID id = -1,
+ const wxString& value = wxPyEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxRE_MULTILINE,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxPyRichTextCtrlNameStr );
+
+
+ DocDeclStr(
+ virtual wxString , GetValue() const,
+ "", "");
+
+ DocDeclStr(
+ virtual void , SetValue(const wxString& value),
+ "", "");
+
+
+ DocDeclStr(
+ virtual wxString , GetRange(long from, long to) const,
+ "", "");
+
+
+ DocDeclStr(
+ virtual int , GetLineLength(long lineNo) const ,
+ "", "");
+
+ DocDeclStr(
+ virtual wxString , GetLineText(long lineNo) const ,
+ "", "");
+
+ DocDeclStr(
+ virtual int , GetNumberOfLines() const ,
+ "", "");
+
+
+ DocDeclStr(
+ virtual bool , IsModified() const ,
+ "", "");
+
+ DocDeclStr(
+ virtual bool , IsEditable() const ,
+ "", "");
+
+
+ // more readable flag testing methods
+ DocDeclStr(
+ bool , IsSingleLine() const,
+ "", "");
+
+ DocDeclStr(
+ bool , IsMultiLine() const,
+ "", "");
+
+
+ DocDeclAStr(
+ virtual void , GetSelection(long* OUTPUT, long* OUTPUT) const,
+ "GetSelection() --> (start, end)",
+ "Returns the start and end positions of the current selection. If the
+values are the same then there is no selection.", "");
+
+
+ DocDeclStr(
+ virtual wxString , GetStringSelection() const,
+ "", "");
+
+
+ DocDeclStr(
+ wxString , GetFilename() const,
+ "", "");
+
+
+ DocDeclStr(
+ void , SetFilename(const wxString& filename),
+ "", "");
+
+
+ DocDeclStr(
+ void , SetDelayedLayoutThreshold(long threshold),
+ "Set the threshold in character positions for doing layout optimization
+during sizing.", "");
+
+
+ DocDeclStr(
+ long , GetDelayedLayoutThreshold() const,
+ "Get the threshold in character positions for doing layout optimization
+during sizing.", "");
+
+
+
+ DocDeclStr(
+ virtual void , Clear(),
+ "", "");
+
+ DocDeclStr(
+ virtual void , Replace(long from, long to, const wxString& value),
+ "", "");
+
+ DocDeclStr(
+ virtual void , Remove(long from, long to),
+ "", "");
+
+
+ DocDeclStr(
+ virtual bool , LoadFile(const wxString& file, int type = wxRICHTEXT_TYPE_ANY),
+ "Load the contents of the document from the given filename.", "");
+
+ DocDeclStr(
+ virtual bool , SaveFile(const wxString& file = wxPyEmptyString,
+ int type = wxRICHTEXT_TYPE_ANY),
+ "Save the contents of the document to the given filename, or if the
+empty string is passed then to the filename set with `SetFilename`.", "");
+
+
+ DocDeclStr(
+ void , SetHandlerFlags(int flags),
+ "Set the handler flags, controlling loading and saving.", "");
+
+ DocDeclStr(
+ int , GetHandlerFlags() const,
+ "Get the handler flags, controlling loading and saving.", "");
+
+ // sets/clears the dirty flag
+ DocDeclStr(
+ virtual void , MarkDirty(),
+ "Sets the dirty flag, meaning that the contents of the control have
+changed and need to be saved.", "");
+
+ DocDeclStr(
+ virtual void , DiscardEdits(),
+ "Clears the dirty flag.
+:see: `MarkDirty`", "");
+
+
+ DocDeclStr(
+ virtual void , SetMaxLength(unsigned long len),
+ "Set the max number of characters which may be entered in a single line
+text control.", "");
+
+
+ DocDeclStr(
+ virtual void , WriteText(const wxString& text),
+ "Insert text at the current position.", "");
+
+ DocDeclStr(
+ virtual void , AppendText(const wxString& text),
+ "Append text to the end of the document.", "");
+
+
+ DocDeclStr(
+ virtual bool , SetStyle(const wxRichTextRange& range, const wxRichTextAttr& style),
+ "Set the style for the text in ``range`` to ``style``", "");
+
+ DocDeclStr(
+ virtual bool , GetStyle(long position, wxRichTextAttr& style),
+ "Retrieve the style used at the given position. Copies the style
+values at ``position`` into the ``style`` parameter and returns ``True``
+if successful. Returns ``False`` otherwise.", "");
+
+
+ DocDeclStr(
+ virtual bool , GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& style),
+ "Get the common set of styles for the range", "");
+
+
+ DocDeclStr(
+ virtual bool , SetStyleEx(const wxRichTextRange& range, const wxRichTextAttr& style,
+ int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO),
+ "Extended style setting operation with flags including:
+RICHTEXT_SETSTYLE_WITH_UNDO, RICHTEXT_SETSTYLE_OPTIMIZE,
+RICHTEXT_SETSTYLE_PARAGRAPHS_ONLY, RICHTEXT_SETSTYLE_CHARACTERS_ONLY", "");
+
+
+
+ DocDeclStr(
+ virtual bool , GetUncombinedStyle(long position, wxRichTextAttr& style),
+ "Get the content (uncombined) attributes for this position. Copies the
+style values at ``position`` into the ``style`` parameter and returns
+``True`` if successful. Returns ``False`` otherwise.", "");
+
+
+ DocDeclStr(
+ virtual bool , SetDefaultStyle(const wxRichTextAttr& style),
+ "Set the style used by default for the rich text document.", "");
+
+
+ DocDeclStrName(
+ virtual const wxRichTextAttr , GetDefaultStyleEx() const,
+ "Retrieves a copy of the default style object.", "",
+ GetDefaultStyle);
+
+
+// TODO: Select which of these to keep or rename
+
+ /// Set list style
+// virtual bool SetListStyle(const wxRichTextRange& range,
+// wxRichTextListStyleDefinition* def,
+// int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
+// int startFrom = 1, int specifiedLevel = -1);
+ virtual bool SetListStyle(const wxRichTextRange& range,
+ const wxString& defName,
+ int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
+ int startFrom = 1, int specifiedLevel = -1);
+
+ /// Clear list for given range
+ virtual bool ClearListStyle(const wxRichTextRange& range, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
+
+ /// Number/renumber any list elements in the given range
+ /// def/defName can be NULL/empty to indicate that the existing list style should be used.
+// virtual bool NumberList(const wxRichTextRange& range,
+// wxRichTextListStyleDefinition* def = NULL,
+// int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
+// int startFrom = 1, int specifiedLevel = -1);
+ virtual bool NumberList(const wxRichTextRange& range,
+ const wxString& defName,
+ int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
+ int startFrom = 1, int specifiedLevel = -1);
+
+ /// Promote the list items within the given range. promoteBy can be a positive or negative number, e.g. 1 or -1
+ /// def/defName can be NULL/empty to indicate that the existing list style should be used.
+// virtual bool PromoteList(int promoteBy, const wxRichTextRange& range,
+// wxRichTextListStyleDefinition* def = NULL,
+// int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
+// int specifiedLevel = -1);
+ virtual bool PromoteList(int promoteBy, const wxRichTextRange& range,
+ const wxString& defName,
+ int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO,
+ int specifiedLevel = -1);
+
+ /// Deletes the content in the given range
+ virtual bool Delete(const wxRichTextRange& range);
+
+
+
+
+ DocDeclStr(
+ virtual long , XYToPosition(long x, long y) const,
+ "Translate a col,row coordinants into a document position.", "");
+
+ DocDeclAStr(
+ virtual void , PositionToXY(long pos, long *OUTPUT, long *OUTPUT) const,
+ "PositionToXY(self, long pos) --> (x, y)",
+ "Retrieves the col,row for the given position within the document", "");
+
+
+ DocDeclStr(
+ virtual void , ShowPosition(long position),
+ "Ensure that the given position in the document is visible.", "");
+
+
+ DocDeclAStr(
+ virtual wxTextCtrlHitTestResult , HitTest(const wxPoint& pt, long *OUTPUT) const,
+ "HitTest(self, Point pt) --> (result, pos)",
+ "Returns the character position at the given point in pixels. Note
+that ``pt`` should be given in device coordinates, and not be adjusted
+for the client area origin nor for scrolling. The return value is a
+tuple of the hit test result and the position.", "
+
+Possible result values are a bitmask of these flags:
+
+ ========================= ====================================
+ RICHTEXT_HITTEST_NONE The point was not on this object.
+ RICHTEXT_HITTEST_BEFORE The point was before the position
+ returned from HitTest.
+ RICHTEXT_HITTEST_AFTER The point was after the position
+ returned from HitTest.
+ RICHTEXT_HITTEST_ON The point was on the position
+ returned from HitTest
+ ========================= ====================================
+");
+
+ DocDeclAStrName(
+ virtual wxTextCtrlHitTestResult , HitTest(const wxPoint& pt,
+ wxTextCoord *OUTPUT,
+ wxTextCoord *OUTPUT) const,
+ "HitTestRC(self, Point pt) --> (result, col, row)",
+ "Returns the column and row of the given point in pixels. Note that
+``pt`` should be given in device coordinates, and not be adjusted for
+the client area origin nor for scrolling. The return value is a tuple
+of the hit test result and the column and row values.", "
+:see: `HitTest`",
+ HitTestXY);
+
+
+ // Clipboard operations
+ DocDeclStr(
+ virtual void , Copy(),
+ "Copies the selected text to the clipboard.", "");
+
+ DocDeclStr(
+ virtual void , Cut(),
+ "Copies the selected text to the clipboard and removes the selection.", "");
+
+ DocDeclStr(
+ virtual void , Paste(),
+ "Pastes text from the clipboard into the document at the current
+insertion point.", "");
+
+ DocDeclStr(
+ virtual void , DeleteSelection(),
+ "Remove the current selection.", "");
+
+
+ DocDeclStr(
+ virtual bool , CanCopy() const,
+ "Returns ``True`` if the selection can be copied to the clipboard.", "");
+
+ DocDeclStr(
+ virtual bool , CanCut() const,
+ "Returns ``True`` if the selection can be cut to the clipboard.", "");
+
+ DocDeclStr(
+ virtual bool , CanPaste() const,
+ "Returns ``True`` if the current contents of the clipboard can be
+pasted into the document.", "");
+
+ DocDeclStr(
+ virtual bool , CanDeleteSelection() const,
+ "Returns ``True`` if the selection can be removed from the document.", "");
+
+
+ // Undo/redo
+ DocDeclStr(
+ virtual void , Undo(),
+ "If the last operation can be undone, undoes the last operation.", "");
+
+ DocDeclStr(
+ virtual void , Redo(),
+ "If the last operation can be redone, redoes the last operation.", "");
+
+
+ DocDeclStr(
+ virtual bool , CanUndo() const,
+ "Returns ``True`` if the last operation can be undone.", "");
+
+ DocDeclStr(
+ virtual bool , CanRedo() const,
+ "Returns ``True`` if the last operation can be redone.", "");
+
+
+ // Insertion point
+ DocDeclStr(
+ virtual void , SetInsertionPoint(long pos),
+ "Sets the insertion point at the given position.", "");
+
+ DocDeclStr(
+ virtual void , SetInsertionPointEnd(),
+ "Moves the insertion point to the end of the document.", "");
+
+ DocDeclStr(
+ virtual long , GetInsertionPoint() const,
+ "Returns the insertion point. This is defined as the zero based index
+of the character position to the right of the insertion point.", "");
+
+ DocDeclStr(
+ virtual long , GetLastPosition() const,
+ "Returns the zero based index of the last position in the document.", "");
+
+
+ DocDeclStr(
+ virtual void , SetSelection(long from, long to),
+ "Selects the text starting at the first position up to (but not
+including) the character at the last position. If both parameters are
+equal to -1 then all text in the control is selected.", "");
+
+ DocDeclStr(
+ virtual void , SelectAll(),
+ "Select all text in the document.", "");
+
+ DocDeclStr(
+ virtual void , SetEditable(bool editable),
+ "Makes the document editable or read-only, overriding the RE_READONLY
+flag.", "");
+
+
+ DocDeclStr(
+ virtual bool , HasSelection() const,
+ "", "");
+
+
+///// Functionality specific to wxRichTextCtrl
+
+ /// Write an image at the current insertion point. Supply optional type to use
+ /// for internal and file storage of the raw data.
+ DocDeclStr(
+ virtual bool , WriteImage(const wxImage& image, int bitmapType = wxBITMAP_TYPE_PNG),
+ "", "");
+
+
+ /// Write a bitmap at the current insertion point. Supply optional type to use
+ /// for internal and file storage of the raw data.
+ DocDeclStrName(
+ virtual bool , WriteImage(const wxBitmap& bitmap, int bitmapType = wxBITMAP_TYPE_PNG),
+ "", "",
+ WriteBitmap);
+
+
+ /// Load an image from file and write at the current insertion point.
+ DocDeclStrName(
+ virtual bool , WriteImage(const wxString& filename, int bitmapType),
+ "", "",
+ WriteImageFile);
+
+
+ /// Write an image block at the current insertion point.
+ DocDeclStrName(
+ virtual bool , WriteImage(const wxRichTextImageBlock& imageBlock),
+ "", "",
+ WriteImageBlock);
+
+
+ /// Insert a newline (actually paragraph) at the current insertion point.
+ DocDeclStr(
+ virtual bool , Newline(),
+ "", "");
+
+
+ /// Insert a line break at the current insertion point.
+ virtual bool LineBreak();
+
+
+ DocDeclStr(
+ virtual void , SetBasicStyle(const wxRichTextAttr& style),
+ "", "");
+
+
+ /// Get basic (overall) style
+ DocDeclStr(
+ virtual const wxRichTextAttr , GetBasicStyle() const,
+ "", "");
+
+
+ /// Begin using a style
+ DocDeclStr(
+ virtual bool , BeginStyle(const wxRichTextAttr& style),
+ "", "");
+
+
+ /// End the style
+ DocDeclStr(
+ virtual bool , EndStyle(),
+ "", "");
+
+
+ /// End all styles
+ DocDeclStr(
+ virtual bool , EndAllStyles(),
+ "", "");
+
+
+ /// Begin using bold
+ DocDeclStr(
+ bool , BeginBold(),
+ "", "");
+
+
+ /// End using bold
+ DocDeclStr(
+ bool , EndBold(),
+ "", "");
+
+
+ /// Begin using italic
+ DocDeclStr(
+ bool , BeginItalic(),
+ "", "");
+
+
+ /// End using italic
+ DocDeclStr(
+ bool , EndItalic(),
+ "", "");
+
+
+ /// Begin using underline
+ DocDeclStr(
+ bool , BeginUnderline(),
+ "", "");
+
+
+ /// End using underline
+ DocDeclStr(
+ bool , EndUnderline(),
+ "", "");
+
+
+ /// Begin using point size
+ DocDeclStr(
+ bool , BeginFontSize(int pointSize),
+ "", "");
+
+
+ /// End using point size
+ DocDeclStr(
+ bool , EndFontSize(),
+ "", "");
+
+
+ /// Begin using this font
+ DocDeclStr(
+ bool , BeginFont(const wxFont& font),
+ "", "");
+
+
+ /// End using a font
+ DocDeclStr(
+ bool , EndFont(),
+ "", "");
+
+
+ /// Begin using this colour
+ DocDeclStr(
+ bool , BeginTextColour(const wxColour& colour),
+ "", "");
+
+
+ /// End using a colour
+ DocDeclStr(
+ bool , EndTextColour(),
+ "", "");
+
+
+ /// Begin using alignment
+ DocDeclStr(
+ bool , BeginAlignment(wxTextAttrAlignment alignment),
+ "", "");
+
+
+ /// End alignment
+ DocDeclStr(
+ bool , EndAlignment(),
+ "", "");
+
+
+ /// Begin left indent
+ DocDeclStr(
+ bool , BeginLeftIndent(int leftIndent, int leftSubIndent = 0),
+ "", "");
+
+
+ /// End left indent
+ DocDeclStr(
+ bool , EndLeftIndent(),
+ "", "");
+
+
+ /// Begin right indent
+ DocDeclStr(
+ bool , BeginRightIndent(int rightIndent),
+ "", "");
+
+
+ /// End right indent
+ DocDeclStr(
+ bool , EndRightIndent(),
+ "", "");
+
+
+ /// Begin paragraph spacing
+ DocDeclStr(
+ bool , BeginParagraphSpacing(int before, int after),
+ "", "");
+
+
+ /// End paragraph spacing
+ DocDeclStr(
+ bool , EndParagraphSpacing(),
+ "", "");
+
+
+ /// Begin line spacing
+ DocDeclStr(
+ bool , BeginLineSpacing(int lineSpacing),
+ "", "");
+
+
+ /// End line spacing
+ DocDeclStr(
+ bool , EndLineSpacing(),
+ "", "");
+
+
+ /// Begin numbered bullet
+ DocDeclStr(
+ bool , BeginNumberedBullet(int bulletNumber,
+ int leftIndent,
+ int leftSubIndent,
+ int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_ARABIC|wxTEXT_ATTR_BULLET_STYLE_PERIOD),
+ "", "");
+
+
+ /// End numbered bullet
+ DocDeclStr(
+ bool , EndNumberedBullet(),
+ "", "");
+
+
+ /// Begin symbol bullet
+ DocDeclStr(
+ bool , BeginSymbolBullet(const wxString& symbol,
+ int leftIndent,
+ int leftSubIndent,
+ int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL),
+ "", "");
+
+
+ /// End symbol bullet
+ DocDeclStr(
+ bool , EndSymbolBullet(),
+ "", "");
+
+
+ /// Begin standard bullet
+ DocDeclStr(
+ bool , BeginStandardBullet(const wxString& bulletName,
+ int leftIndent,
+ int leftSubIndent,
+ int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_STANDARD),
+ "", "");
+
+
+
+ /// End standard bullet
+ DocDeclStr(
+ bool , EndStandardBullet(),
+ "", "");
+
+
+ /// Begin named character style
+ DocDeclStr(
+ bool , BeginCharacterStyle(const wxString& characterStyle),
+ "", "");
+
+
+ /// End named character style
+ DocDeclStr(
+ bool , EndCharacterStyle(),
+ "", "");
+
+
+ /// Begin named paragraph style
+ DocDeclStr(
+ bool , BeginParagraphStyle(const wxString& paragraphStyle),
+ "", "");
+
+
+ /// End named character style
+ DocDeclStr(
+ bool , EndParagraphStyle(),
+ "", "");
+
+
+ DocDeclStr(
+ bool , BeginListStyle(const wxString& listStyle, int level = 1, int number = 1),
+ "Begin named list style.", "");
+
+ DocDeclStr(
+ bool , EndListStyle(), "End named list style.", "");
+
+ DocDeclStr(
+ bool , BeginURL(const wxString& url, const wxString& characterStyle = wxEmptyString),
+ "Begin URL.", "");
+
+ DocDeclStr(
+ bool , EndURL(), "End URL.", "");
+
+ /// Sets the default style to the style under the cursor
+ DocDeclStr(
+ bool , SetDefaultStyleToCursorStyle(),
+ "", "");
+
+
+ /// Clear the selection
+ DocDeclStr(
+ virtual void , SelectNone(),
+ "", "");
+
+ /// Select the word at the given character position
+ DocDeclStr(
+ virtual bool , SelectWord(long position),
+ "", "");
+
+
+ /// Get/set the selection range in character positions. -1, -1 means no selection.
+ DocDeclStr(
+ wxRichTextRange , GetSelectionRange() const,
+ "", "");
+
+ DocDeclStr(
+ void , SetSelectionRange(const wxRichTextRange& range),
+ "", "");
+
+ /// Get/set the selection range in character positions. -1, -1 means no selection.
+ /// The range is in internal format, i.e. a single character selection is denoted
+ /// by (n, n)
+ DocDeclStr(
+ const wxRichTextRange& , GetInternalSelectionRange() const,
+ "", "");
+
+ DocDeclStr(
+ void , SetInternalSelectionRange(const wxRichTextRange& range),
+ "", "");
+
+
+
+ /// Add a new paragraph of text to the end of the buffer
+ DocDeclStr(
+ virtual wxRichTextRange , AddParagraph(const wxString& text),
+ "", "");
+
+
+ /// Add an image
+ DocDeclStr(
+ virtual wxRichTextRange , AddImage(const wxImage& image),
+ "", "");
+
+
+ /// Layout the buffer: which we must do before certain operations, such as
+ /// setting the caret position.
+ DocDeclStr(
+ virtual bool , LayoutContent(bool onlyVisibleRect = false),
+ "", "");
+
+
+ /// Move the caret to the given character position
+ DocDeclStr(
+ virtual bool , MoveCaret(long pos, bool showAtLineStart = false),
+ "", "");
+
+
+ /// Move right
+ DocDeclStr(
+ virtual bool , MoveRight(int noPositions = 1, int flags = 0),
+ "", "");
+
+
+ /// Move left
+ DocDeclStr(
+ virtual bool , MoveLeft(int noPositions = 1, int flags = 0),
+ "", "");
+
+
+ /// Move up
+ DocDeclStr(
+ virtual bool , MoveUp(int noLines = 1, int flags = 0),
+ "", "");
+
+
+ /// Move up
+ DocDeclStr(
+ virtual bool , MoveDown(int noLines = 1, int flags = 0),
+ "", "");
+
+
+ /// Move to the end of the line
+ DocDeclStr(
+ virtual bool , MoveToLineEnd(int flags = 0),
+ "", "");
+
+
+ /// Move to the start of the line
+ DocDeclStr(
+ virtual bool , MoveToLineStart(int flags = 0),
+ "", "");
+
+
+ /// Move to the end of the paragraph
+ DocDeclStr(
+ virtual bool , MoveToParagraphEnd(int flags = 0),
+ "", "");
+
+
+ /// Move to the start of the paragraph
+ DocDeclStr(
+ virtual bool , MoveToParagraphStart(int flags = 0),
+ "", "");
+
+
+ /// Move to the start of the buffer
+ DocDeclStr(
+ virtual bool , MoveHome(int flags = 0),
+ "", "");
+
+
+ /// Move to the end of the buffer
+ DocDeclStr(
+ virtual bool , MoveEnd(int flags = 0),
+ "", "");
+
+
+ /// Move n pages up
+ DocDeclStr(
+ virtual bool , PageUp(int noPages = 1, int flags = 0),
+ "", "");
+
+
+ /// Move n pages down
+ DocDeclStr(
+ virtual bool , PageDown(int noPages = 1, int flags = 0),
+ "", "");
+
+
+ /// Move n words left
+ DocDeclStr(
+ virtual bool , WordLeft(int noPages = 1, int flags = 0),
+ "", "");
+
+
+ /// Move n words right
+ DocDeclStr(
+ virtual bool , WordRight(int noPages = 1, int flags = 0),
+ "", "");
+
+
+ /// Returns the buffer associated with the control.
+ DocDeclStr(
+ wxRichTextBuffer& , GetBuffer(),
+ "", "");
+
+
+ /// Start batching undo history for commands.
+ DocDeclStr(
+ virtual bool , BeginBatchUndo(const wxString& cmdName),
+ "", "");
+
+
+ /// End batching undo history for commands.
+ DocDeclStr(
+ virtual bool , EndBatchUndo(),
+ "", "");
+
+
+ /// Are we batching undo history for commands?
+ DocDeclStr(
+ virtual bool , BatchingUndo() const,
+ "", "");
+
+
+ /// Start suppressing undo history for commands.
+ DocDeclStr(
+ virtual bool , BeginSuppressUndo(),
+ "", "");
+
+
+ /// End suppressing undo history for commands.
+ DocDeclStr(
+ virtual bool , EndSuppressUndo(),
+ "", "");
+
+
+ /// Are we suppressing undo history for commands?
+ DocDeclStr(
+ virtual bool , SuppressingUndo() const,
+ "", "");
+
+
+ /// Test if this whole range has character attributes of the specified kind. If any
+ /// of the attributes are different within the range, the test fails. You
+ /// can use this to implement, for example, bold button updating. style must have
+ /// flags indicating which attributes are of interest.
+ DocDeclStr(
+ virtual bool , HasCharacterAttributes(const wxRichTextRange& range,
+ const wxRichTextAttr& style) const,
+ "", "");
+
+
+
+ /// Test if this whole range has paragraph attributes of the specified kind. If any
+ /// of the attributes are different within the range, the test fails. You
+ /// can use this to implement, for example, centering button updating. style must have
+ /// flags indicating which attributes are of interest.
+ DocDeclStr(
+ virtual bool , HasParagraphAttributes(const wxRichTextRange& range,
+ const wxRichTextAttr& style) const,
+ "", "");
+
+
+
+ /// Is all of the selection bold?
+ DocDeclStr(
+ virtual bool , IsSelectionBold(),
+ "", "");
+
+
+ /// Is all of the selection italics?
+ DocDeclStr(
+ virtual bool , IsSelectionItalics(),
+ "", "");
+
+
+ /// Is all of the selection underlined?
+ DocDeclStr(
+ virtual bool , IsSelectionUnderlined(),
+ "", "");
+
+
+ /// Is all of the selection aligned according to the specified flag?
+ DocDeclStr(
+ virtual bool , IsSelectionAligned(wxTextAttrAlignment alignment),
+ "", "");
+
+
+ /// Apply bold to the selection
+ DocDeclStr(
+ virtual bool , ApplyBoldToSelection(),
+ "", "");
+
+
+ /// Apply italic to the selection
+ DocDeclStr(
+ virtual bool , ApplyItalicToSelection(),
+ "", "");
+
+
+ /// Apply underline to the selection
+ DocDeclStr(
+ virtual bool , ApplyUnderlineToSelection(),
+ "", "");
+
+
+ /// Apply alignment to the selection
+ DocDeclStr(
+ virtual bool , ApplyAlignmentToSelection(wxTextAttrAlignment alignment),
+ "", "");
+
+
+ /// Apply a named style to the selection
+ virtual bool ApplyStyle(wxRichTextStyleDefinition* def);
+
+ /// Set style sheet, if any.
+ DocDeclStr(
+ void , SetStyleSheet(wxRichTextStyleSheet* styleSheet),
+ "", "");
+
+ DocDeclStr(
+ wxRichTextStyleSheet* , GetStyleSheet() const,
+ "", "");
+
+
+ /// Push style sheet to top of stack
+ bool PushStyleSheet(wxRichTextStyleSheet* styleSheet);
+
+
+ /// Pop style sheet from top of stack
+ wxRichTextStyleSheet* PopStyleSheet();
+
+
+ /// Apply the style sheet to the buffer, for example if the styles have changed.
+ DocDeclStr(
+ bool , ApplyStyleSheet(wxRichTextStyleSheet* styleSheet = NULL),
+ "", "");
+
+
+
+ %property(Buffer, GetBuffer, doc="See `GetBuffer`");
+ %property(DefaultStyle, GetDefaultStyle, SetDefaultStyle, doc="See `GetDefaultStyle` and `SetDefaultStyle`");
+ %property(DelayedLayoutThreshold, GetDelayedLayoutThreshold, SetDelayedLayoutThreshold, doc="See `GetDelayedLayoutThreshold` and `SetDelayedLayoutThreshold`");
+ %property(Filename, GetFilename, SetFilename, doc="See `GetFilename` and `SetFilename`");
+ %property(InsertionPoint, GetInsertionPoint, SetInsertionPoint, doc="See `GetInsertionPoint` and `SetInsertionPoint`");
+ %property(InternalSelectionRange, GetInternalSelectionRange, SetInternalSelectionRange, doc="See `GetInternalSelectionRange` and `SetInternalSelectionRange`");
+ %property(LastPosition, GetLastPosition, doc="See `GetLastPosition`");
+ %property(NumberOfLines, GetNumberOfLines, doc="See `GetNumberOfLines`");
+ %property(Selection, GetSelection, SetSelectionRange, doc="See `GetSelection` and `SetSelection`");
+ %property(SelectionRange, GetSelectionRange, SetSelectionRange, doc="See `GetSelectionRange` and `SetSelectionRange`");
+ %property(StringSelection, GetStringSelection, doc="See `GetStringSelection`");
+ %property(StyleSheet, GetStyleSheet, SetStyleSheet, doc="See `GetStyleSheet` and `SetStyleSheet`");
+ %property(Value, GetValue, SetValue, doc="See `GetValue` and `SetValue`");
+
+
+
+ // TODO: Some of these methods may be useful too...
+
+
+// /// Set up scrollbars, e.g. after a resize
+// virtual void SetupScrollbars(bool atTop = false);
+
+// /// Keyboard navigation
+// virtual bool KeyboardNavigate(int keyCode, int flags);
+
+// /// Paint the background
+// virtual void PaintBackground(wxDC& dc);
+
+// #if wxRICHTEXT_BUFFERED_PAINTING
+// /// Recreate buffer bitmap if necessary
+// virtual bool RecreateBuffer(const wxSize& size = wxDefaultSize);
+// #endif
+
+// /// Set the selection
+// virtual void DoSetSelection(long from, long to, bool scrollCaret = true);
+
+// /// Write text
+// virtual void DoWriteText(const wxString& value, int flags = 0);
+
+// /// Should we inherit colours?
+// virtual bool ShouldInheritColours() const { return false; }
+
+// /// Position the caret
+// virtual void PositionCaret();
+
+// /// Extend the selection, returning true if the selection was
+// /// changed. Selections are in caret positions.
+// virtual bool ExtendSelection(long oldPosition, long newPosition, int flags);
+
+// /// Scroll into view. This takes a _caret_ position.
+// virtual bool ScrollIntoView(long position, int keyCode);
+
+// /// The caret position is the character position just before the caret.
+// /// A value of -1 means the caret is at the start of the buffer.
+// void SetCaretPosition(long position, bool showAtLineStart = false) ;
+// long GetCaretPosition() const { return m_caretPosition; }
+
+// /// The adjusted caret position is the character position adjusted to take
+// /// into account whether we're at the start of a paragraph, in which case
+// /// style information should be taken from the next position, not current one.
+// long GetAdjustedCaretPosition(long caretPos) const;
+
+// /// Move caret one visual step forward: this may mean setting a flag
+// /// and keeping the same position if we're going from the end of one line
+// /// to the start of the next, which may be the exact same caret position.
+// void MoveCaretForward(long oldPosition) ;
+
+// /// Move caret one visual step forward: this may mean setting a flag
+// /// and keeping the same position if we're going from the end of one line
+// /// to the start of the next, which may be the exact same caret position.
+// void MoveCaretBack(long oldPosition) ;
+
+// /// Get the caret height and position for the given character position
+// bool GetCaretPositionForIndex(long position, wxRect& rect);
+
+// /// Gets the line for the visible caret position. If the caret is
+// /// shown at the very end of the line, it means the next character is actually
+// /// on the following line. So let's get the line we're expecting to find
+// /// if this is the case.
+// wxRichTextLine* GetVisibleLineForCaretPosition(long caretPosition) const;
+
+// /// Gets the command processor
+// wxCommandProcessor* GetCommandProcessor() const { return GetBuffer().GetCommandProcessor(); }
+
+// /// Delete content if there is a selection, e.g. when pressing a key.
+// /// Returns the new caret position in newPos, or leaves it if there
+// /// was no action.
+// bool DeleteSelectedContent(long* newPos= NULL);
+
+// /// Transform logical to physical
+// wxPoint GetPhysicalPoint(const wxPoint& ptLogical) const;
+
+// /// Transform physical to logical
+// wxPoint GetLogicalPoint(const wxPoint& ptPhysical) const;
+
+// /// Finds the caret position for the next word. Direction
+// /// is 1 (forward) or -1 (backwards).
+// virtual long FindNextWordPosition(int direction = 1) const;
+
+// /// Is the given position visible on the screen?
+// bool IsPositionVisible(long pos) const;
+
+// /// Returns the first visible position in the current view
+// long GetFirstVisiblePosition() const;
+
+// /// Returns the caret position since the default formatting was changed. As
+// /// soon as this position changes, we no longer reflect the default style
+// /// in the UI. A value of -2 means that we should only reflect the style of the
+// /// content under the caret.
+// long GetCaretPositionForDefaultStyle() const { return m_caretPositionForDefaultStyle; }
+
+// /// Set the caret position for the default style that the user is selecting.
+// void SetCaretPositionForDefaultStyle(long pos) { m_caretPositionForDefaultStyle = pos; }
+
+// /// Should the UI reflect the default style chosen by the user, rather than the style under
+// /// the caret?
+// bool IsDefaultStyleShowing() const { return m_caretPositionForDefaultStyle != -2; }
+
+// /// Convenience function that tells the control to start reflecting the default
+// /// style, since the user is changing it.
+// void SetAndShowDefaultStyle(const wxRichTextAttr& attr)
+// {
+// SetDefaultStyle(attr);
+// SetCaretPositionForDefaultStyle(GetCaretPosition());
+// }
+
+// /// Get the first visible point in the window
+// wxPoint GetFirstVisiblePoint() const;
+
+// // Implementation
+
+// /// Font names take a long time to retrieve, so cache them (on demand)
+// static const wxArrayString& GetAvailableFontNames();
+// static void ClearAvailableFontNames();
+
+};
+
+
+//---------------------------------------------------------------------------
+%newgroup
+
+
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_LEFT_CLICK;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_RIGHT_CLICK;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_MIDDLE_CLICK;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_LEFT_DCLICK;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_RETURN;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_CHARACTER;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_DELETE;
+
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED;
+
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED;
+%constant wxEventType wxEVT_COMMAND_RICHTEXT_SELECTION_CHANGED;
+
+%pythoncode {
+EVT_RICHTEXT_LEFT_CLICK = wx.PyEventBinder(wxEVT_COMMAND_RICHTEXT_LEFT_CLICK, 1)
+EVT_RICHTEXT_RIGHT_CLICK = wx.PyEventBinder(wxEVT_COMMAND_RICHTEXT_RIGHT_CLICK, 1)
+EVT_RICHTEXT_MIDDLE_CLICK = wx.PyEventBinder(wxEVT_COMMAND_RICHTEXT_MIDDLE_CLICK, 1)
+EVT_RICHTEXT_LEFT_DCLICK = wx.PyEventBinder(wxEVT_COMMAND_RICHTEXT_LEFT_DCLICK, 1)
+EVT_RICHTEXT_RETURN = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_RETURN, 1)
+EVT_RICHTEXT_CHARACTER = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_CHARACTER, 1)
+EVT_RICHTEXT_DELETE = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_DELETE, 1)
+
+EVT_RICHTEXT_STYLESHEET_CHANGING = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING, 1)
+EVT_RICHTEXT_STYLESHEET_CHANGED = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED, 1)
+EVT_RICHTEXT_STYLESHEET_REPLACING = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING, 1)
+EVT_RICHTEXT_STYLESHEET_REPLACED = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED, 1)
+
+EVT_RICHTEXT_CONTENT_INSERTED = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED, 1)
+EVT_RICHTEXT_CONTENT_DELETED = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED, 1)
+EVT_RICHTEXT_STYLE_CHANGED = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED, 1)
+EVT_RICHTEXT_SELECTION_CHANGED = wx.PyEventBinder( wxEVT_COMMAND_RICHTEXT_SELECTION_CHANGED, 1)
+}
+
+
+class wxRichTextEvent : public wxNotifyEvent
+{
+public:
+ wxRichTextEvent(wxEventType commandType = wxEVT_NULL, int winid = 0);
+
+ int GetPosition() const;
+ void SetPosition(int n);
+
+ int GetFlags() const;
+ void SetFlags(int flags);
+
+ wxRichTextStyleSheet* GetOldStyleSheet() const;
+ void SetOldStyleSheet(wxRichTextStyleSheet* sheet);
+
+ wxRichTextStyleSheet* GetNewStyleSheet() const;
+ void SetNewStyleSheet(wxRichTextStyleSheet* sheet);
+
+ const wxRichTextRange& GetRange() const;
+ void SetRange(const wxRichTextRange& range);
+
+ wxChar GetCharacter() const;
+ void SetCharacter(wxChar ch);
+
+
+ %property(Flags, GetFlags, SetFlags);
+ %property(Index, GetPosition, SetPosition);
+ %property(OldStyleSheet, GetOldStyleSheet, SetOldStyleSheet);
+ %property(NewStyleSheet, GetNewStyleSheet, SetNewStyleSheet);
+ %property(Range, GetRange, SetRange);
+ %property(Character, GetCharacter, SetCharacter);
+};
+
+
+//---------------------------------------------------------------------------