]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/bmpcboxg.cpp
wxchar.h doesn't have to be C file anymore, it's C++
[wxWidgets.git] / src / generic / bmpcboxg.cpp
index bac36de5a2bfadb3991381528a6cf19db1507a29..6aec2b629ee4e20968280ee46b65ebe875d1665b 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Jaakko Salli
 // Modified by:
 // Created:     Aug-31-2006
-// RCS-ID:      $Id:
+// RCS-ID:      $Id$
 // Copyright:   (c) 2005 Jaakko Salli
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -146,6 +146,9 @@ bool wxBitmapComboBox::Create(wxWindow *parent,
 void wxBitmapComboBox::PostCreate()
 {
     m_fontHeight = GetCharHeight() + EXTRA_FONT_HEIGHT;
+
+    while ( m_bitmaps.GetCount() < GetCount() )
+        m_bitmaps.Add( new wxBitmap() );
 }
 
 wxBitmapComboBox::~wxBitmapComboBox()
@@ -159,7 +162,7 @@ wxBitmapComboBox::~wxBitmapComboBox()
 
 void wxBitmapComboBox::SetItemBitmap(unsigned int n, const wxBitmap& bitmap)
 {
-    wxCHECK_RET( n < m_bitmaps.size(), wxT("invalid item index") );
+    wxCHECK_RET( n < GetCount(), wxT("invalid item index") );
     OnAddBitmap(bitmap);
     *GetBitmapPtr(n) = bitmap;
 
@@ -169,7 +172,7 @@ void wxBitmapComboBox::SetItemBitmap(unsigned int n, const wxBitmap& bitmap)
 
 wxBitmap wxBitmapComboBox::GetItemBitmap(unsigned int n) const
 {
-    wxCHECK_MSG( n < m_bitmaps.size(), wxNullBitmap, wxT("invalid item index") );
+    wxCHECK_MSG( n < GetCount(), wxNullBitmap, wxT("invalid item index") );
     return *GetBitmapPtr(n);
 }
 
@@ -319,7 +322,7 @@ void wxBitmapComboBox::DetermineIndent()
 
     if ( m_usedImgSize.x > 0 )
     {
-        indent = m_usedImgSize.y + IMAGE_SPACING_LEFT + IMAGE_SPACING_RIGHT;
+        indent = m_usedImgSize.x + IMAGE_SPACING_LEFT + IMAGE_SPACING_RIGHT;
         m_imgAreaWidth = indent;
 
         indent -= 3;
@@ -377,7 +380,8 @@ void wxBitmapComboBox::OnDrawBackground(wxDC& dc,
 {
     if ( GetCustomPaintWidth() == 0 ||
          !(flags & wxODCB_PAINTING_SELECTED) ||
-         item < 0 )
+         item < 0 ||
+         ( (flags & wxODCB_PAINTING_CONTROL) && (GetInternalFlags() & wxCC_FULL_BUTTON)) )
     {
         wxOwnerDrawnComboBox::OnDrawBackground(dc, rect, item, flags);
         return;