X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3a9fa0d6b59c5c299766b3ed71ccadeeebf3dbb8..2d4957f2401a8814f90cda21ef945d99bc74596e:/include/wx/textctrl.h?ds=sidebyside diff --git a/include/wx/textctrl.h b/include/wx/textctrl.h index df004c9479..b5551bbef5 100644 --- a/include/wx/textctrl.h +++ b/include/wx/textctrl.h @@ -25,7 +25,8 @@ #if wxUSE_TEXTCTRL #include "wx/control.h" // the base class -#include "wx/dynarray.h" +#include "wx/dynarray.h" // wxArrayInt +#include "wx/gdicmn.h" // wxPoint // 16-bit Borland 4.0 doesn't seem to allow multiple inheritance with wxWindow // and streambuf: it complains about deriving a huge class from the huge class @@ -48,6 +49,17 @@ class WXDLLEXPORT wxTextCtrl; class WXDLLEXPORT wxTextCtrlBase; +// ---------------------------------------------------------------------------- +// wxTextCtrl types +// ---------------------------------------------------------------------------- + +// wxTextPos is the position in the text +typedef long wxTextPos; + +// wxTextCoord is the line or row number (which should have been unsigned but +// is long for backwards compatibility) +typedef long wxTextCoord; + // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -102,6 +114,21 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxTextCtrlNameStr; // wxTE_RICH controls - can be used together with or instead of wxTE_RICH #define wxTE_RICH2 0x8000 +// ---------------------------------------------------------------------------- +// wxTextCtrl::HitTest return values +// ---------------------------------------------------------------------------- + +// the point asked is ... +enum wxTextCtrlHitTestResult +{ + wxTE_HT_UNKNOWN = -2, // this means HitTest() is simply not implemented + wxTE_HT_BEFORE, // either to the left or upper + wxTE_HT_ON_TEXT, // directly on + wxTE_HT_BELOW, // below [the last line] + wxTE_HT_BEYOND // after [the end of line] +}; +// ... the character returned + // ---------------------------------------------------------------------------- // Types for wxTextAttr // ---------------------------------------------------------------------------- @@ -295,6 +322,14 @@ public: virtual void ShowPosition(long pos) = 0; + // find the character at position given in pixels + // + // NB: pt is in device coords (not adjusted for the client area origin nor + // scrolling) + virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, + wxTextCoord *col, + wxTextCoord *row) const; + // Clipboard operations virtual void Copy() = 0; virtual void Cut() = 0; @@ -336,7 +371,9 @@ public: wxTextCtrl& operator<<(const wxChar c); // do the window-specific processing after processing the update event - virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) ; + virtual void DoUpdateWindowUI(wxUpdateUIEvent& event); + + virtual bool ShouldInheritColours() const { return false; } protected: // the name of the last file loaded with LoadFile() which will be used by @@ -437,7 +474,7 @@ typedef void (wxEvtHandler::*wxTextUrlEventFunction)(wxTextUrlEvent&); class WXDLLEXPORT wxStreamToTextRedirector { private: - void Init() + void Init(wxTextCtrl *text) { m_sbufOld = m_ostr.rdbuf(); m_ostr.rdbuf(text); @@ -447,13 +484,13 @@ public: wxStreamToTextRedirector(wxTextCtrl *text) : m_ostr(wxSTD cout) { - Init(); + Init(text); } wxStreamToTextRedirector(wxTextCtrl *text, wxSTD ostream *ostr) : m_ostr(*ostr) { - Init(); + Init(text); } ~wxStreamToTextRedirector()