X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6dc6bcd8ab9f199765ac5c9af80a6029e5c3eef6..0bb84570cea789202aa26409a4879202a9810b70:/include/wx/richtext/richtextctrl.h diff --git a/include/wx/richtext/richtextctrl.h b/include/wx/richtext/richtextctrl.h index 4f5d5f38f0..f2d976a6dd 100644 --- a/include/wx/richtext/richtextctrl.h +++ b/include/wx/richtext/richtextctrl.h @@ -86,7 +86,8 @@ class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextStyleDefinition; * wxRichTextCtrl class declaration */ -class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl : public wxTextCtrlBase, +class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl : public wxControl, + public wxTextCtrlIface, public wxScrollHelper { DECLARE_CLASS( wxRichTextCtrl ) @@ -184,6 +185,10 @@ public: long GetSelectionAnchor() const { return m_selectionAnchor; } void SetSelectionAnchor(long anchor) { m_selectionAnchor = anchor; } + /// The wxRichTextObject object under mouse if any + wxRichTextObject* GetCurrentObject() const { return m_currentObject; } + void SetCurrentObject(wxRichTextObject* obj) { m_currentObject = obj; } + // Operations // editing @@ -219,24 +224,32 @@ public: // methods allow to apply the given text style to the given selection or to // set/get the style which will be used for all appended text virtual bool SetStyle(long start, long end, const wxTextAttr& style); + virtual bool SetStyle(long start, long end, const wxRichTextAttr& style); virtual bool SetStyle(const wxRichTextRange& range, const wxTextAttr& style); + virtual bool SetStyle(const wxRichTextRange& range, const wxRichTextAttr& style); virtual bool GetStyle(long position, wxTextAttr& style); + virtual bool GetStyle(long position, wxRichTextAttr& style); + + // Set an image style + void SetImageStyle(wxRichTextImage *image, const wxRichTextAttr& textAttr); // get the common set of styles for the range virtual bool GetStyleForRange(const wxRichTextRange& range, wxTextAttr& style); + virtual bool GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& 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. - virtual bool SetStyleEx(const wxRichTextRange& range, const wxTextAttr& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); + virtual bool SetStyleEx(const wxRichTextRange& range, const wxRichTextAttr& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); /// Get the content (uncombined) attributes for this position. - virtual bool GetUncombinedStyle(long position, wxTextAttr& style); + virtual bool GetUncombinedStyle(long position, wxRichTextAttr& style); virtual bool SetDefaultStyle(const wxTextAttr& style); + virtual bool SetDefaultStyle(const wxRichTextAttr& style); - virtual const wxTextAttr& GetDefaultStyleEx() const { return GetDefaultStyle(); } + virtual const wxRichTextAttr& GetDefaultStyleEx() const; - virtual const wxTextAttr& GetDefaultStyle() const; + //virtual const wxTextAttr& GetDefaultStyle() const; /// Set list style virtual bool SetListStyle(const wxRichTextRange& range, wxRichTextListStyleDefinition* def, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); @@ -309,17 +322,21 @@ public: /// Write an image at the current insertion point. Supply optional type to use /// for internal and file storage of the raw data. - virtual bool WriteImage(const wxImage& image, wxBitmapType bitmapType = wxBITMAP_TYPE_PNG); + virtual bool WriteImage(const wxImage& image, wxBitmapType bitmapType = wxBITMAP_TYPE_PNG, + const wxRichTextAttr& textAttr = wxRichTextAttr()); /// Write a bitmap at the current insertion point. Supply optional type to use /// for internal and file storage of the raw data. - virtual bool WriteImage(const wxBitmap& bitmap, wxBitmapType bitmapType = wxBITMAP_TYPE_PNG); + virtual bool WriteImage(const wxBitmap& bitmap, wxBitmapType bitmapType = wxBITMAP_TYPE_PNG, + const wxRichTextAttr& textAttr = wxRichTextAttr()); /// Load an image from file and write at the current insertion point. - virtual bool WriteImage(const wxString& filename, wxBitmapType bitmapType); + virtual bool WriteImage(const wxString& filename, wxBitmapType bitmapType, + const wxRichTextAttr& textAttr = wxRichTextAttr()); /// Write an image block at the current insertion point. - virtual bool WriteImage(const wxRichTextImageBlock& imageBlock); + virtual bool WriteImage(const wxRichTextImageBlock& imageBlock, + const wxRichTextAttr& textAttr = wxRichTextAttr()); /// Insert a newline (actually paragraph) at the current insertion point. virtual bool Newline(); @@ -328,12 +345,12 @@ public: virtual bool LineBreak(); /// Set basic (overall) style - virtual void SetBasicStyle(const wxTextAttr& style) { GetBuffer().SetBasicStyle(style); } + virtual void SetBasicStyle(const wxRichTextAttr& style) { GetBuffer().SetBasicStyle(style); } /// Get basic (overall) style - virtual const wxTextAttr& GetBasicStyle() const { return GetBuffer().GetBasicStyle(); } + virtual const wxRichTextAttr& GetBasicStyle() const { return GetBuffer().GetBasicStyle(); } - virtual bool BeginStyle(const wxTextAttr& style) { return GetBuffer().BeginStyle(style); } + virtual bool BeginStyle(const wxRichTextAttr& style) { return GetBuffer().BeginStyle(style); } /// End the style virtual bool EndStyle() { return GetBuffer().EndStyle(); } @@ -554,7 +571,7 @@ public: /// of the attributes are different within the range, the test fails. You /// can use this to implement, for example, bold button updating. style must have /// flags indicating which attributes are of interest. - virtual bool HasCharacterAttributes(const wxRichTextRange& range, const wxTextAttr& style) const + virtual bool HasCharacterAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const { return GetBuffer().HasCharacterAttributes(range.ToInternal(), style); } @@ -563,7 +580,7 @@ public: /// of the attributes are different within the range, the test fails. You /// can use this to implement, for example, centering button updating. style must have /// flags indicating which attributes are of interest. - virtual bool HasParagraphAttributes(const wxRichTextRange& range, const wxTextAttr& style) const + virtual bool HasParagraphAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const { return GetBuffer().HasParagraphAttributes(range.ToInternal(), style); } @@ -621,6 +638,7 @@ public: void OnUndo(wxCommandEvent& event); void OnRedo(wxCommandEvent& event); void OnSelectAll(wxCommandEvent& event); + void OnImage(wxCommandEvent& event); void OnClear(wxCommandEvent& event); void OnUpdateCut(wxUpdateUIEvent& event); @@ -629,6 +647,7 @@ public: void OnUpdateUndo(wxUpdateUIEvent& event); void OnUpdateRedo(wxUpdateUIEvent& event); void OnUpdateSelectAll(wxUpdateUIEvent& event); + void OnUpdateImage(wxUpdateUIEvent& event); void OnUpdateClear(wxUpdateUIEvent& event); // Show a context menu for Rich Edit controls (the standard @@ -782,7 +801,7 @@ public: /// Convenience function that tells the control to start reflecting the default /// style, since the user is changing it. - void SetAndShowDefaultStyle(const wxTextAttr& attr) + void SetAndShowDefaultStyle(const wxRichTextAttr& attr) { SetDefaultStyle(attr); SetCaretPositionForDefaultStyle(GetCaretPosition()); @@ -803,8 +822,12 @@ public: virtual wxString DoGetValue() const; protected: + // implement the wxTextEntry pure virtual method + virtual wxWindow *GetEditableWindow() { return this; } + // FIXME: this does not work, it allows this code to compile but will fail // during run-time +#ifndef __WXUNIVERSAL__ #ifdef __WXMSW__ virtual WXHWND GetEditHWND() const { return GetHWND(); } #endif @@ -812,10 +835,10 @@ protected: virtual WXWidget GetTextWidget() const { return NULL; } #endif #ifdef __WXGTK20__ - virtual wxWindow *GetEditableWindow() { return this; } virtual GtkEditable *GetEditable() const { return NULL; } virtual GtkEntry *GetEntry() const { return NULL; } #endif +#endif // !__WXUNIVERSAL__ // Overrides protected: @@ -881,6 +904,9 @@ private: wxCursor m_urlCursor; static wxArrayString sm_availableFontNames; + /// The wxRichTextObject object under mouse if any + wxRichTextObject* m_currentObject; + long m_imagePropertyId; }; /*!