]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/bmpcbox.cpp
Enable variadic macros for VC9 and later.
[wxWidgets.git] / src / msw / bmpcbox.cpp
index 852fb0485a27db8623b36f4585c9cb3f9b94fe79..73cce59d09c7f7d3a3342fc737d2e091fa640499 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/msw/bmpcboxg.cpp
+// Name:        src/msw/bmpcbox.cpp
 // Purpose:     wxBitmapComboBox
 // Author:      Jaakko Salli
 // Created:     2008-04-06
 // Purpose:     wxBitmapComboBox
 // Author:      Jaakko Salli
 // Created:     2008-04-06
@@ -131,6 +131,7 @@ void wxBitmapComboBox::RecreateControl()
     wxString value = GetValue();
     wxPoint pos = GetPosition();
     wxSize size = GetSize();
     wxString value = GetValue();
     wxPoint pos = GetPosition();
     wxSize size = GetSize();
+    size.y = GetBestSize().y;
     wxArrayString strings = GetStrings();
 
     wxComboBox::DoClear();
     wxArrayString strings = GetStrings();
 
     wxComboBox::DoClear();
@@ -139,7 +140,7 @@ void wxBitmapComboBox::RecreateControl()
     DissociateHandle();
     ::DestroyWindow(hwnd);
 
     DissociateHandle();
     ::DestroyWindow(hwnd);
 
-    if ( !MSWCreateControl(wxT("COMBOBOX"), value, pos, size) )
+    if ( !MSWCreateControl(wxT("COMBOBOX"), wxEmptyString, pos, size) )
         return;
 
     // initialize the controls contents
         return;
 
     // initialize the controls contents
@@ -176,6 +177,12 @@ void wxBitmapComboBox::RecreateControl()
     {
         SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
     }
     {
         SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
     }
+
+    ::SendMessage(GetHwnd(), CB_SETITEMHEIGHT, 0, MeasureItem(0));
+
+    // Revert the old string value
+    if ( !HasFlag(wxCB_READONLY) )
+        ChangeValue(value);
 }
 
 wxBitmapComboBox::~wxBitmapComboBox()
 }
 
 wxBitmapComboBox::~wxBitmapComboBox()
@@ -250,6 +257,16 @@ int wxBitmapComboBox::Insert(const wxString& item,
     return n;
 }
 
     return n;
 }
 
+int wxBitmapComboBox::Insert(const wxString& item, const wxBitmap& bitmap,
+                             unsigned int pos, void *clientData)
+{
+    OnAddBitmap(bitmap);
+    const int n = wxComboBox::Insert(item, pos, clientData);
+    if ( n != wxNOT_FOUND )
+        DoSetItemBitmap(n, bitmap);
+    return n;
+}
+
 int wxBitmapComboBox::Insert(const wxString& item, const wxBitmap& bitmap,
                              unsigned int pos, wxClientData *clientData)
 {
 int wxBitmapComboBox::Insert(const wxString& item, const wxBitmap& bitmap,
                              unsigned int pos, wxClientData *clientData)
 {
@@ -308,7 +325,7 @@ bool wxBitmapComboBox::OnAddBitmap(const wxBitmap& bitmap)
 
         return true;
     }
 
         return true;
     }
-    
+
     return false;
 }
 
     return false;
 }
 
@@ -365,7 +382,7 @@ bool wxBitmapComboBox::MSWOnDraw(WXDRAWITEMSTRUCT *item)
     if ( pos == -1 )
         return FALSE;
 
     if ( pos == -1 )
         return FALSE;
 
-    int flags = 0;                
+    int flags = 0;
     if ( lpDrawItem->itemState & ODS_COMBOBOXEDIT )
         flags |= wxODCB_PAINTING_CONTROL;
     if ( lpDrawItem->itemState & ODS_SELECTED )
     if ( lpDrawItem->itemState & ODS_COMBOBOXEDIT )
         flags |= wxODCB_PAINTING_CONTROL;
     if ( lpDrawItem->itemState & ODS_SELECTED )