+ // apply text attribute to the range of text (only works with richedit
+ // controls)
+ virtual bool SetStyle(long start, long end, const wxTextAttr& style);
+ virtual bool SetDefaultStyle(const wxTextAttr& style);
+ virtual bool GetStyle(long position, wxTextAttr& style);
+#endif // wxUSE_RICHEDIT
+
+ // translate between the position (which is just an index in the text ctrl
+ // considering all its contents as a single strings) and (x, y) coordinates
+ // which represent column and line.
+ virtual long XYToPosition(long x, long y) const;
+ virtual bool PositionToXY(long pos, long *x, long *y) const;
+
+ virtual void ShowPosition(long pos);
+ virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const;
+ virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt,
+ wxTextCoord *col,
+ wxTextCoord *row) const
+ {
+ return wxTextCtrlBase::HitTest(pt, col, row);
+ }
+
+ // Clipboard operations
+ virtual void Copy();
+ virtual void Cut();
+ virtual void Paste();
+
+ virtual bool CanCopy() const;
+ virtual bool CanCut() const;
+ virtual bool CanPaste() const;
+
+ // Undo/redo
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual bool CanUndo() const;
+ virtual bool CanRedo() const;
+
+ // Insertion point
+ virtual void SetInsertionPoint(long pos);
+ virtual void SetInsertionPointEnd();
+ virtual long GetInsertionPoint() const;
+ virtual wxTextPos GetLastPosition() const;
+
+ virtual void SetSelection(long from, long to);
+ virtual void SetEditable(bool editable);
+
+ // Caret handling (Windows only)
+
+ bool ShowNativeCaret(bool show = true);
+ bool HideNativeCaret() { return ShowNativeCaret(false); }
+
+ // Implementation from now on
+ // --------------------------
+
+ virtual void SetWindowStyleFlag(long style);
+
+ virtual void Command(wxCommandEvent& event);
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual WXHBRUSH MSWControlColor(WXHDC hDC, WXHWND hWnd);
+
+#if wxUSE_RICHEDIT
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+
+ int GetRichVersion() const { return m_verRichEdit; }
+ bool IsRich() const { return m_verRichEdit != 0; }
+
+ // rich edit controls are not compatible with normal ones and wem ust set
+ // the colours for them otherwise
+ virtual bool SetBackgroundColour(const wxColour& colour);
+ virtual bool SetForegroundColour(const wxColour& colour);
+#else
+ bool IsRich() const { return false; }
+#endif // wxUSE_RICHEDIT
+
+#if wxUSE_INKEDIT && wxUSE_RICHEDIT
+ bool IsInkEdit() const { return m_isInkEdit != 0; }
+#else
+ bool IsInkEdit() const { return false; }