projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move menu messages handling from wxFrame to wxTLW in wxMSW.
[wxWidgets.git]
/
src
/
gtk
/
bmpcbox.cpp
diff --git
a/src/gtk/bmpcbox.cpp
b/src/gtk/bmpcbox.cpp
index 6cbf891530fa55685d3e20eaf972b15cfba95e0e..f9f8f042fba914751247596cf89b0bd5a3e6e2ee 100644
(file)
--- a/
src/gtk/bmpcbox.cpp
+++ b/
src/gtk/bmpcbox.cpp
@@
-1,5
+1,5
@@
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-// Name: src/gtk/bmpcbox
g
.cpp
+// Name: src/gtk/bmpcbox.cpp
// Purpose: wxBitmapComboBox
// Author: Jaakko Salli
// Created: 2008-05-19
// Purpose: wxBitmapComboBox
// Author: Jaakko Salli
// Created: 2008-05-19
@@
-30,6
+30,7
@@
#include "wx/log.h"
#endif
#include "wx/log.h"
#endif
+#include <gtk/gtk.h>
#include "wx/gtk/private.h"
// ============================================================================
#include "wx/gtk/private.h"
// ============================================================================
@@
-101,9
+102,9
@@
bool wxBitmapComboBox::Create(wxWindow *parent,
// Select 'value' in entry-less mode
if ( !GetEntry() )
{
// Select 'value' in entry-less mode
if ( !GetEntry() )
{
- int
n
= FindString(value);
- if (
n != wxNOT_FOUND
)
- SetSelection(
n
);
+ int
i
= FindString(value);
+ if (
i != wxNOT_FOUND
)
+ SetSelection(
i
);
}
return true;
}
return true;
@@
-121,9
+122,14
@@
void wxBitmapComboBox::GTKCreateComboBoxWidget()
}
else
{
}
else
{
+#ifdef __WXGTK3__
+ m_widget = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store));
+ gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(m_widget), m_stringCellIndex);
+#else
m_widget = gtk_combo_box_entry_new_with_model( GTK_TREE_MODEL(store), m_stringCellIndex );
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 );
+#endif
+ 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);
}
g_object_ref(m_widget);
@@
-164,6
+170,19
@@
GdkWindow *wxBitmapComboBox::GTKGetWindow(wxArrayGdkWindows& windows) const
return wxChoice::GTKGetWindow(windows);
}
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
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Item manipulation
// ----------------------------------------------------------------------------
@@
-211,7
+230,7
@@
wxBitmap wxBitmapComboBox::GetItemBitmap(unsigned int n) const
if ( pixbuf )
{
g_object_ref( pixbuf );
if ( pixbuf )
{
g_object_ref( pixbuf );
- bitmap
.SetPixbuf( pixbuf
);
+ bitmap
= wxBitmap(pixbuf
);
}
g_value_unset( &value );
}
}
g_value_unset( &value );
}
@@
-264,6
+283,15
@@
int wxBitmapComboBox::Insert(const wxString& item, const wxBitmap& bitmap,
return n;
}
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 );
void wxBitmapComboBox::GTKInsertComboBoxTextItem( unsigned int n, const wxString& text )
{
GtkComboBox* combobox = GTK_COMBO_BOX( m_widget );
@@
-288,6
+316,8
@@
void wxBitmapComboBox::WriteText(const wxString& value)
{
if ( GetEntry() )
wxComboBox::WriteText(value);
{
if ( GetEntry() )
wxComboBox::WriteText(value);
+ else
+ SetStringSelection(value);
}
wxString wxBitmapComboBox::GetValue() const
}
wxString wxBitmapComboBox::GetValue() const