]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/combobox.cpp
IsInAssert is only available (and only makes sense) in a debug build so
[wxWidgets.git] / src / univ / combobox.cpp
index 4f7263b30c95898eb3028d91d06af674ffc7ab89..53d2c180fc7685fff7ec97ad2d472069e96834a1 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "univcombobox.h"
 #endif
 
@@ -93,7 +93,7 @@ public:
     }
 
 protected:
-    void OnButton(wxCommandEvent& event) { m_combo->ShowPopup(); }
+    void OnButton(wxCommandEvent& WXUNUSED(event)) { m_combo->ShowPopup(); }
 
     virtual wxSize DoGetBestClientSize() const
     {
@@ -123,9 +123,11 @@ public:
 
     // implement wxComboPopup methods
     virtual bool SetSelection(const wxString& value);
+    virtual void SetSelection(int n, bool select)
+        { wxListBox::SetSelection( n, select); };
     virtual wxControl *GetControl() { return this; }
     virtual void OnShow();
-    virtual wxCoord wxComboListBox::GetBestWidth() const;
+    virtual wxCoord GetBestWidth() const;
 
 protected:
     // we shouldn't return height too big from here
@@ -211,6 +213,25 @@ IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
 // wxComboControl creation
 // ----------------------------------------------------------------------------
 
+wxComboControl::wxComboControl()
+{
+    Init();
+}
+
+wxComboControl::wxComboControl(wxWindow *parent,
+                               wxWindowID id,
+                               const wxString& value,
+                               const wxPoint& pos,
+                               const wxSize& size,
+                               long style,
+                               const wxValidator& validator,
+                               const wxString& name)
+{
+    Init();
+
+    (void)Create(parent, id, value, pos, size, style, validator, name);
+}
+
 void wxComboControl::Init()
 {
     m_popup = (wxComboPopup *)NULL;
@@ -290,7 +311,7 @@ wxComboControl::~wxComboControl()
 // ----------------------------------------------------------------------------
 
 void wxComboControl::DoSetSize(int x, int y,
-                               int width, int height,
+                               int width, int WXUNUSED(height),
                                int sizeFlags)
 {
     // combo height is always fixed
@@ -650,6 +671,28 @@ wxSize wxComboListBox::DoGetBestClientSize() const
 // wxComboBox
 // ----------------------------------------------------------------------------
 
+wxComboBox::wxComboBox()
+{
+    Init();
+}
+
+wxComboBox::wxComboBox(wxWindow *parent,
+                       wxWindowID id,
+                       const wxString& value,
+                       const wxPoint& pos,
+                       const wxSize& size,
+                       int n,
+                       const wxString *choices,
+                       long style,
+                       const wxValidator& validator,
+                       const wxString& name)
+{
+    Init();
+
+    (void)Create(parent, id, value, pos, size, n, choices,
+                 style, validator, name);
+}
+
 void wxComboBox::Init()
 {
     m_lbox = (wxListBox *)NULL;
@@ -825,6 +868,18 @@ int wxComboBox::DoAppend(const wxString& item)
     return GetLBox()->Append(item);
 }
 
+int wxComboBox::DoInsert(const wxString& item, int pos)
+{
+    wxCHECK_MSG(!(GetWindowStyle() & wxCB_SORT), -1, wxT("can't insert into sorted list"));
+    wxCHECK_MSG((pos>=0) && (pos<=GetCount()), -1, wxT("invalid index"));
+
+    if (pos == GetCount())
+        return DoAppend(item);
+
+    GetLBox()->Insert(item, pos);
+    return pos;
+}
+
 void wxComboBox::DoSetItemClientData(int n, void* clientData)
 {
     GetLBox()->SetClientData(n, clientData);