]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/combo.h
Make art provider id of type "char *" instead of "wxChar *".
[wxWidgets.git] / include / wx / combo.h
index f0c06eb48485694e28658dcb56f187d5ff6a4f96..9c38cda2110ce1d1c2a144dd8988e25bbe144aa4 100644 (file)
@@ -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 );