+ // 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;
+
+
+ // 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();
+ }
+