- wxCHECK_RET( m_list != NULL, 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 ) );
-
- if (check == (str.GetChar(1) == wxCHECKLBOX_CHECKED))
- return;
-
- str.SetChar( 1, check ? wxCHECKLBOX_CHECKED : wxCHECKLBOX_UNCHECKED );
+ //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 );
+ gtk_tree_view_column_set_fixed_width(column, 20);
+ 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);
+}