X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/38f833b10c071603eb8d7739ab31b1c07c4576f1..515a31bf6503ba2e66be621019c8b92fa31d48a3:/include/wx/richtext/richtextctrl.h?ds=inline diff --git a/include/wx/richtext/richtextctrl.h b/include/wx/richtext/richtextctrl.h index cf57742c59..6df1e6efde 100644 --- a/include/wx/richtext/richtextctrl.h +++ b/include/wx/richtext/richtextctrl.h @@ -95,14 +95,15 @@ public: wxRichTextCtrl( ); wxRichTextCtrl( wxWindow* parent, wxWindowID id = -1, const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxRE_MULTILINE ); + long style = wxRE_MULTILINE, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxTextCtrlNameStr); + virtual ~wxRichTextCtrl( ); // Operations /// Creation bool Create( wxWindow* parent, wxWindowID id = -1, const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxRE_MULTILINE ); + long style = wxRE_MULTILINE, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxTextCtrlNameStr ); /// Member initialisation void Init(); @@ -154,6 +155,12 @@ public: virtual bool DoLoadFile(const wxString& file, int fileType); virtual bool DoSaveFile(const wxString& file = wxEmptyString, int fileType = wxRICHTEXT_TYPE_ANY); + /// Set the handler flags, controlling loading and saving + void SetHandlerFlags(int flags) { GetBuffer().SetHandlerFlags(flags); } + + /// Get the handler flags, controlling loading and saving + int GetHandlerFlags() const { return GetBuffer().GetHandlerFlags(); } + // sets/clears the dirty flag virtual void MarkDirty(); virtual void DiscardEdits(); @@ -177,6 +184,11 @@ public: virtual bool GetStyle(long position, wxTextAttrEx& style); virtual bool GetStyle(long position, wxRichTextAttr& style); +/* + // get the common set of styles for the range + bool GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& style); + bool GetStyleForRange(const wxRichTextRange& range, wxTextAttrEx& style); +*/ // extended style setting operation with flags including: // wxRICHTEXT_SETSTYLE_WITH_UNDO, wxRICHTEXT_SETSTYLE_OPTIMIZE, wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY, wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY // see richtextbuffer.h for more details. @@ -205,12 +217,12 @@ public: /// 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, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); + 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, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int specifiedLevel = -1); + 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); // translate between the position (which is just an index in the text ctrl @@ -378,12 +390,19 @@ public: bool EndNumberedBullet() { return GetBuffer().EndNumberedBullet(); } /// Begin symbol bullet - bool BeginSymbolBullet(wxChar symbol, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL) + bool BeginSymbolBullet(const wxString& symbol, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL) { return GetBuffer().BeginSymbolBullet(symbol, leftIndent, leftSubIndent, bulletStyle); } /// End symbol bullet bool EndSymbolBullet() { return GetBuffer().EndSymbolBullet(); } + /// Begin standard bullet + bool BeginStandardBullet(const wxString& bulletName, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_STANDARD) + { return GetBuffer().BeginStandardBullet(bulletName, leftIndent, leftSubIndent, bulletStyle); } + + /// End standard bullet + bool EndStandardBullet() { return GetBuffer().EndStandardBullet(); } + /// Begin named character style bool BeginCharacterStyle(const wxString& characterStyle) { return GetBuffer().BeginCharacterStyle(characterStyle); } @@ -396,6 +415,18 @@ public: /// End named character style bool EndParagraphStyle() { return GetBuffer().EndParagraphStyle(); } + /// Begin named list style + bool BeginListStyle(const wxString& listStyle, int level = 1, int number = 1) { return GetBuffer().BeginListStyle(listStyle, level, number); } + + /// End named character style + bool EndListStyle() { return GetBuffer().EndListStyle(); } + + /// Begin URL + bool BeginURL(const wxString& url, const wxString& characterStyle = wxEmptyString) { return GetBuffer().BeginURL(url, characterStyle); } + + /// End URL + bool EndURL() { return GetBuffer().EndURL(); } + /// Sets the default style to the style under the cursor bool SetDefaultStyleToCursorStyle(); @@ -500,11 +531,11 @@ public: /// flags indicating which attributes are of interest. virtual bool HasCharacterAttributes(const wxRichTextRange& range, const wxTextAttrEx& style) const { - return GetBuffer().HasCharacterAttributes(range, style); + return GetBuffer().HasCharacterAttributes(range.ToInternal(), style); } virtual bool HasCharacterAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const { - return GetBuffer().HasCharacterAttributes(range, style); + return GetBuffer().HasCharacterAttributes(range.ToInternal(), style); } /// Test if this whole range has paragraph attributes of the specified kind. If any @@ -513,11 +544,11 @@ public: /// flags indicating which attributes are of interest. virtual bool HasParagraphAttributes(const wxRichTextRange& range, const wxTextAttrEx& style) const { - return GetBuffer().HasParagraphAttributes(range, style); + return GetBuffer().HasParagraphAttributes(range.ToInternal(), style); } virtual bool HasParagraphAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const { - return GetBuffer().HasParagraphAttributes(range, style); + return GetBuffer().HasParagraphAttributes(range.ToInternal(), style); } /// Is all of the selection bold? @@ -735,8 +766,15 @@ public: 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(); + WX_FORWARD_TO_SCROLL_HELPER() // Overrides @@ -799,6 +837,12 @@ private: /// Threshold for doing delayed layout long m_delayedLayoutThreshold; + + /// Cursors + wxCursor m_textCursor; + wxCursor m_urlCursor; + + static wxArrayString sm_availableFontNames; }; /*! @@ -810,12 +854,13 @@ class WXDLLIMPEXP_RICHTEXT wxRichTextEvent : public wxNotifyEvent public: wxRichTextEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) : wxNotifyEvent(commandType, winid), - m_itemIndex(-1), m_flags(0) + m_itemIndex(-1), m_flags(0), m_oldStyleSheet(NULL), m_newStyleSheet(NULL) { } wxRichTextEvent(const wxRichTextEvent& event) : wxNotifyEvent(event), - m_itemIndex(event.m_itemIndex), m_flags(event.m_flags) + m_itemIndex(event.m_itemIndex), m_flags(event.m_flags), + m_oldStyleSheet(event.m_oldStyleSheet), m_newStyleSheet(event.m_newStyleSheet) { } int GetIndex() const { return m_itemIndex; } @@ -824,11 +869,19 @@ public: int GetFlags() const { return m_flags; } void SetFlags(int flags) { m_flags = flags; } + wxRichTextStyleSheet* GetOldStyleSheet() const { return m_oldStyleSheet; } + void SetOldStyleSheet(wxRichTextStyleSheet* sheet) { m_oldStyleSheet = sheet; } + + wxRichTextStyleSheet* GetNewStyleSheet() const { return m_newStyleSheet; } + void SetNewStyleSheet(wxRichTextStyleSheet* sheet) { m_newStyleSheet = sheet; } + virtual wxEvent *Clone() const { return new wxRichTextEvent(*this); } protected: - int m_itemIndex; - int m_flags; + int m_itemIndex; + int m_flags; + wxRichTextStyleSheet* m_oldStyleSheet; + wxRichTextStyleSheet* m_newStyleSheet; private: DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRichTextEvent) @@ -846,6 +899,11 @@ BEGIN_DECLARE_EVENT_TYPES() DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_MIDDLE_CLICK, 2604) DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_LEFT_DCLICK, 2605) DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_RETURN, 2606) + + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING, 2607) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED, 2608) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING, 2609) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED, 2610) END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxRichTextEventFunction)(wxRichTextEvent&); @@ -858,9 +916,13 @@ typedef void (wxEvtHandler::*wxRichTextEventFunction)(wxRichTextEvent&); #define EVT_RICHTEXT_LEFT_DCLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_RICHTEXT_LEFT_DCLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxRichTextEventFunction, & fn ), NULL ), #define EVT_RICHTEXT_RETURN(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_RICHTEXT_RETURN, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxRichTextEventFunction, & fn ), NULL ), +#define EVT_RICHTEXT_STYLESHEET_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxRichTextEventFunction, & fn ), NULL ), +#define EVT_RICHTEXT_STYLESHEET_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxRichTextEventFunction, & fn ), NULL ), +#define EVT_RICHTEXT_STYLESHEET_REPLACING(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxRichTextEventFunction, & fn ), NULL ), +#define EVT_RICHTEXT_STYLESHEET_REPLACED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxRichTextEventFunction, & fn ), NULL ), + #endif // wxUSE_RICHTEXT #endif // _WX_RICHTEXTCTRL_H_ -