X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d73e6791fc93a590630b6deb918a6518b91ea142..047ac72bbe45c9ee5ea271fdfa7a3c033dd93d05:/include/wx/textctrl.h diff --git a/include/wx/textctrl.h b/include/wx/textctrl.h index 9ed802bd35..f3a0c2a0bd 100644 --- a/include/wx/textctrl.h +++ b/include/wx/textctrl.h @@ -45,6 +45,7 @@ #endif class WXDLLEXPORT wxTextCtrl; +class WXDLLEXPORT wxTextCtrlBase; // ---------------------------------------------------------------------------- // constants @@ -82,6 +83,16 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; // doesn't have focus - use this style to force it to always show it #define wxTE_NOHIDESEL 0x2000 +// use wxHSCROLL to not wrap text at all, wxTE_LINEWRAP to wrap it at any +// position and wxTE_WORDWRAP to wrap at words boundary +#define wxTE_DONTWRAP wxHSCROLL +#define wxTE_LINEWRAP 0x4000 +#define wxTE_WORDWRAP 0x0000 // it's just == !wxHSCROLL + +// force using RichEdit version 2.0 or 3.0 instead of 1.0 (default) for +// wxTE_RICH controls - can be used together with or instead of wxTE_RICH +#define wxTE_RICH2 0x8000 + // ---------------------------------------------------------------------------- // wxTextAttr: a structure containing the visual attributes of a text // ---------------------------------------------------------------------------- @@ -117,6 +128,13 @@ public: return !HasTextColour() && !HasBackgroundColour() && !HasFont(); } + // 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 wxTextAttr Combine(const wxTextAttr& attr, + const wxTextAttr& attrDef, + const wxTextCtrlBase *text); + private: wxColour m_colText, m_colBack; @@ -147,6 +165,8 @@ public: virtual wxString GetValue() const = 0; virtual void SetValue(const wxString& value) = 0; + virtual wxString GetRange(long from, long to) const; + virtual int GetLineLength(long lineNo) const = 0; virtual wxString GetLineText(long lineNo) const = 0; virtual int GetNumberOfLines() const = 0; @@ -157,6 +177,8 @@ public: // If the return values from and to are the same, there is no selection. virtual void GetSelection(long* from, long* to) const = 0; + virtual wxString GetStringSelection() const; + // operations // ---------- @@ -181,6 +203,10 @@ public: virtual void WriteText(const wxString& text) = 0; virtual void AppendText(const wxString& text) = 0; + // insert the character which would have resulted from this key event, + // return TRUE if anything has been inserted + virtual bool EmulateKeyPress(const wxKeyEvent& event); + // text control under some platforms supports the text styles: these // 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 @@ -254,7 +280,9 @@ protected: // include the platform-dependent class definition // ---------------------------------------------------------------------------- -#if defined(__WXUNIVERSAL__) +#if defined(__WXX11__) + #include "wx/x11/textctrl.h" +#elif defined(__WXUNIVERSAL__) #include "wx/univ/textctrl.h" #elif defined(__WXMSW__) #include "wx/msw/textctrl.h" @@ -290,9 +318,9 @@ class WXDLLEXPORT wxTextUrlEvent : public wxCommandEvent public: wxTextUrlEvent(int id, const wxMouseEvent& evtMouse, long start, long end) - : wxCommandEvent(wxEVT_COMMAND_TEXT_URL, id), - m_evtMouse(evtMouse) - { m_start = start; m_end = end; } + : wxCommandEvent(wxEVT_COMMAND_TEXT_URL, id) + , m_evtMouse(evtMouse), m_start(start), m_end(end) + { } // get the mouse event which happend over the URL const wxMouseEvent& GetMouseEvent() const { return m_evtMouse; } @@ -316,7 +344,7 @@ private: public: // for wxWin RTTI only, don't use - wxTextUrlEvent() { } + wxTextUrlEvent() : m_evtMouse(), m_start(0), m_end(0) { } }; typedef void (wxEvtHandler::*wxTextUrlEventFunction)(wxTextUrlEvent&); @@ -337,7 +365,7 @@ class WXDLLEXPORT wxStreamToTextRedirector { public: wxStreamToTextRedirector(wxTextCtrl *text, wxSTD ostream *ostr = NULL) - : m_ostr(ostr ? *ostr : wxSTD::cout) + : m_ostr(ostr ? *ostr : wxSTD cout) { m_sbufOld = m_ostr.rdbuf(); m_ostr.rdbuf(text);