#include "wx/tooltip.h"
#endif
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
-#include "gdk/gdkkeysyms.h"
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
//-----------------------------------------------------------------------------
// idle system
}
#if wxUSE_CHECKLISTBOX
- if ((gdk_event->keyval != ' ') && (listbox->m_hasCheckBoxes) && (!ret))
+ if ((gdk_event->keyval == ' ') && (listbox->m_hasCheckBoxes) && (!ret))
{
int sel = listbox->GtkGetIndex( widget );
if (!listbox->m_hasVMT) return;
if (g_blockEventsOnDrag) return;
-
+
wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, listbox->GetId() );
event.SetEventObject( listbox );
event.m_commandInt = n;
- listbox->GetEventHandler()->ProcessEvent( event );
+ listbox->GetEventHandler()->AddPendingEvent( event );
+// listbox->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
gtk_widget_show( GTK_WIDGET(m_list) );
- wxSize newSize = size;
- if (newSize.x == -1)
- newSize.x = 100;
- if (newSize.y == -1)
- newSize.y = 110;
- SetSize( newSize.x, newSize.y );
+ SetSizeOrDefault( size );
if ( style & wxLB_SORT )
{
PostCreation();
- SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) );
+ SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_LISTBOX ) );
SetForegroundColour( parent->GetForegroundColour() );
SetFont( parent->GetFont() );
(GtkSignalFunc)gtk_listbox_key_press_callback,
(gpointer)this );
- gtk_widget_show( list_item );
-
ConnectWidget( list_item );
+ gtk_widget_show( list_item );
+
if (GTK_WIDGET_REALIZED(m_widget))
{
gtk_widget_realize( list_item );
wxCHECK_MSG( m_list != NULL, FALSE, wxT("invalid listbox") );
GList *target = g_list_nth( m_list->children, n );
- if (target)
- {
- GList *child = m_list->selection;
- while (child)
- {
- if (child->data == target->data) return TRUE;
- child = child->next;
- }
- }
-
- wxFAIL_MSG(wxT("wrong listbox index"));
-
- return FALSE;
+
+ wxCHECK_MSG( target, FALSE, wxT("invalid listbox index") );
+
+ return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ;
}
void wxListBox::SetSelection( int n, bool select )
bool wxListBox::IsOwnGtkWindow( GdkWindow *window )
{
- if (wxWindow::IsOwnGtkWindow( window )) return TRUE;
+ if (GTK_WIDGET(m_list)->window == window) return TRUE;
GList *child = m_list->children;
while (child)
UpdateWindowUI();
}
+wxSize wxListBox::DoGetBestSize() const
+{
+ return wxSize(100, 110);
+}
+
#endif