- wxCHECK_MSG( m_list != NULL, FALSE, wxT("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( wxGTK_CONV_BACK( label->label ) );
-
- return str.GetChar(1) == wxCHECKLBOX_CHECKED;
- }
-
- wxFAIL_MSG(wxT("wrong checklistbox index"));
- return FALSE;
+ //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);