m_list = GTK_LIST( gtk_list_new() );
- GtkSelectionMode mode = GTK_SELECTION_SINGLE;
+ GtkSelectionMode mode = GTK_SELECTION_BROWSE;
if (style & wxLB_MULTIPLE)
mode = GTK_SELECTION_MULTIPLE;
else if (style & wxLB_EXTENDED)
gtk_container_add (GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) );
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 );
+
for (int i = 0; i < n; i++)
{
GtkWidget *list_item;
int wxListBox::GetSelection(void) const
{
- GList *selection = m_list->selection;
- if (selection)
+ GList *child = m_list->children;
+ int count = 0;
+ while (child)
{
- GList *child = m_list->children;
- int count = 0;
- while (child)
- {
- if (child->data == selection->data) return count;
- count++;
- child = child->next;
- }
+ if (GTK_WIDGET(child->data)->state == GTK_STATE_SELECTED) return count;
+ count++;
+ child = child->next;
}
- wxFAIL_MSG("wrong listbox index");
return -1;
}
}
}
+bool wxListBox::IsOwnGtkWindow( GdkWindow *window )
+{
+ if (wxWindow::IsOwnGtkWindow( window )) return TRUE;
+
+ GList *child = m_list->children;
+ while (child)
+ {
+ GtkBin *bin = (GtkBin*) child->data;
+ if (bin->child->window == window) return TRUE;
+ child = child->next;
+ }
+
+ return FALSE;
+}
+