GTK_RUN_FIRST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_select_row),
- gtk_marshal_VOID__POINTER_INT,
- GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
+ gtk_marshal_VOID__BOXED_INT,
+ GTK_TYPE_NONE, 2,
+ GTK_TYPE_CTREE_NODE | G_SIGNAL_TYPE_STATIC_SCOPE,
+ GTK_TYPE_INT);
ctree_signals[TREE_UNSELECT_ROW] =
gtk_signal_new ("tree_unselect_row",
GTK_RUN_FIRST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_unselect_row),
- gtk_marshal_VOID__POINTER_INT,
- GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
+ gtk_marshal_VOID__BOXED_INT,
+ GTK_TYPE_NONE, 2,
+ GTK_TYPE_CTREE_NODE | G_SIGNAL_TYPE_STATIC_SCOPE,
+ GTK_TYPE_INT);
ctree_signals[TREE_EXPAND] =
gtk_signal_new ("tree_expand",
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_expand),
- gtk_marshal_VOID__POINTER,
- GTK_TYPE_NONE, 1, GTK_TYPE_POINTER);
+ gtk_marshal_VOID__BOXED,
+ GTK_TYPE_NONE, 1,
+ GTK_TYPE_CTREE_NODE | G_SIGNAL_TYPE_STATIC_SCOPE);
ctree_signals[TREE_COLLAPSE] =
gtk_signal_new ("tree_collapse",
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_collapse),
- gtk_marshal_VOID__POINTER,
- GTK_TYPE_NONE, 1, GTK_TYPE_POINTER);
+ gtk_marshal_VOID__BOXED,
+ GTK_TYPE_NONE, 1,
+ GTK_TYPE_CTREE_NODE | G_SIGNAL_TYPE_STATIC_SCOPE);
ctree_signals[TREE_MOVE] =
gtk_signal_new ("tree_move",
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GtkCTreeClass, tree_move),
- gtk_marshal_VOID__POINTER_POINTER_POINTER,
- GTK_TYPE_NONE, 3, GTK_TYPE_POINTER,
- GTK_TYPE_POINTER, GTK_TYPE_POINTER);
+ gtk_marshal_VOID__BOXED_BOXED_BOXED,
+ GTK_TYPE_NONE, 3,
+ GTK_TYPE_CTREE_NODE | G_SIGNAL_TYPE_STATIC_SCOPE,
+ GTK_TYPE_CTREE_NODE | G_SIGNAL_TYPE_STATIC_SCOPE,
+ GTK_TYPE_CTREE_NODE | G_SIGNAL_TYPE_STATIC_SCOPE);
ctree_signals[CHANGE_FOCUS_ROW_EXPANSION] =
gtk_signal_new ("change_focus_row_expansion",
GTK_RUN_LAST | GTK_RUN_ACTION,
binding_set = gtk_binding_set_by_class (klass);
gtk_binding_entry_add_signal (binding_set,
- '+', GDK_SHIFT_MASK,
+ GDK_plus, GDK_SHIFT_MASK,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_plus, 0,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_plus, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND_RECURSIVE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_plus, GDK_CONTROL_MASK,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND_RECURSIVE);
+
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KP_Add, GDK_SHIFT_MASK,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND);
gtk_binding_entry_add_signal (binding_set,
GDK_KP_Add, 0,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KP_Add, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND_RECURSIVE);
gtk_binding_entry_add_signal (binding_set,
GDK_KP_Add, GDK_CONTROL_MASK,
"change_focus_row_expansion", 1,
- GTK_TYPE_ENUM,
- GTK_CTREE_EXPANSION_EXPAND_RECURSIVE);
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND_RECURSIVE);
+
gtk_binding_entry_add_signal (binding_set,
- '-', 0,
+ GDK_minus, 0,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_COLLAPSE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_minus, GDK_CONTROL_MASK,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM,
+ GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE);
gtk_binding_entry_add_signal (binding_set,
GDK_KP_Subtract, 0,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM,
GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE);
gtk_binding_entry_add_signal (binding_set,
- '=', 0,
+ GDK_equal, 0,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KP_Equal, 0,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_equal, GDK_SHIFT_MASK,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KP_Equal, GDK_SHIFT_MASK,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE);
gtk_binding_entry_add_signal (binding_set,
GDK_KP_Multiply, 0,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_asterisk, 0,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE);
gtk_binding_entry_add_signal (binding_set,
GDK_KP_Multiply, GDK_CONTROL_MASK,
"change_focus_row_expansion", 1,
GTK_TYPE_ENUM,
GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_asterisk, GDK_CONTROL_MASK,
+ "change_focus_row_expansion", 1,
+ GTK_TYPE_ENUM,
+ GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE);
}
static void
GtkCTreeNode *child;
gint i;
- g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_CTREE (widget));
GTK_WIDGET_CLASS (parent_class)->realize (widget);
GtkCTree *ctree;
GtkCList *clist;
- g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_CTREE (widget));
GTK_WIDGET_CLASS (parent_class)->unrealize (widget);
GtkCList *clist;
gint button_actions;
- g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CTREE (widget), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
else
gtk_ctree_expand (ctree, work);
- return FALSE;
+ return TRUE;
}
}
+
return GTK_WIDGET_CLASS (parent_class)->button_press_event (widget, event);
}
gint i;
gint y = 0;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
ctree = GTK_CTREE (clist);
if (gdk_rectangle_intersect (area, &cell_rectangle, crect))
gdk_draw_rectangle (clist->clist_window,
- widget->style->base_gc[GTK_STATE_ACTIVE], TRUE,
+ widget->style->base_gc[GTK_STATE_NORMAL], TRUE,
crect->x, crect->y, crect->width, crect->height);
}
else
crect = &cell_rectangle;
gdk_draw_rectangle (clist->clist_window,
- widget->style->base_gc[GTK_STATE_ACTIVE], TRUE,
+ widget->style->base_gc[GTK_STATE_NORMAL], TRUE,
crect->x, crect->y, crect->width, crect->height);
}
if (!area || gdk_rectangle_intersect (area, &cell_rectangle, crect))
{
gdk_draw_rectangle (clist->clist_window,
- widget->style->base_gc[GTK_STATE_ACTIVE], TRUE,
+ widget->style->base_gc[GTK_STATE_NORMAL], TRUE,
crect->x, crect->y, crect->width, crect->height);
/* horizontal black lines */
clist = GTK_CLIST (ctree);
- if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED)
+ if (update_focus_row && clist->selection_mode == GTK_SELECTION_MULTIPLE)
{
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
GtkCTreeNode *parent;
GList *list;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
clist = GTK_CLIST (ctree);
- if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED)
+ if (update_focus_row && clist->selection_mode == GTK_SELECTION_MULTIPLE)
{
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
GtkCTree *ctree;
GtkCTreeNode *node;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
if (GTK_CLIST_AUTO_SORT (clist))
visible = gtk_ctree_is_viewable (ctree, node);
- if (clist->selection_mode == GTK_SELECTION_EXTENDED)
+ if (clist->selection_mode == GTK_SELECTION_MULTIPLE)
{
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
gtk_clist_freeze (clist);
work = NULL;
- if (gtk_ctree_is_viewable (ctree, node) ||
- gtk_ctree_is_viewable (ctree, new_sibling))
+ if (gtk_ctree_is_viewable (ctree, node))
work = GTK_CTREE_NODE (g_list_nth (clist->row_list, clist->focus_row));
gtk_ctree_unlink (ctree, node, FALSE);
GtkCList *clist;
GtkCTreeNode *node;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
gboolean visible;
gint level;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (!node || GTK_CTREE_ROW (node)->expanded || GTK_CTREE_ROW (node)->is_leaf)
gboolean visible;
gint level;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (!node || !GTK_CTREE_ROW (node)->expanded ||
PangoLayout *layout;
PangoRectangle logical_rect;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
g_return_if_fail (requisition != NULL);
gboolean visible = FALSE;
GtkCTree *ctree;
GtkRequisition requisition;
+ gchar *old_text = NULL;
+ GdkPixmap *old_pixmap = NULL;
+ GdkBitmap *old_mask = NULL;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
g_return_if_fail (clist_row != NULL);
{
case GTK_CELL_EMPTY:
break;
-
case GTK_CELL_TEXT:
- g_free (GTK_CELL_TEXT (clist_row->cell[column])->text);
+ old_text = GTK_CELL_TEXT (clist_row->cell[column])->text;
break;
case GTK_CELL_PIXMAP:
- gdk_pixmap_unref (GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap);
- if (GTK_CELL_PIXMAP (clist_row->cell[column])->mask)
- gdk_bitmap_unref (GTK_CELL_PIXMAP (clist_row->cell[column])->mask);
+ old_pixmap = GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap;
+ old_mask = GTK_CELL_PIXMAP (clist_row->cell[column])->mask;
break;
case GTK_CELL_PIXTEXT:
- if (GTK_CELL_PIXTEXT (clist_row->cell[column])->text)
- g_free (GTK_CELL_PIXTEXT (clist_row->cell[column])->text);
- if (GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap)
- {
- gdk_pixmap_unref
- (GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap);
- if (GTK_CELL_PIXTEXT (clist_row->cell[column])->mask)
- gdk_bitmap_unref
- (GTK_CELL_PIXTEXT (clist_row->cell[column])->mask);
- }
+ old_text = GTK_CELL_PIXTEXT (clist_row->cell[column])->text;
+ old_pixmap = GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap;
+ old_mask = GTK_CELL_PIXTEXT (clist_row->cell[column])->mask;
break;
case GTK_CELL_WIDGET:
/* unimplimented */
if (column == ctree->tree_column && type != GTK_CELL_EMPTY)
type = GTK_CELL_PIXTEXT;
+ /* Note that pixmap and mask were already ref'ed by the caller
+ */
switch (type)
{
case GTK_CELL_TEXT:
if (visible && clist->column[column].auto_resize &&
!GTK_CLIST_AUTO_RESIZE_BLOCKED (clist))
column_auto_resize (clist, clist_row, column, requisition.width);
+
+ if (old_text)
+ g_free (old_text);
+ if (old_pixmap)
+ gdk_pixmap_unref (old_pixmap);
+ if (old_mask)
+ gdk_pixmap_unref (old_mask);
}
static void
{
if (GTK_WIDGET_REALIZED (ctree))
gtk_style_detach (ctree_row->row.cell[i].style);
- gtk_style_unref (ctree_row->row.cell[i].style);
+ g_object_unref (ctree_row->row.cell[i].style);
}
}
{
if (GTK_WIDGET_REALIZED (ctree))
gtk_style_detach (ctree_row->row.style);
- gtk_style_unref (ctree_row->row.style);
+ g_object_unref (ctree_row->row.style);
}
if (ctree_row->pixmap_closed)
{
GList *node;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
if ((node = g_list_nth (clist->row_list, row)) &&
{
GList *node;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
if ((node = g_list_nth (clist->row_list, row)))
GtkCTreeNode *sel_row;
gboolean node_selected;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (!node || GTK_CTREE_ROW (node)->row.state == GTK_STATE_SELECTED ||
{
GtkCList *clist;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (!node || GTK_CTREE_ROW (node)->row.state != GTK_STATE_SELECTED)
GtkCTree *ctree;
GtkCTreeNode *node;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
ctree = GTK_CTREE (clist);
case GTK_SELECTION_BROWSE:
return;
- case GTK_SELECTION_EXTENDED:
+ case GTK_SELECTION_MULTIPLE:
gtk_clist_freeze (clist);
gtk_clist_thaw (clist);
break;
- case GTK_SELECTION_MULTIPLE:
- gtk_ctree_select_recursive (ctree, NULL);
- break;
-
default:
/* do nothing */
break;
GtkCTreeNode *node;
GList *list;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
ctree = GTK_CTREE (clist);
}
break;
- case GTK_SELECTION_EXTENDED:
+ case GTK_SELECTION_MULTIPLE:
g_list_free (clist->undo_selection);
g_list_free (clist->undo_unselection);
clist->undo_selection = NULL;
gint xl;
gint yu;
- g_return_val_if_fail (ctree != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
g_return_val_if_fail (node != NULL, FALSE);
tree_row = GTK_CTREE_ROW (node);
- cell = GTK_CELL_PIXTEXT(tree_row->row.cell[ctree->tree_column]);
+ cell = GTK_CELL_PIXTEXT (tree_row->row.cell[ctree->tree_column]);
yu = (ROW_TOP_YPIXEL (clist, row) + (clist->row_height - PM_SIZE) / 2 -
(clist->row_height - 1) % 2);
GtkCTreeNode *sibling;
GtkCTreeNode *node;
- g_return_val_if_fail (clist != NULL, -1);
g_return_val_if_fail (GTK_IS_CTREE (clist), -1);
sibling = GTK_CTREE_NODE (g_list_nth (clist->row_list, row));
GList *list;
gint i;
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
if (sibling)
g_return_val_if_fail (GTK_CTREE_ROW (sibling)->parent == parent, NULL);
GNode *work;
guint depth = 1;
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
g_return_val_if_fail (gnode != NULL, NULL);
g_return_val_if_fail (func != NULL, NULL);
if (!func (ctree, depth, gnode, cnode, data))
{
tree_delete_row (ctree, cnode, NULL);
+ gtk_clist_thaw (clist);
return NULL;
}
GNode *gnode;
gint depth;
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
g_return_val_if_fail (node != NULL, NULL);
g_return_val_if_fail (func != NULL, NULL);
{
GtkCTreeNode *node;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
node = GTK_CTREE_NODE (g_list_nth (clist->row_list, row));
{
GtkCList *clist;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
GtkCTreeNode *work;
GtkCTreeNode *ptr;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
ctree = GTK_CTREE (clist);
GtkCTreeNode *work;
GtkCTreeNode *tmp;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (func != NULL);
GtkCTreeNode *work;
GtkCTreeNode *tmp;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (func != NULL);
GtkCTreeNode *work;
GtkCTreeNode *tmp;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (func != NULL);
GtkCTreeNode *work;
GtkCTreeNode *tmp;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (func != NULL);
{
GtkCTreeRow *work;
- g_return_val_if_fail (ctree != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
g_return_val_if_fail (node != NULL, FALSE);
gtk_ctree_last (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
if (!node)
{
GtkCTreeNode *node;
- g_return_val_if_fail (ctree != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
g_return_val_if_fail (ctree_row != NULL, FALSE);
if (ctree_row->parent)
- node = GTK_CTREE_ROW(ctree_row->parent)->children;
+ node = GTK_CTREE_ROW (ctree_row->parent)->children;
else
node = GTK_CTREE_NODE (GTK_CLIST (ctree)->row_list);
gtk_ctree_node_nth (GtkCTree *ctree,
guint row)
{
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
if ((row < 0) || (row >= GTK_CLIST(ctree)->rows))
{
GList *list = NULL;
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
/* if node == NULL then look in the whole tree */
{
GList *list = NULL;
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
g_return_val_if_fail (func != NULL, NULL);
gint column;
gint row;
- g_return_val_if_fail (ctree != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
if (gtk_clist_get_selection_info (GTK_CLIST (ctree), x, y, &row, &column))
GtkCTreeNode *new_parent,
GtkCTreeNode *new_sibling)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
gtk_ctree_expand (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
GtkCList *clist;
gboolean thaw = FALSE;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
GtkCList *clist;
gboolean thaw = FALSE;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
gtk_ctree_collapse (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
gboolean thaw = FALSE;
gint i;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (node && GTK_CTREE_ROW (node)->is_leaf)
gboolean thaw = FALSE;
gint i;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (node && GTK_CTREE_ROW (node)->is_leaf)
gtk_ctree_toggle_expansion (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
GtkCList *clist;
gboolean thaw = FALSE;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (node && GTK_CTREE_ROW (node)->is_leaf)
gtk_ctree_select (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
gtk_ctree_unselect (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
GtkCList *clist;
gboolean thaw = FALSE;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
thaw = TRUE;
}
- if (clist->selection_mode == GTK_SELECTION_EXTENDED)
+ if (clist->selection_mode == GTK_SELECTION_MULTIPLE)
{
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
{
GtkCList *clist;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
clist = GTK_CLIST (ctree);
GTK_CLIST_GET_CLASS (clist)->set_cell_contents
- (clist, &(GTK_CTREE_ROW(node)->row), column, GTK_CELL_TEXT,
+ (clist, &(GTK_CTREE_ROW (node)->row), column, GTK_CELL_TEXT,
text, 0, NULL, NULL);
tree_draw_node (ctree, node);
{
GtkCList *clist;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
g_return_if_fail (pixmap != NULL);
{
GtkCList *clist;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
if (column != ctree->tree_column)
gboolean old_leaf;
gboolean old_expanded;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
while (work)
{
ptr = work;
- work = GTK_CTREE_ROW(work)->sibling;
+ work = GTK_CTREE_ROW (work)->sibling;
gtk_ctree_remove_node (ctree, ptr);
}
}
GtkRequisition requisition;
gboolean visible = FALSE;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
GtkCTreeNode *node,
gboolean selectable)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
clist = GTK_CLIST (ctree);
if (clist->anchor >= 0 &&
- clist->selection_mode == GTK_SELECTION_EXTENDED)
+ clist->selection_mode == GTK_SELECTION_MULTIPLE)
{
clist->drag_button = 0;
remove_grab (clist);
GtkCTreeNode *node,
gint column)
{
- g_return_val_if_fail (ctree != NULL, -1);
g_return_val_if_fail (GTK_IS_CTREE (ctree), -1);
g_return_val_if_fail (node != NULL, -1);
return GTK_CTREE_ROW (node)->row.cell[column].type;
}
-gint
+gboolean
gtk_ctree_node_get_text (GtkCTree *ctree,
GtkCTreeNode *node,
gint column,
gchar **text)
{
- g_return_val_if_fail (ctree != NULL, 0);
- g_return_val_if_fail (GTK_IS_CTREE (ctree), 0);
- g_return_val_if_fail (node != NULL, 0);
+ g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
+ g_return_val_if_fail (node != NULL, FALSE);
if (column < 0 || column >= GTK_CLIST (ctree)->columns)
- return 0;
+ return FALSE;
if (GTK_CTREE_ROW (node)->row.cell[column].type != GTK_CELL_TEXT)
- return 0;
+ return FALSE;
if (text)
*text = GTK_CELL_TEXT (GTK_CTREE_ROW (node)->row.cell[column])->text;
- return 1;
+ return TRUE;
}
-gint
+gboolean
gtk_ctree_node_get_pixmap (GtkCTree *ctree,
GtkCTreeNode *node,
gint column,
GdkPixmap **pixmap,
GdkBitmap **mask)
{
- g_return_val_if_fail (ctree != NULL, 0);
- g_return_val_if_fail (GTK_IS_CTREE (ctree), 0);
- g_return_val_if_fail (node != NULL, 0);
+ g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
+ g_return_val_if_fail (node != NULL, FALSE);
if (column < 0 || column >= GTK_CLIST (ctree)->columns)
- return 0;
+ return FALSE;
if (GTK_CTREE_ROW (node)->row.cell[column].type != GTK_CELL_PIXMAP)
- return 0;
+ return FALSE;
if (pixmap)
- *pixmap = GTK_CELL_PIXMAP (GTK_CTREE_ROW(node)->row.cell[column])->pixmap;
+ *pixmap = GTK_CELL_PIXMAP (GTK_CTREE_ROW (node)->row.cell[column])->pixmap;
if (mask)
*mask = GTK_CELL_PIXMAP (GTK_CTREE_ROW (node)->row.cell[column])->mask;
- return 1;
+ return TRUE;
}
-gint
+gboolean
gtk_ctree_node_get_pixtext (GtkCTree *ctree,
GtkCTreeNode *node,
gint column,
GdkPixmap **pixmap,
GdkBitmap **mask)
{
- g_return_val_if_fail (ctree != NULL, 0);
- g_return_val_if_fail (GTK_IS_CTREE (ctree), 0);
- g_return_val_if_fail (node != NULL, 0);
+ g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
+ g_return_val_if_fail (node != NULL, FALSE);
if (column < 0 || column >= GTK_CLIST (ctree)->columns)
- return 0;
+ return FALSE;
if (GTK_CTREE_ROW (node)->row.cell[column].type != GTK_CELL_PIXTEXT)
- return 0;
+ return FALSE;
if (text)
*text = GTK_CELL_PIXTEXT (GTK_CTREE_ROW (node)->row.cell[column])->text;
if (mask)
*mask = GTK_CELL_PIXTEXT (GTK_CTREE_ROW (node)->row.cell[column])->mask;
- return 1;
+ return TRUE;
}
-gint
+gboolean
gtk_ctree_get_node_info (GtkCTree *ctree,
GtkCTreeNode *node,
gchar **text,
gboolean *is_leaf,
gboolean *expanded)
{
- g_return_val_if_fail (ctree != NULL, 0);
- g_return_val_if_fail (GTK_IS_CTREE (ctree), 0);
- g_return_val_if_fail (node != NULL, 0);
+ g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
+ g_return_val_if_fail (node != NULL, FALSE);
if (text)
*text = GTK_CELL_PIXTEXT
if (expanded)
*expanded = GTK_CTREE_ROW (node)->expanded;
- return 1;
+ return TRUE;
}
void
GtkRequisition requisition;
gboolean visible = FALSE;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
{
if (GTK_WIDGET_REALIZED (ctree))
gtk_style_detach (GTK_CTREE_ROW (node)->row.cell[column].style);
- gtk_style_unref (GTK_CTREE_ROW (node)->row.cell[column].style);
+ g_object_unref (GTK_CTREE_ROW (node)->row.cell[column].style);
}
GTK_CTREE_ROW (node)->row.cell[column].style = style;
if (GTK_CTREE_ROW (node)->row.cell[column].style)
{
- gtk_style_ref (GTK_CTREE_ROW (node)->row.cell[column].style);
+ g_object_ref (GTK_CTREE_ROW (node)->row.cell[column].style);
if (GTK_WIDGET_REALIZED (ctree))
GTK_CTREE_ROW (node)->row.cell[column].style =
GtkCTreeNode *node,
gint column)
{
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
g_return_val_if_fail (node != NULL, NULL);
gint *old_width = NULL;
gint i;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
{
if (GTK_WIDGET_REALIZED (ctree))
gtk_style_detach (GTK_CTREE_ROW (node)->row.style);
- gtk_style_unref (GTK_CTREE_ROW (node)->row.style);
+ g_object_unref (GTK_CTREE_ROW (node)->row.style);
}
GTK_CTREE_ROW (node)->row.style = style;
if (GTK_CTREE_ROW (node)->row.style)
{
- gtk_style_ref (GTK_CTREE_ROW (node)->row.style);
+ g_object_ref (GTK_CTREE_ROW (node)->row.style);
if (GTK_WIDGET_REALIZED (ctree))
GTK_CTREE_ROW (node)->row.style =
gtk_ctree_node_get_row_style (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
g_return_val_if_fail (node != NULL, NULL);
GtkCTreeNode *node,
GdkColor *color)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
GtkCTreeNode *node,
GdkColor *color)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
GtkDestroyNotify dnotify;
gpointer ddata;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
gtk_ctree_node_get_row_data (GtkCTree *ctree,
GtkCTreeNode *node)
{
- g_return_val_if_fail (ctree != NULL, NULL);
g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
return node ? GTK_CTREE_ROW (node)->row.data : NULL;
gint row = -1;
GtkCList *clist;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
{
GtkCList *clist;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (indent >= 0);
GtkCList *clist;
gint old_spacing;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (spacing >= 0);
gtk_ctree_set_show_stub (GtkCTree *ctree,
gboolean show_stub)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
show_stub = show_stub != FALSE;
GtkCList *clist;
GtkCTreeLineStyle old_style;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (line_style == ctree->line_style)
GtkCList *clist;
GtkCTreeExpanderStyle old_style;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
if (expander_style == ctree->expander_style)
GtkCList *clist;
GtkCTreeNode *focus_node = NULL;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
gtk_clist_freeze (clist);
- if (clist->selection_mode == GTK_SELECTION_EXTENDED)
+ if (clist->selection_mode == GTK_SELECTION_MULTIPLE)
{
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
GtkCList *clist;
GtkCTreeNode *focus_node = NULL;
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
gtk_clist_freeze (clist);
- if (clist->selection_mode == GTK_SELECTION_EXTENDED)
+ if (clist->selection_mode == GTK_SELECTION_MULTIPLE)
{
GTK_CLIST_GET_CLASS (clist)->resync_selection (clist, NULL);
gint row;
gboolean unselect;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
- if (clist->selection_mode != GTK_SELECTION_EXTENDED)
+ if (clist->selection_mode != GTK_SELECTION_MULTIPLE)
return;
if (clist->anchor < 0 || clist->drag_pos < 0)
GtkCTree *ctree;
GList *work;
- g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CTREE (clist));
- if (clist->selection_mode != GTK_SELECTION_EXTENDED)
+ if (clist->selection_mode != GTK_SELECTION_MULTIPLE)
return;
if (!(clist->undo_selection || clist->undo_unselection))
if (GTK_WIDGET_HAS_FOCUS (clist) && clist->focus_row != clist->undo_anchor)
{
- gtk_widget_draw_focus (GTK_WIDGET (clist));
clist->focus_row = clist->undo_anchor;
- gtk_widget_draw_focus (GTK_WIDGET (clist));
+ gtk_widget_queue_draw (GTK_WIDGET (clist));
}
else
clist->focus_row = clist->undo_anchor;
gtk_ctree_set_drag_compare_func (GtkCTree *ctree,
GtkCTreeCompareDragFunc cmp_func)
{
- g_return_if_fail (ctree != NULL);
g_return_if_fail (GTK_IS_CTREE (ctree));
ctree->drag_compare = cmp_func;
GtkCTreeNode *drag_target,
GtkCListDragPos insert_pos)
{
- g_return_val_if_fail (ctree != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
if (drag_source && drag_source != drag_target &&
ctree->drag_compare (ctree,
drag_source,
GTK_CTREE_ROW (drag_target)->parent,
- GTK_CTREE_ROW(drag_target)->sibling));
+ GTK_CTREE_ROW (drag_target)->sibling));
break;
case GTK_CLIST_DRAG_BEFORE:
if (GTK_CTREE_ROW (drag_source)->sibling != drag_target)
GtkCTree *ctree;
gboolean use_icons;
- g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_CTREE (widget));
g_return_if_fail (context != NULL);
GtkCListDestInfo new_info;
GtkCListDestInfo *dest_info;
- g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CTREE (widget), FALSE);
clist = GTK_CLIST (widget);
g_list_nth (clist->row_list, dest_info->cell.row)->data,
dest_info->cell.row, dest_info->insert_pos);
+ clist->drag_highlight_row = dest_info->cell.row;
+ clist->drag_highlight_pos = dest_info->insert_pos;
+
gdk_drag_status (context, context->suggested_action, time);
}
return TRUE;
GtkCTree *ctree;
GtkCList *clist;
- g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_CTREE (widget));
g_return_if_fail (context != NULL);
g_return_if_fail (selection_data != NULL);
}
}
}
+
+/* dummy boxed type definition, used so that the GtkCTreeNode signal
+ * arguments have a reasonable type.
+ */
+gpointer
+ctree_node_copy (gpointer boxed)
+{
+ return boxed;
+}
+
+void
+ctree_node_free (gpointer boxed)
+{
+ /* nothing */
+}
+
+GType
+gtk_ctree_node_get_type (void)
+{
+ static GType our_type = 0;
+
+ if (our_type == 0)
+ our_type = g_boxed_type_register_static ("GtkCTreeNode",
+ (GBoxedCopyFunc)ctree_node_copy,
+ (GBoxedFreeFunc)ctree_node_free);
+
+ return our_type;
+}