- wxCHECK_RET( m_list != NULL, _T("invalid checklistbox") );
-
- GList *child = g_list_nth( m_list->children, index );
- if (child)
- {
- GtkBin *bin = GTK_BIN( child->data );
- GtkLabel *label = GTK_LABEL( bin->child );
-
- wxString str = label->label;
-
- if (check == (str[1] == _T('X'))) return;
-
- if (check)
- str.SetChar( 1, _T('X') );
- else
- str.SetChar( 1, _T('-') );
+ //Create the checklist in our treeview and set up events for it
+ GtkCellRenderer* renderer =
+ gtk_cell_renderer_toggle_new();
+ GtkTreeViewColumn* column =
+ gtk_tree_view_column_new_with_attributes( "", renderer,
+ "active", 0,
+ NULL );
+#if wxUSE_LIBHILDON2
+ gtk_tree_view_column_set_fixed_width(column, 40);
+#else
+ gtk_tree_view_column_set_fixed_width(column, 22);
+#endif // wxUSE_LIBHILDON2/!wxUSE_LIBHILDON2
+
+ gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
+ gtk_tree_view_column_set_clickable(column, TRUE);
+
+ g_signal_connect (renderer, "toggled",
+ G_CALLBACK (gtk_checklist_toggled),
+ this);
+
+ gtk_tree_view_append_column(m_treeview, column);
+}