git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@46289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1238 lines
37 KiB
OpenEdge ABL
1238 lines
37 KiB
OpenEdge ABL
/////////////////////////////////////////////////////////////////////////////
|
|
// 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);
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------
|