2004-10-03 [colin] 0.9.12cvs119.3
[claws.git] / src / gtk / gtksctree.c
index 40ca671977ea39d77041e70059a8a9184ee92a42..d6b28e7062ce8b86eb5c0ad2606a6d2008ecfc48 100644 (file)
@@ -234,8 +234,11 @@ select_row (GtkSCTree *sctree, gint row, gint col, guint state)
                   (GTK_CLIST(sctree)->selection_mode != GTK_SELECTION_BROWSE);
 
        gtk_clist_freeze (GTK_CLIST (sctree));
+
        GTK_CLIST(sctree)->focus_row = row;
+
        GTK_CLIST_GET_CLASS(sctree)->refresh(GTK_CLIST(sctree));
+
        if (!additive)
                gtk_clist_unselect_all (GTK_CLIST (sctree));
 
@@ -260,6 +263,7 @@ select_row (GtkSCTree *sctree, gint row, gint col, guint state)
                sctree->anchor_row = node;
        } else
                select_range (sctree, row);
+       
        gtk_clist_thaw (GTK_CLIST (sctree));
 }
 
@@ -351,7 +355,7 @@ gtk_sctree_button_press (GtkWidget *widget, GdkEventButton *event)
                sctree->dnd_select_pending_state = 0;
 
                if (on_row)
-                       g_signal_emit (GTK_OBJECT (sctree),
+                       g_signal_emit (G_OBJECT (sctree),
                                       sctree_signals[OPEN_ROW], 0);
 
                retval = TRUE;
@@ -561,7 +565,7 @@ GtkWidget *gtk_sctree_new_with_titles (gint columns, gint tree_column,
        GtkWidget *widget;
                                                                                                             
        g_return_val_if_fail (columns > 0, NULL);
-       g_return_val_if_fail (tree_column >= 0 && tree_column < columns, NULL);
+       g_return_val_if_fail (tree_column >= 0, NULL);
                                                                                                             
        widget = gtk_widget_new (TYPE_GTK_SCTREE,
                                 "n_columns", columns,
@@ -587,6 +591,13 @@ void gtk_sctree_select (GtkSCTree *sctree, GtkCTreeNode *node)
                   -1, 0);
 }
 
+void gtk_sctree_select_with_state (GtkSCTree *sctree, GtkCTreeNode *node, int state)
+{
+       select_row(sctree, 
+                  g_list_position(GTK_CLIST(sctree)->row_list, (GList *)node),
+                  -1, state);
+}
+
 void gtk_sctree_unselect_all (GtkSCTree *sctree)
 {
        gtk_clist_unselect_all(GTK_CLIST(sctree));