#if wxUSE_CHOICE
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
//-----------------------------------------------------------------------------
// idle system
m_widget = gtk_option_menu_new();
- wxSize newSize(size);
- if (newSize.x == -1)
- newSize.x = 80;
- if (newSize.y == -1)
- newSize.y = 26;
- SetSize( newSize.x, newSize.y );
+ SetSizeOrDefault( size );
if ( style & wxCB_SORT )
{
for (int i = 0; i < n; i++)
{
- AppendHelper(menu, choices[i]);
+ GtkAppendHelper(menu, choices[i]);
}
gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu );
GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
- return AppendHelper(menu, item);
+ return GtkAppendHelper(menu, item);
}
void wxChoice::DoSetItemClientData( int n, void* clientData )
gtk_option_menu_set_history( GTK_OPTION_MENU(m_widget), (gint)tmp );
}
-void wxChoice::DisableEvents()
-{
-/*
- GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
- GList *child = menu_shell->children;
- while (child)
- {
- gtk_signal_disconnect_by_func( GTK_OBJECT( child->data ),
- GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );
-
- child = child->next;
- }
-*/
-}
-
-void wxChoice::EnableEvents()
-{
-/*
- GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
- GList *child = menu_shell->children;
- while (child)
- {
- gtk_signal_connect( GTK_OBJECT( child->data ), "activate",
- GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );
-
- child = child->next;
- }
-*/
-}
-
void wxChoice::ApplyWidgetStyle()
{
SetWidgetStyle();
}
}
-size_t wxChoice::AppendHelper(GtkWidget *menu, const wxString& item)
+size_t wxChoice::GtkAppendHelper(GtkWidget *menu, const wxString& item)
{
GtkWidget *menu_item = gtk_menu_item_new_with_label( item.mbc_str() );
// don't call wxChoice::GetCount() from here because it doesn't work
// if we're called from ctor (and GtkMenuShell is still NULL)
- index = m_clientList.GetCount();
+ index = m_clientList.GetCount() - 1;
}
if (GTK_WIDGET_REALIZED(m_widget))
return index;
}
+wxSize wxChoice::DoGetBestSize() const
+{
+ return wxSize(80, 26);
+}
+
#endif