#define wxRichTextAttr wxTextAttr
#define wxTextAttrEx wxTextAttr
-// Setting wxRICHTEXT_USE_OWN_CARET to 1 implements a non-flashing
-// cursor reliably without using wxClientDC in case there
+// Setting wxRICHTEXT_USE_OWN_CARET to 1 implements a
+// caret reliably without using wxClientDC in case there
// are platform-specific problems with the generic caret.
+#if defined(__WXGTK__) || defined(__WXMAC__)
+#define wxRICHTEXT_USE_OWN_CARET 1
+#else
#define wxRICHTEXT_USE_OWN_CARET 0
+#endif
// Switch off for binary compatibility, on for faster drawing
-#define wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING 1
+// Note: this seems to be buggy (overzealous use of extents) so
+// don't use for now
+#define wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING 0
/*!
* Special characters
extern WXDLLIMPEXP_RICHTEXT const wxChar wxRichTextLineBreakChar;
/*!
- * File types
+ * File types in wxRichText context.
*/
enum wxRichTextFileType
{
/*!
* Flags returned from hit-testing
*/
+enum wxRichTextHitTestFlags
+{
+ // The point was not on this object
+ wxRICHTEXT_HITTEST_NONE = 0x01,
+
+ // The point was before the position returned from HitTest
+ wxRICHTEXT_HITTEST_BEFORE = 0x02,
+
+ // The point was after the position returned from HitTest
+ wxRICHTEXT_HITTEST_AFTER = 0x04,
-// The point was not on this object
-#define wxRICHTEXT_HITTEST_NONE 0x01
-// The point was before the position returned from HitTest
-#define wxRICHTEXT_HITTEST_BEFORE 0x02
-// The point was after the position returned from HitTest
-#define wxRICHTEXT_HITTEST_AFTER 0x04
-// The point was on the position returned from HitTest
-#define wxRICHTEXT_HITTEST_ON 0x08
-// The point was on space outside content
-#define wxRICHTEXT_HITTEST_OUTSIDE 0x10
+ // The point was on the position returned from HitTest
+ wxRICHTEXT_HITTEST_ON = 0x08,
+
+ // The point was on space outside content
+ wxRICHTEXT_HITTEST_OUTSIDE = 0x10
+};
/*!
* Flags for GetRangeSize
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); }
+ 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); }
virtual int GetParagraphLength(long paragraphNumber) const;
/// Get the number of paragraphs
- virtual int GetParagraphCount() const { return GetChildCount(); }
+ virtual int GetParagraphCount() const { return static_cast<int>(GetChildCount()); }
/// Get the number of visible lines
virtual int GetLineCount() const;
/// Combines 'style' with 'currentStyle' for the purpose of summarising the attributes of a range of
/// content.
- bool CollectStyle(wxTextAttr& currentStyle, const wxTextAttr& style, long& multipleStyleAttributes, int& multipleTextEffectAttributes);
+ bool CollectStyle(wxTextAttr& currentStyle, const wxTextAttr& style, long& multipleStyleAttributes, int& multipleTextEffectAttributes, int& absentStyleAttributes, int& absentTextEffectAttributes);
/// Set list style
virtual bool SetListStyle(const wxRichTextRange& range, wxRichTextListStyleDefinition* def, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1);
// Implementation
/// Apply paragraph styles such as centering to the wrapped lines
- virtual void ApplyParagraphStyle(const wxTextAttr& attr, const wxRect& rect);
+ virtual void ApplyParagraphStyle(const wxTextAttr& attr, const wxRect& rect, wxDC& dc);
/// Insert text at the given position
virtual bool InsertText(long pos, const wxString& text);
// in a larger document
#define wxRICHTEXT_HANDLER_NO_HEADER_FOOTER 0x0080
+// Convert the more common face names to names that will work on the current platform
+// in a larger document
+#define wxRICHTEXT_HANDLER_CONVERT_FACENAMES 0x0100
+
/*!
* wxRichTextFileHandler
* Base class for file handlers
public:
// ctor doesn't copy the pointer, so it shouldn't go away while this object
// is alive
- wxRichTextBufferDataObject(wxRichTextBuffer* richTextBuffer = (wxRichTextBuffer*) NULL);
+ wxRichTextBufferDataObject(wxRichTextBuffer* richTextBuffer = NULL);
virtual ~wxRichTextBufferDataObject();
// after a call to this function, the buffer is owned by the caller and it