void operator =(const wxRichTextRange& range) { m_start = range.m_start; m_end = range.m_end; }
bool operator ==(const wxRichTextRange& range) const { return (m_start == range.m_start && m_end == range.m_end); }
+ bool operator !=(const wxRichTextRange& range) const { return (m_start != range.m_start && m_end != range.m_end); }
wxRichTextRange operator -(const wxRichTextRange& range) const { return wxRichTextRange(m_start - range.m_start, m_end - range.m_end); }
wxRichTextRange operator +(const wxRichTextRange& range) const { return wxRichTextRange(m_start + range.m_start, m_end + range.m_end); }
/// Swaps the start and end
void Swap() { long tmp = m_start; m_start = m_end; m_end = tmp; }
+ /// Convert to internal form: (n, n) is the range of a single character.
+ wxRichTextRange ToInternal() const { return wxRichTextRange(m_start, m_end-1); }
+
+ /// Convert from internal to public API form: (n, n+1) is the range of a single character.
+ wxRichTextRange FromInternal() const { return wxRichTextRange(m_start, m_end+1); }
+
protected:
long m_start;
long m_end;
public:
// ctors
wxTextAttrEx(const wxTextAttrEx& attr);
+ wxTextAttrEx(const wxTextAttr& attr) { Init(); (*this) = attr; }
wxTextAttrEx() { Init(); }
// Initialise this object.
void operator= (const wxTextAttr& attr);
// setters
- void SetCharacterStyleName(const wxString& name) { m_characterStyleName = name; }
- void SetParagraphStyleName(const wxString& name) { m_paragraphStyleName = name; }
- void SetParagraphSpacingAfter(int spacing) { m_paragraphSpacingAfter = spacing; }
- void SetParagraphSpacingBefore(int spacing) { m_paragraphSpacingBefore = spacing; }
- void SetLineSpacing(int spacing) { m_lineSpacing = spacing; }
- void SetBulletStyle(int style) { m_bulletStyle = style; }
- void SetBulletNumber(int n) { m_bulletNumber = n; }
- void SetBulletSymbol(wxChar symbol) { m_bulletSymbol = symbol; }
+ void SetCharacterStyleName(const wxString& name) { m_characterStyleName = name; SetFlags(GetFlags() | wxTEXT_ATTR_CHARACTER_STYLE_NAME); }
+ void SetParagraphStyleName(const wxString& name) { m_paragraphStyleName = name; SetFlags(GetFlags() | wxTEXT_ATTR_PARAGRAPH_STYLE_NAME); }
+ void SetParagraphSpacingAfter(int spacing) { m_paragraphSpacingAfter = spacing; SetFlags(GetFlags() | wxTEXT_ATTR_PARA_SPACING_AFTER); }
+ void SetParagraphSpacingBefore(int spacing) { m_paragraphSpacingBefore = spacing; SetFlags(GetFlags() | wxTEXT_ATTR_PARA_SPACING_BEFORE); }
+ void SetLineSpacing(int spacing) { m_lineSpacing = spacing; SetFlags(GetFlags() | wxTEXT_ATTR_LINE_SPACING); }
+ void SetBulletStyle(int style) { m_bulletStyle = style; SetFlags(GetFlags() | wxTEXT_ATTR_BULLET_STYLE); }
+ void SetBulletNumber(int n) { m_bulletNumber = n; SetFlags(GetFlags() | wxTEXT_ATTR_BULLET_NUMBER); }
+ void SetBulletSymbol(wxChar symbol) { m_bulletSymbol = symbol; SetFlags(GetFlags() | wxTEXT_ATTR_BULLET_SYMBOL); }
const wxString& GetCharacterStyleName() const { return m_characterStyleName; }
const wxString& GetParagraphStyleName() const { return m_paragraphStyleName; }
bool HasParagraphSpacingAfter() const { return HasFlag(wxTEXT_ATTR_PARA_SPACING_AFTER); }
bool HasParagraphSpacingBefore() const { return HasFlag(wxTEXT_ATTR_PARA_SPACING_BEFORE); }
bool HasLineSpacing() const { return HasFlag(wxTEXT_ATTR_LINE_SPACING); }
- bool HasCharacterStyleName() const { return HasFlag(wxTEXT_ATTR_CHARACTER_STYLE_NAME); }
- bool HasParagraphStyleName() const { return HasFlag(wxTEXT_ATTR_PARAGRAPH_STYLE_NAME); }
+ bool HasCharacterStyleName() const { return HasFlag(wxTEXT_ATTR_CHARACTER_STYLE_NAME) || !m_characterStyleName.IsEmpty(); }
+ bool HasParagraphStyleName() const { return HasFlag(wxTEXT_ATTR_PARAGRAPH_STYLE_NAME) || !m_paragraphStyleName.IsEmpty(); }
bool HasBulletStyle() const { return HasFlag(wxTEXT_ATTR_BULLET_STYLE); }
bool HasBulletNumber() const { return HasFlag(wxTEXT_ATTR_BULLET_NUMBER); }
bool HasBulletSymbol() const { return HasFlag(wxTEXT_ATTR_BULLET_SYMBOL); }
void SetFlags(long flags) { m_flags = flags; }
- void SetCharacterStyleName(const wxString& name) { m_characterStyleName = name; }
- void SetParagraphStyleName(const wxString& name) { m_paragraphStyleName = name; }
- void SetParagraphSpacingAfter(int spacing) { m_paragraphSpacingAfter = spacing; }
- void SetParagraphSpacingBefore(int spacing) { m_paragraphSpacingBefore = spacing; }
- void SetLineSpacing(int spacing) { m_lineSpacing = spacing; }
- void SetBulletStyle(int style) { m_bulletStyle = style; }
- void SetBulletNumber(int n) { m_bulletNumber = n; }
- void SetBulletSymbol(wxChar symbol) { m_bulletSymbol = symbol; }
+ void SetCharacterStyleName(const wxString& name) { m_characterStyleName = name; m_flags |= wxTEXT_ATTR_CHARACTER_STYLE_NAME; }
+ void SetParagraphStyleName(const wxString& name) { m_paragraphStyleName = name; m_flags |= wxTEXT_ATTR_PARAGRAPH_STYLE_NAME; }
+ void SetParagraphSpacingAfter(int spacing) { m_paragraphSpacingAfter = spacing; m_flags |= wxTEXT_ATTR_PARA_SPACING_AFTER; }
+ void SetParagraphSpacingBefore(int spacing) { m_paragraphSpacingBefore = spacing; m_flags |= wxTEXT_ATTR_PARA_SPACING_BEFORE; }
+ void SetLineSpacing(int spacing) { m_lineSpacing = spacing; m_flags |= wxTEXT_ATTR_LINE_SPACING; }
+ void SetBulletStyle(int style) { m_bulletStyle = style; m_flags |= wxTEXT_ATTR_BULLET_STYLE; }
+ void SetBulletNumber(int n) { m_bulletNumber = n; m_flags |= wxTEXT_ATTR_BULLET_NUMBER; }
+ void SetBulletSymbol(wxChar symbol) { m_bulletSymbol = symbol; m_flags |= wxTEXT_ATTR_BULLET_NUMBER; }
const wxColour& GetTextColour() const { return m_colText; }
const wxColour& GetBackgroundColour() const { return m_colBack; }
bool HasParagraphSpacingAfter() const { return (m_flags & wxTEXT_ATTR_PARA_SPACING_AFTER) != 0; }
bool HasParagraphSpacingBefore() const { return (m_flags & wxTEXT_ATTR_PARA_SPACING_BEFORE) != 0; }
bool HasLineSpacing() const { return (m_flags & wxTEXT_ATTR_LINE_SPACING) != 0; }
- bool HasCharacterStyleName() const { return (m_flags & wxTEXT_ATTR_CHARACTER_STYLE_NAME) != 0; }
- bool HasParagraphStyleName() const { return (m_flags & wxTEXT_ATTR_PARAGRAPH_STYLE_NAME) != 0; }
+ bool HasCharacterStyleName() const { return (m_flags & wxTEXT_ATTR_CHARACTER_STYLE_NAME) != 0 || !m_characterStyleName.IsEmpty(); }
+ bool HasParagraphStyleName() const { return (m_flags & wxTEXT_ATTR_PARAGRAPH_STYLE_NAME) != 0 || !m_paragraphStyleName.IsEmpty(); }
bool HasBulletStyle() const { return (m_flags & wxTEXT_ATTR_BULLET_STYLE) != 0; }
bool HasBulletNumber() const { return (m_flags & wxTEXT_ATTR_BULLET_NUMBER) != 0; }
bool HasBulletSymbol() const { return (m_flags & wxTEXT_ATTR_BULLET_SYMBOL) != 0; }
// Constructors
wxRichTextObject(wxRichTextObject* parent = NULL);
- ~wxRichTextObject();
+ virtual ~wxRichTextObject();
// Overrideables
// Constructors
wxRichTextCompositeObject(wxRichTextObject* parent = NULL);
- ~wxRichTextCompositeObject();
+ virtual ~wxRichTextCompositeObject();
// Overrideables
virtual bool SetStyle(const wxRichTextRange& range, const wxTextAttrEx& style, bool withUndo = true);
/// Get the text attributes for this position.
- virtual bool GetStyle(long position, wxTextAttrEx& style) const;
- virtual bool GetStyle(long position, wxRichTextAttr& style) const;
+ virtual bool GetStyle(long position, wxTextAttrEx& style);
+ virtual bool GetStyle(long position, wxRichTextAttr& style);
/// 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
wxRichTextParagraph(wxRichTextObject* parent = NULL, wxTextAttrEx* style = NULL);
wxRichTextParagraph(const wxString& text, wxRichTextObject* parent = NULL, wxTextAttrEx* style = NULL);
- ~wxRichTextParagraph();
+ virtual ~wxRichTextParagraph();
wxRichTextParagraph(const wxRichTextParagraph& obj):wxRichTextBox() { Copy(obj); }
// Overrideables
public:
wxRichTextImageBlock();
wxRichTextImageBlock(const wxRichTextImageBlock& block);
- ~wxRichTextImageBlock();
+ virtual ~wxRichTextImageBlock();
void Init();
void Clear();
wxRichTextBuffer() { Init(); }
wxRichTextBuffer(const wxRichTextBuffer& obj):wxRichTextParagraphLayoutBox() { Init(); Copy(obj); }
- ~wxRichTextBuffer() ;
+ virtual ~wxRichTextBuffer() ;
// Accessors
// Ctor for multiple actions
wxRichTextCommand(const wxString& name);
- ~wxRichTextCommand();
+ virtual ~wxRichTextCommand();
bool Do();
bool Undo();
wxRichTextAction(wxRichTextCommand* cmd, const wxString& name, wxRichTextCommandId id, wxRichTextBuffer* buffer,
wxRichTextCtrl* ctrl, bool ignoreFirstTime = false);
- ~wxRichTextAction();
+ virtual ~wxRichTextAction();
bool Do();
bool Undo();