X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f74c9c6b5f3bb21539797e4338eeaecbd0cdfdc..c099b53353ec8c689681a1bc8f5117a584e4098d:/include/wx/textentry.h diff --git a/include/wx/textentry.h b/include/wx/textentry.h index 93ae8fbf37..cdf6e522a4 100644 --- a/include/wx/textentry.h +++ b/include/wx/textentry.h @@ -16,6 +16,8 @@ typedef long wxTextPos; class WXDLLIMPEXP_FWD_BASE wxArrayString; +class WXDLLIMPEXP_FWD_CORE wxTextEntryHintData; +class WXDLLIMPEXP_FWD_CORE wxWindow; // ---------------------------------------------------------------------------- // wxTextEntryBase @@ -24,8 +26,8 @@ class WXDLLIMPEXP_FWD_BASE wxArrayString; class WXDLLIMPEXP_CORE wxTextEntryBase { public: - wxTextEntryBase() { m_eventsBlock = 0; } - virtual ~wxTextEntryBase() { } + wxTextEntryBase() { m_eventsBlock = 0; m_hintData = NULL; } + virtual ~wxTextEntryBase(); // accessing the value @@ -43,9 +45,9 @@ public: virtual void WriteText(const wxString& text) = 0; virtual void AppendText(const wxString& text); - virtual wxString GetValue() const = 0; + virtual wxString GetValue() const; virtual wxString GetRange(long from, long to) const; - bool IsEmpty() const { return GetLastPosition() > 0; } + bool IsEmpty() const { return GetLastPosition() <= 0; } // editing operations @@ -129,6 +131,17 @@ public: virtual void SetMaxLength(unsigned long WXUNUSED(len)) { } + // hints + // ----- + + // hint is the (usually greyed out) text shown in the control as long as + // it's empty and doesn't have focus, it is typically used in controls used + // for searching to let the user know what is supposed to be entered there + + virtual bool SetHint(const wxString& hint); + virtual wxString GetHint() const; + + protected: // flags for DoSetValue(): common part of SetValue() and ChangeValue() and // also used to implement WriteText() in wxMSW @@ -140,6 +153,12 @@ protected: }; virtual void DoSetValue(const wxString& value, int flags); + virtual wxString DoGetValue() const = 0; + + // override this to return the associated window, it will be used for event + // generation and also by generic hints implementation + virtual wxWindow *GetEditableWindow() = 0; + // class which should be used to temporarily disable text change events // @@ -196,6 +215,9 @@ private: // if this counter is non-null, events are blocked unsigned m_eventsBlock; + + // hint-related stuff, only allocated if/when SetHint() is used + wxTextEntryHintData *m_hintData; }; #ifdef __WXUNIVERSAL__