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;
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