]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/combobox.h
Added IsDynamic to XTI
[wxWidgets.git] / include / wx / univ / combobox.h
index c92cea953e0972e90295a3c5836f06604bd957d0..8c9eb4fcdc5ee0f19553cadbfe6483a017df1947 100644 (file)
@@ -20,7 +20,7 @@
    down list, not just a wxListBox.
 
    So we define a base wxComboControl which can use any control as pop down
    down list, not just a wxListBox.
 
    So we define a base wxComboControl which can use any control as pop down
-   list and wxComboBox deriving from it which implements the standard wxWindows
+   list and wxComboBox deriving from it which implements the standard wxWidgets
    combobox API. wxComboControl needs to be told somehow which control to use
    and this is done by SetPopupControl(). However, we need something more than
    just a wxControl in this method as, for example, we need to call
    combobox API. wxComboControl needs to be told somehow which control to use
    and this is done by SetPopupControl(). However, we need something more than
    just a wxControl in this method as, for example, we need to call
 #ifndef _WX_UNIV_COMBOBOX_H_
 #define _WX_UNIV_COMBOBOX_H_
 
 #ifndef _WX_UNIV_COMBOBOX_H_
 #define _WX_UNIV_COMBOBOX_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma interface "univcombobox.h"
-#endif
-
 class WXDLLEXPORT wxComboControl;
 class WXDLLEXPORT wxListBox;
 class WXDLLEXPORT wxPopupComboWindow;
 class WXDLLEXPORT wxComboControl;
 class WXDLLEXPORT wxListBox;
 class WXDLLEXPORT wxPopupComboWindow;
@@ -70,6 +66,7 @@ class WXDLLEXPORT wxComboPopup
 {
 public:
     wxComboPopup(wxComboControl *combo) { m_combo = combo; }
 {
 public:
     wxComboPopup(wxComboControl *combo) { m_combo = combo; }
+    virtual ~wxComboPopup() {}
 
     // we must have an associated control which is subclassed by the combobox
     virtual wxControl *GetControl() = 0;
 
     // we must have an associated control which is subclassed by the combobox
     virtual wxControl *GetControl() = 0;
@@ -77,7 +74,7 @@ public:
     // called before showing the control to set the initial selection - notice
     // that the text passed to this method might not correspond to any valid
     // item (if the user edited it directly), in which case the method should
     // called before showing the control to set the initial selection - notice
     // that the text passed to this method might not correspond to any valid
     // item (if the user edited it directly), in which case the method should
-    // just return FALSE but not emit any errors
+    // just return false but not emit any errors
     virtual bool SetSelection(const wxString& value) = 0;
 
     // called immediately after the control is shown
     virtual bool SetSelection(const wxString& value) = 0;
 
     // called immediately after the control is shown
@@ -137,7 +134,7 @@ public:
     void ShowPopup();
     void HidePopup();
 
     void ShowPopup();
     void HidePopup();
 
-    // return TRUE if the popup is currently shown
+    // return true if the popup is currently shown
     bool IsPopupShown() const { return m_isPopupShown; }
 
     // get the popup window containing the popup control
     bool IsPopupShown() const { return m_isPopupShown; }
 
     // get the popup window containing the popup control
@@ -159,13 +156,18 @@ public:
     virtual void OnDismiss();
 
     // forward these functions to all subcontrols
     virtual void OnDismiss();
 
     // forward these functions to all subcontrols
-    virtual bool Enable(bool enable = TRUE);
-    virtual bool Show(bool show = TRUE);
+    virtual bool Enable(bool enable = true);
+    virtual bool Show(bool show = true);
 
 #if wxUSE_TOOLTIPS
     virtual void DoSetToolTip( wxToolTip *tip );
 #endif // wxUSE_TOOLTIPS
 
 
 #if wxUSE_TOOLTIPS
     virtual void DoSetToolTip( wxToolTip *tip );
 #endif // wxUSE_TOOLTIPS
 
+    // we have our own input handler and our own actions
+    virtual bool PerformAction(const wxControlAction& action,
+                               long numArg = 0l,
+                               const wxString& strArg = wxEmptyString);
+
 protected:
     // override the base class virtuals involved into geometry calculations
     virtual wxSize DoGetBestClientSize() const;
 protected:
     // override the base class virtuals involved into geometry calculations
     virtual wxSize DoGetBestClientSize() const;
@@ -174,11 +176,6 @@ protected:
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO);
 
                            int width, int height,
                            int sizeFlags = wxSIZE_AUTO);
 
-    // we have our own input handler and our own actions
-    virtual bool PerformAction(const wxControlAction& action,
-                               long numArg = 0l,
-                               const wxString& strArg = wxEmptyString);
-
     // event handlers
     void OnKey(wxKeyEvent& event);
 
     // event handlers
     void OnKey(wxKeyEvent& event);
 
@@ -221,7 +218,7 @@ public:
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                int n = 0,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                int n = 0,
-               const wxString *choices = (const wxString *) NULL,
+               const wxString choices[] = (const wxString *) NULL,
                long style = 0,
                const wxValidator& validator = wxDefaultValidator,
                const wxString& name = wxComboBoxNameStr)
                long style = 0,
                const wxValidator& validator = wxDefaultValidator,
                const wxString& name = wxComboBoxNameStr)
@@ -231,6 +228,15 @@ public:
         (void)Create(parent, id, value, pos, size, n, choices,
                      style, validator, name);
     }
         (void)Create(parent, id, value, pos, size, n, choices,
                      style, validator, name);
     }
+    wxComboBox(wxWindow *parent,
+               wxWindowID id,
+               const wxString& value,
+               const wxPoint& pos,
+               const wxSize& size,
+               const wxArrayString& choices,
+               long style = 0,
+               const wxValidator& validator = wxDefaultValidator,
+               const wxString& name = wxComboBoxNameStr);
 
     bool Create(wxWindow *parent,
                 wxWindowID id,
 
     bool Create(wxWindow *parent,
                 wxWindowID id,
@@ -242,7 +248,15 @@ public:
                 long style = 0,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxComboBoxNameStr);
                 long style = 0,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxComboBoxNameStr);
-
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& value,
+                const wxPoint& pos,
+                const wxSize& size,
+                const wxArrayString& choices,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxComboBoxNameStr);
 
     virtual ~wxComboBox();
 
 
     virtual ~wxComboBox();
 
@@ -260,81 +274,42 @@ public:
     virtual void SetInsertionPoint(long pos);
     virtual void SetInsertionPointEnd();
     virtual long GetInsertionPoint() const;
     virtual void SetInsertionPoint(long pos);
     virtual void SetInsertionPointEnd();
     virtual long GetInsertionPoint() const;
-    virtual long GetLastPosition() const;
+    virtual wxTextPos GetLastPosition() const;
     virtual void Replace(long from, long to, const wxString& value);
     virtual void Remove(long from, long to);
     virtual void SetSelection(long from, long to);
     virtual void SetEditable(bool editable);
     virtual void Replace(long from, long to, const wxString& value);
     virtual void Remove(long from, long to);
     virtual void SetSelection(long from, long to);
     virtual void SetEditable(bool editable);
+    virtual bool IsEditable() const;
+
+    virtual void Undo();
+    virtual void Redo();
+    virtual void SelectAll();
+
+    virtual bool CanCopy() const;
+    virtual bool CanCut() const;
+    virtual bool CanPaste() const;
+    virtual bool CanUndo() const;
+    virtual bool CanRedo() const;
 
     // wxControlWithItems methods
     virtual void Clear();
 
     // wxControlWithItems methods
     virtual void Clear();
-    virtual void Delete(int n);
-    virtual int GetCount() const;
-    virtual wxString GetString(int n) const;
-    virtual void SetString(int n, const wxString& s);
-    virtual int FindString(const wxString& s) const;
-    virtual void Select(int n);
+    virtual void Delete(unsigned int n);
+    virtual unsigned int GetCount() const;
+    virtual wxString GetString(unsigned int n) const;
+    virtual void SetString(unsigned int n, const wxString& s);
+    virtual int FindString(const wxString& s, bool bCase = false) const;
+    virtual void SetSelection(int n);
     virtual int GetSelection() const;
     virtual int GetSelection() const;
-    void SetSelection(int n) { Select(n); }
-
-    void SetStringSelection(const wxString& WXUNUSED(s)) {  }
 
 
-    // we have to redefine these functions here to avoid ambiguities in classes
-    // deriving from us which would arise otherwise because we inherit these
-    // methods (with different signatures) from both wxItemContainer via
-    // wxComboBoxBase (with "int n" parameter) and from wxEvtHandler via
-    // wxControl and wxComboControl (without)
-    //
-    // hopefully, a smart compiler can optimize away these simple inline
-    // wrappers so we don't suffer much from this
-
-    void SetClientData(void *data)
-    {
-        wxControl::SetClientData(data);
-    }
-
-    void *GetClientData() const
-    {
-        return wxControl::GetClientData();
-    }
-
-    void SetClientObject(wxClientData *data)
-    {
-        wxControl::SetClientObject(data);
-    }
-
-    wxClientData *GetClientObject() const
-    {
-        return wxControl::GetClientObject();
-    }
-
-    void SetClientData(int n, void* clientData)
-    {
-        wxItemContainer::SetClientData(n, clientData);
-    }
-
-    void* GetClientData(int n) const
-    {
-        return wxItemContainer::GetClientData(n);
-    }
-
-    void SetClientObject(int n, wxClientData* clientData)
-    {
-        wxItemContainer::SetClientObject(n, clientData);
-    }
-
-    wxClientData* GetClientObject(int n) const
-    {
-        return wxItemContainer::GetClientObject(n);
-    }
+    wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST
 
 protected:
     virtual int DoAppend(const wxString& item);
 
 protected:
     virtual int DoAppend(const wxString& item);
-    virtual int DoInsert(const wxString& item, int pos);
-    virtual void DoSetItemClientData(int n, void* clientData);
-    virtual void* DoGetItemClientData(int n) const;
-    virtual void DoSetItemClientObject(int n, wxClientData* clientData);
-    virtual wxClientData* DoGetItemClientObject(int n) const;
+    virtual int DoInsert(const wxString& item, unsigned int pos);
+    virtual void DoSetItemClientData(unsigned int n, void* clientData);
+    virtual void* DoGetItemClientData(unsigned int n) const;
+    virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData);
+    virtual wxClientData* DoGetItemClientObject(unsigned int n) const;
 
     // common part of all ctors
     void Init();
 
     // common part of all ctors
     void Init();