X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1215ec07d82d1b70402fe32293752f77d3d593fd..f46ad98f0df1e1b073a484cb34a91e2e1278fdb7:/include/wx/richtext/richtextbuffer.h diff --git a/include/wx/richtext/richtextbuffer.h b/include/wx/richtext/richtextbuffer.h index f321c4e5dd..38c3b901c0 100644 --- a/include/wx/richtext/richtextbuffer.h +++ b/include/wx/richtext/richtextbuffer.h @@ -117,16 +117,16 @@ * Forward declarations */ -class WXDLLIMPEXP_ADV wxRichTextCtrl; -class WXDLLIMPEXP_ADV wxRichTextObject; -class WXDLLIMPEXP_ADV wxRichTextCacheObject; -class WXDLLIMPEXP_ADV wxRichTextObjectList; -class WXDLLIMPEXP_ADV wxRichTextLine; -class WXDLLIMPEXP_ADV wxRichTextParagraph; -class WXDLLIMPEXP_ADV wxRichTextFragment; -class WXDLLIMPEXP_ADV wxRichTextFileHandler; -class WXDLLIMPEXP_ADV wxRichTextStyleSheet; -class WXDLLIMPEXP_ADV wxTextAttrEx; +class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl; +class WXDLLIMPEXP_RICHTEXT wxRichTextObject; +class WXDLLIMPEXP_RICHTEXT wxRichTextCacheObject; +class WXDLLIMPEXP_RICHTEXT wxRichTextObjectList; +class WXDLLIMPEXP_RICHTEXT wxRichTextLine; +class WXDLLIMPEXP_RICHTEXT wxRichTextParagraph; +class WXDLLIMPEXP_RICHTEXT wxRichTextFragment; +class WXDLLIMPEXP_RICHTEXT wxRichTextFileHandler; +class WXDLLIMPEXP_RICHTEXT wxRichTextStyleSheet; +class WXDLLIMPEXP_RICHTEXT wxTextAttrEx; /*! * Flags determining the available space, passed to Layout @@ -202,7 +202,7 @@ class WXDLLIMPEXP_ADV wxTextAttrEx; * This stores beginning and end positions for a range of data. */ -class WXDLLIMPEXP_ADV wxRichTextRange +class WXDLLIMPEXP_RICHTEXT wxRichTextRange { public: // Constructors @@ -258,11 +258,12 @@ protected: * wxTextAttrEx is an extended version of wxTextAttr with more paragraph attributes. */ -class WXDLLIMPEXP_ADV wxTextAttrEx: public wxTextAttr +class WXDLLIMPEXP_RICHTEXT wxTextAttrEx: public wxTextAttr { public: // ctors wxTextAttrEx(const wxTextAttrEx& attr); + wxTextAttrEx(const wxTextAttr& attr) { Init(); (*this) = attr; } wxTextAttrEx() { Init(); } // Initialise this object. @@ -293,6 +294,12 @@ public: int GetBulletNumber() const { return m_bulletNumber; } wxChar GetBulletSymbol() const { return m_bulletSymbol; } + bool HasWeight() const { return (GetFlags() & wxTEXT_ATTR_FONT_WEIGHT) != 0; } + bool HasSize() const { return (GetFlags() & wxTEXT_ATTR_FONT_SIZE) != 0; } + bool HasItalic() const { return (GetFlags() & wxTEXT_ATTR_FONT_ITALIC) != 0; } + bool HasUnderlined() const { return (GetFlags() & wxTEXT_ATTR_FONT_UNDERLINE) != 0; } + bool HasFaceName() const { return (GetFlags() & wxTEXT_ATTR_FONT_FACE) != 0; } + 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); } @@ -316,6 +323,14 @@ public: !HasParagraphSpacingAfter() && !HasParagraphSpacingBefore() && !HasLineSpacing() && !HasCharacterStyleName() && !HasParagraphStyleName() && !HasBulletNumber() && !HasBulletStyle() && !HasBulletSymbol(); } + + // return the attribute having the valid font and colours: it uses the + // attributes set in attr and falls back first to attrDefault and then to + // the text control font/colours for those attributes which are not set + static wxTextAttrEx CombineEx(const wxTextAttrEx& attr, + const wxTextAttrEx& attrDef, + const wxTextCtrlBase *text); + private: // Paragraph styles int m_paragraphSpacingAfter; @@ -337,7 +352,7 @@ private: * efficient way to query styles. */ -class WXDLLIMPEXP_ADV wxRichTextAttr +class WXDLLIMPEXP_RICHTEXT wxRichTextAttr { public: // ctors @@ -457,6 +472,12 @@ public: !HasCharacterStyleName() && !HasParagraphStyleName() && !HasBulletNumber() && !HasBulletStyle() && !HasBulletSymbol(); } + // return the attribute having the valid font and colours: it uses the + // attributes set in attr and falls back first to attrDefault and then to + // the text control font/colours for those attributes which are not set + static wxRichTextAttr Combine(const wxRichTextAttr& attr, + const wxRichTextAttr& attrDef, + const wxTextCtrlBase *text); private: long m_flags; @@ -505,7 +526,7 @@ private: * This is the base for drawable objects. */ -class WXDLLIMPEXP_ADV wxRichTextObject: public wxObject +class WXDLLIMPEXP_RICHTEXT wxRichTextObject: public wxObject { DECLARE_CLASS(wxRichTextObject) public: @@ -651,14 +672,14 @@ protected: wxTextAttrEx m_attributes; }; -WX_DECLARE_LIST_WITH_DECL( wxRichTextObject, wxRichTextObjectList, class WXDLLIMPEXP_ADV ); +WX_DECLARE_LIST_WITH_DECL( wxRichTextObject, wxRichTextObjectList, class WXDLLIMPEXP_RICHTEXT ); /*! * wxRichTextCompositeObject class declaration * Objects of this class can contain other objects. */ -class WXDLLIMPEXP_ADV wxRichTextCompositeObject: public wxRichTextObject +class WXDLLIMPEXP_RICHTEXT wxRichTextCompositeObject: public wxRichTextObject { DECLARE_CLASS(wxRichTextCompositeObject) public: @@ -739,7 +760,7 @@ protected: * This defines a 2D space to lay out objects */ -class WXDLLIMPEXP_ADV wxRichTextBox: public wxRichTextCompositeObject +class WXDLLIMPEXP_RICHTEXT wxRichTextBox: public wxRichTextCompositeObject { DECLARE_DYNAMIC_CLASS(wxRichTextBox) public: @@ -778,7 +799,7 @@ protected: * This box knows how to lay out paragraphs. */ -class WXDLLIMPEXP_ADV wxRichTextParagraphLayoutBox: public wxRichTextBox +class WXDLLIMPEXP_RICHTEXT wxRichTextParagraphLayoutBox: public wxRichTextBox { DECLARE_DYNAMIC_CLASS(wxRichTextParagraphLayoutBox) public: @@ -960,7 +981,7 @@ protected: * paragraphs for Undo/Redo, for example. */ -class WXDLLIMPEXP_ADV wxRichTextFragment: public wxRichTextParagraphLayoutBox +class WXDLLIMPEXP_RICHTEXT wxRichTextFragment: public wxRichTextParagraphLayoutBox { DECLARE_DYNAMIC_CLASS(wxRichTextFragment) public: @@ -1001,7 +1022,7 @@ protected: * start and end positions of the line. */ -class WXDLLIMPEXP_ADV wxRichTextLine +class WXDLLIMPEXP_RICHTEXT wxRichTextLine { public: // Constructors @@ -1074,14 +1095,14 @@ protected: wxRichTextParagraph* m_parent; }; -WX_DECLARE_LIST_WITH_DECL( wxRichTextLine, wxRichTextLineList , class WXDLLIMPEXP_ADV ); +WX_DECLARE_LIST_WITH_DECL( wxRichTextLine, wxRichTextLineList , class WXDLLIMPEXP_RICHTEXT ); /*! * wxRichTextParagraph class declaration * This object represents a single paragraph (or in a straight text editor, a line). */ -class WXDLLIMPEXP_ADV wxRichTextParagraph: public wxRichTextBox +class WXDLLIMPEXP_RICHTEXT wxRichTextParagraph: public wxRichTextBox { DECLARE_DYNAMIC_CLASS(wxRichTextParagraph) public: @@ -1178,7 +1199,7 @@ protected: * This object represents a single piece of text. */ -class WXDLLIMPEXP_ADV wxRichTextPlainText: public wxRichTextObject +class WXDLLIMPEXP_RICHTEXT wxRichTextPlainText: public wxRichTextObject { DECLARE_DYNAMIC_CLASS(wxRichTextPlainText) public: @@ -1254,7 +1275,7 @@ protected: class WXDLLIMPEXP_BASE wxDataInputStream; class WXDLLIMPEXP_BASE wxDataOutputStream; -class WXDLLIMPEXP_ADV wxRichTextImageBlock: public wxObject +class WXDLLIMPEXP_RICHTEXT wxRichTextImageBlock: public wxObject { public: wxRichTextImageBlock(); @@ -1331,7 +1352,7 @@ protected: * This object represents an image. */ -class WXDLLIMPEXP_ADV wxRichTextImage: public wxRichTextObject +class WXDLLIMPEXP_RICHTEXT wxRichTextImage: public wxRichTextObject { DECLARE_DYNAMIC_CLASS(wxRichTextImage) public: @@ -1395,10 +1416,10 @@ protected: * This is a kind of box, used to represent the whole buffer */ -class WXDLLIMPEXP_ADV wxRichTextCommand; -class WXDLLIMPEXP_ADV wxRichTextAction; +class WXDLLIMPEXP_RICHTEXT wxRichTextCommand; +class WXDLLIMPEXP_RICHTEXT wxRichTextAction; -class WXDLLIMPEXP_ADV wxRichTextBuffer: public wxRichTextParagraphLayoutBox +class WXDLLIMPEXP_RICHTEXT wxRichTextBuffer: public wxRichTextParagraphLayoutBox { DECLARE_DYNAMIC_CLASS(wxRichTextBuffer) public: @@ -1696,8 +1717,8 @@ enum wxRichTextCommandId * */ -class WXDLLIMPEXP_ADV wxRichTextAction; -class WXDLLIMPEXP_ADV wxRichTextCommand: public wxCommand +class WXDLLIMPEXP_RICHTEXT wxRichTextAction; +class WXDLLIMPEXP_RICHTEXT wxRichTextCommand: public wxCommand { public: // Ctor for one action @@ -1727,7 +1748,7 @@ protected: * There can be more than one action in a command. */ -class WXDLLIMPEXP_ADV wxRichTextAction: public wxObject +class WXDLLIMPEXP_RICHTEXT wxRichTextAction: public wxObject { public: wxRichTextAction(wxRichTextCommand* cmd, const wxString& name, wxRichTextCommandId id, wxRichTextBuffer* buffer, @@ -1793,7 +1814,7 @@ protected: * Base class for file handlers */ -class WXDLLIMPEXP_ADV wxRichTextFileHandler: public wxObject +class WXDLLIMPEXP_RICHTEXT wxRichTextFileHandler: public wxObject { DECLARE_CLASS(wxRichTextFileHandler) public: @@ -1859,7 +1880,7 @@ protected: * Plain text handler */ -class WXDLLIMPEXP_ADV wxRichTextPlainTextHandler: public wxRichTextFileHandler +class WXDLLIMPEXP_RICHTEXT wxRichTextPlainTextHandler: public wxRichTextFileHandler { DECLARE_CLASS(wxRichTextPlainTextHandler) public: