/////////////////////////////////////////////////////////////////////////////
-// Name: src/gtk/bmpcboxg.cpp
+// Name: src/gtk/bmpcbox.cpp
// Purpose: wxBitmapComboBox
// Author: Jaakko Salli
// Created: 2008-05-19
else
{
m_widget = gtk_combo_box_entry_new_with_model( GTK_TREE_MODEL(store), m_stringCellIndex );
- m_entry = GTK_ENTRY( GTK_BIN(m_widget)->child );
- gtk_entry_set_editable( m_entry, TRUE );
+ m_entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(m_widget)));
+ gtk_editable_set_editable(GTK_EDITABLE(m_entry), true);
}
g_object_ref(m_widget);
return wxChoice::GTKGetWindow(windows);
}
+wxSize wxBitmapComboBox::DoGetBestSize() const
+{
+ wxSize best = wxComboBox::DoGetBestSize();
+
+ int delta = GetBitmapSize().y - GetCharHeight();
+ if ( delta > 0 )
+ {
+ best.y += delta;
+ CacheBestSize(best);
+ }
+ return best;
+}
+
// ----------------------------------------------------------------------------
// Item manipulation
// ----------------------------------------------------------------------------
if ( pixbuf )
{
g_object_ref( pixbuf );
- bitmap.SetPixbuf( pixbuf );
+ bitmap = wxBitmap(pixbuf);
}
g_value_unset( &value );
}
return n;
}
+int wxBitmapComboBox::Insert(const wxString& item, const wxBitmap& bitmap,
+ unsigned int pos, void *clientData)
+{
+ const int n = wxComboBox::Insert(item, pos, clientData);
+ if ( n != wxNOT_FOUND )
+ SetItemBitmap(n, bitmap);
+ return n;
+}
+
void wxBitmapComboBox::GTKInsertComboBoxTextItem( unsigned int n, const wxString& text )
{
GtkComboBox* combobox = GTK_COMBO_BOX( m_widget );
{
if ( GetEntry() )
wxComboBox::WriteText(value);
+ else
+ SetStringSelection(value);
}
wxString wxBitmapComboBox::GetValue() const