// Author: Jaakko Salli
// Modified by:
// Created: Aug-31-2006
-// RCS-ID: $Id:
+// RCS-ID: $Id$
// Copyright: (c) 2005 Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
BEGIN_EVENT_TABLE(wxBitmapComboBox, wxOwnerDrawnComboBox)
- EVT_SIZE(wxBitmapComboBox::OnResize)
+ EVT_SIZE(wxBitmapComboBox::OnSize)
END_EVENT_TABLE()
void wxBitmapComboBox::PostCreate()
{
m_fontHeight = GetCharHeight() + EXTRA_FONT_HEIGHT;
+
+ while ( m_bitmaps.GetCount() < GetCount() )
+ m_bitmaps.Add( new wxBitmap() );
}
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;
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);
}
const wxBitmap& image,
unsigned int pos)
{
+ wxCHECK_MSG( IsValidInsert(pos), wxNOT_FOUND, wxT("invalid item index") );
+
if ( !DoInsertBitmap(image, pos) )
return wxNOT_FOUND;
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;
SetCustomPaintWidth(indent);
}
-void wxBitmapComboBox::OnResize(wxSizeEvent& event)
+void wxBitmapComboBox::OnSize(wxSizeEvent& event)
{
// Prevent infinite looping
if ( !m_inResize )
{
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;