X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fda62793585ef3ebaa8823be7c1a3e3538e5349a..43ff861df48f0837dac98005dd397c5f127ca136:/include/wx/combo.h?ds=sidebyside diff --git a/include/wx/combo.h b/include/wx/combo.h index f0c06eb484..9c38cda211 100644 --- a/include/wx/combo.h +++ b/include/wx/combo.h @@ -160,7 +160,17 @@ public: virtual ~wxComboCtrlBase(); - // show/hide popup window + // Show/hide popup window (wxComboBox-compatible methods) + virtual void Popup(); + virtual void Dismiss() + { + HidePopup(true); + } + + // Show/hide popup window. + // TODO: Maybe deprecate in favor of Popup()/Dismiss(). + // However, these functions are still called internally + // so it is not straightforward. virtual void ShowPopup(); virtual void HidePopup(bool generateEvent=false); @@ -199,14 +209,32 @@ public: virtual bool Show(bool show = true); virtual bool SetFont(const wxFont& font); - // wxTextCtrl methods - for readonly combo they should return - // without errors. - virtual void SetValue(const wxString& value); + // + // wxTextEntry methods + // + // NB: We basically need to override all of them because there is + // no guarantee how platform-specific wxTextEntry is implemented. + // + virtual void SetValue(const wxString& value) + { wxTextEntryBase::SetValue(value); } + virtual void ChangeValue(const wxString& value) + { wxTextEntryBase::ChangeValue(value); } - // wxTextEntry methods - we basically need to override all of them virtual void WriteText(const wxString& text); + virtual void AppendText(const wxString& text) + { wxTextEntryBase::AppendText(text); } + virtual wxString GetValue() const + { return wxTextEntryBase::GetValue(); } + + virtual wxString GetRange(long from, long to) const + { return wxTextEntryBase::GetRange(from, to); } + + // Replace() and DoSetValue() need to be fully re-implemented since + // EventSuppressor utility class does not work with the way + // wxComboCtrl is implemented. virtual void Replace(long from, long to, const wxString& value); + virtual void Remove(long from, long to); virtual void Copy(); @@ -237,7 +265,13 @@ public: // This method sets value and also optionally sends EVT_TEXT // (needed by combo popups) - void SetValueWithEvent(const wxString& value, bool withEvent = true); + wxDEPRECATED( void SetValueWithEvent(const wxString& value, + bool withEvent = true) ); + + // Changes value of the control as if user had done it by selecting an + // item from a combo box drop-down list. Needs to be public so that + // derived popup classes can call it. + void SetValueByUser(const wxString& value); // // Popup customization methods @@ -464,6 +498,10 @@ protected: // extraStyle: Extra style parameters void CreateTextCtrl( int extraStyle ); + // Called when text was changed programmatically + // (e.g. from WriteText()) + void OnSetValue(const wxString& value); + // Installs standard input handler to combo (and optionally to the textctrl) void InstallInputHandlers(); @@ -558,6 +596,7 @@ protected: #endif // protected wxTextEntry methods + virtual void DoSetValue(const wxString& value, int flags); virtual wxString DoGetValue() const; virtual wxWindow *GetEditableWindow() { return this; } @@ -735,6 +774,13 @@ public: // Gets displayed string representation of the value. virtual wxString GetStringValue() const = 0; + // Called to check if the popup - when an item container - actually + // has matching item. Case-sensitivity checking etc. is up to the + // implementation. If the found item matched the string, but is + // different, it should be written back to pItem. Default implementation + // always return true and does not alter trueItem. + virtual bool FindItem(const wxString& item, wxString* trueItem=NULL); + // This is called to custom paint in the combo control itself (ie. not the popup). // Default implementation draws value as string. virtual void PaintComboControl( wxDC& dc, const wxRect& rect );