X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eda40bfc08b7c15d395316768ea662959b5884b9..bbc1265c400d44962621a6b2c7c36ccff097207c:/include/wx/textctrl.h diff --git a/include/wx/textctrl.h b/include/wx/textctrl.h index 05d53de239..cee3bcad45 100644 --- a/include/wx/textctrl.h +++ b/include/wx/textctrl.h @@ -16,7 +16,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "textctrlbase.h" #endif @@ -37,7 +37,7 @@ #ifndef NO_TEXT_WINDOW_STREAM #if wxUSE_STD_IOSTREAM - #include "wx/ioswrap.h" // for iostream classes if we need them + #include "wx/ioswrap.h" // derivation: we need the full decls. #else // !wxUSE_STD_IOSTREAM // can't compile this feature in if we don't use streams at all #define NO_TEXT_WINDOW_STREAM @@ -58,18 +58,27 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; // wxTextCtrl style flags // ---------------------------------------------------------------------------- -// the flag bits 0x0001, 2, 4 and 8 are free but should be used only for the +// the flag bits 0x0001, and 0x0004 are free but should be used only for the // things which don't make sense for a text control used by wxTextEntryDialog // because they would otherwise conflict with wxOK, wxCANCEL, wxCENTRE + +#define wxTE_NO_VSCROLL 0x0002 +#define wxTE_AUTO_SCROLL 0x0008 + #define wxTE_READONLY 0x0010 #define wxTE_MULTILINE 0x0020 #define wxTE_PROCESS_TAB 0x0040 +// alignment flags +#define wxTE_LEFT 0x0000 // 0x0000 +#define wxTE_CENTER wxALIGN_CENTER_HORIZONTAL // 0x0100 +#define wxTE_RIGHT wxALIGN_RIGHT // 0x0200 +#define wxTE_CENTRE wxTE_CENTER + // this style means to use RICHEDIT control and does something only under wxMSW // and Win32 and is silently ignored under all other platforms #define wxTE_RICH 0x0080 -#define wxTE_NO_VSCROLL 0x0100 -#define wxTE_AUTO_SCROLL 0x0200 + #define wxTE_PROCESS_ENTER 0x0400 #define wxTE_PASSWORD 0x0800 @@ -89,6 +98,10 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; #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 // ---------------------------------------------------------------------------- @@ -161,6 +174,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; @@ -168,6 +183,10 @@ public: virtual bool IsModified() const = 0; virtual bool IsEditable() const = 0; + // more readable flag testing methods + bool IsSingleLine() const { return !(GetWindowStyle() & wxTE_MULTILINE); } + bool IsMultiLine() const { return !IsSingleLine(); } + // If the return values from and to are the same, there is no selection. virtual void GetSelection(long* from, long* to) const = 0; @@ -197,6 +216,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 @@ -270,7 +293,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" @@ -280,10 +305,10 @@ protected: #include "wx/gtk/textctrl.h" #elif defined(__WXMAC__) #include "wx/mac/textctrl.h" +#elif defined(__WXCOCOA__) + #include "wx/cocoa/textctrl.h" #elif defined(__WXPM__) #include "wx/os2/textctrl.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/textctrl.h" #endif // ---------------------------------------------------------------------------- @@ -304,11 +329,11 @@ END_DECLARE_EVENT_TYPES() class WXDLLEXPORT wxTextUrlEvent : public wxCommandEvent { public: - wxTextUrlEvent(int id, const wxMouseEvent& evtMouse, + wxTextUrlEvent(int winid, 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, winid) + , 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; } @@ -332,7 +357,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&);