X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a95f37bc57cd0318ee2ae5cc94ac447cce47a5cf..445e564f120fb194a554ef70a6f2187b7ce693ed:/include/wx/textentry.h?ds=inline diff --git a/include/wx/textentry.h b/include/wx/textentry.h index cdf6e522a4..3a240d1a1a 100644 --- a/include/wx/textentry.h +++ b/include/wx/textentry.h @@ -19,6 +19,8 @@ class WXDLLIMPEXP_FWD_BASE wxArrayString; class WXDLLIMPEXP_FWD_CORE wxTextEntryHintData; class WXDLLIMPEXP_FWD_CORE wxWindow; +#include "wx/gdicmn.h" // for wxPoint + // ---------------------------------------------------------------------------- // wxTextEntryBase // ---------------------------------------------------------------------------- @@ -142,6 +144,52 @@ public: virtual wxString GetHint() const; + // margins + // ------- + + // margins are the empty space between borders of control and the text + // itself. When setting margin, use value -1 to indicate that specific + // margin should not be changed. + + bool SetMargins(const wxPoint& pt) + { return DoSetMargins(pt); } + bool SetMargins(wxCoord left, wxCoord top = -1) + { return DoSetMargins(wxPoint(left, top)); } + wxPoint GetMargins() const + { return DoGetMargins(); } + + + // implementation only + // ------------------- + + // generate the wxEVT_COMMAND_TEXT_UPDATED event for GetEditableWindow(), + // like SetValue() does and return true if the event was processed + // + // NB: this is public for wxRichTextCtrl use only right now, do not call it + static bool SendTextUpdatedEvent(wxWindow *win); + + // generate the wxEVT_COMMAND_TEXT_UPDATED event for this window + bool SendTextUpdatedEvent() + { + return SendTextUpdatedEvent(GetEditableWindow()); + } + + + // this function is provided solely for the purpose of forwarding text + // change notifications state from one control to another, e.g. it can be + // used by a wxComboBox which derives from wxTextEntry if it delegates all + // of its methods to another wxTextCtrl + void ForwardEnableTextChangedEvents(bool enable) + { + // it's important to call the functions which update m_eventsBlock here + // and not just our own EnableTextChangedEvents() because our state + // (i.e. the result of EventsAllowed()) must change as well + if ( enable ) + ResumeTextChangedEvents(); + else + SuppressTextChangedEvents(); + } + protected: // flags for DoSetValue(): common part of SetValue() and ChangeValue() and // also used to implement WriteText() in wxMSW @@ -159,6 +207,10 @@ protected: // generation and also by generic hints implementation virtual wxWindow *GetEditableWindow() = 0; + // margins functions + virtual bool DoSetMargins(const wxPoint& pt); + virtual wxPoint DoGetMargins() const; + // class which should be used to temporarily disable text change events // @@ -187,8 +239,14 @@ protected: friend class EventsSuppressor; - // return true if the events are currently not suppressed - bool EventsAllowed() const { return m_eventsBlock == 0; } + // generate the wxEVT_COMMAND_TEXT_UPDATED event for this window if the + // events are not currently disabled + void SendTextUpdatedEventIfAllowed() + { + if ( EventsAllowed() ) + SendTextUpdatedEvent(); + } + private: // suppress or resume the text changed events generation: don't use these @@ -213,6 +271,10 @@ private: // initially the generation of the events is enabled virtual void EnableTextChangedEvents(bool WXUNUSED(enable)) { } + // return true if the events are currently not suppressed + bool EventsAllowed() const { return m_eventsBlock == 0; } + + // if this counter is non-null, events are blocked unsigned m_eventsBlock; @@ -228,6 +290,8 @@ private: }; #elif defined(__WXGTK20__) #include "wx/gtk/textentry.h" +#elif defined(__WXMAC__) + #include "wx/osx/textentry.h" #elif defined(__WXMSW__) #include "wx/msw/textentry.h" #elif defined(__WXMOTIF__)