/* * Popup Menu Handler. * Expand or Collapse the whole hierarchical tree. */ static void gdisp_popupMenuHandler ( Kernel_T *kernel, PopupMenu_T *menu, gpointer menuData, /* cTree */ gpointer itemData ) { GtkWidget *cTree = (GtkWidget*)menuData; guint action = GPOINTER_TO_UINT(itemData); /* * itemData : 0-collapse, 1-expand */ if (action == 1 /* expand */) { gtk_ctree_expand_recursive(GTK_CTREE(cTree), (GtkCTreeNode*)NULL); } else { gtk_ctree_collapse_recursive(GTK_CTREE(cTree), (GtkCTreeNode*)NULL); } }
/* Recursively collapses the directory tree entry of the given directory */ void dirtree_entry_collapse_recursive( GNode *dnode ) { g_assert( NODE_IS_DIR(dnode) ); block_colexp_handlers( ); gtk_ctree_collapse_recursive( GTK_CTREE(dir_ctree_w), DIR_NODE_DESC(dnode)->ctnode ); unblock_colexp_handlers( ); }
/* Collapse one node and all its subnodes. */ int clip_GTK_CTREECOLLAPSERECURSIVE(ClipMachine * cm) { C_widget *cctree = _fetch_cw_arg(cm); C_object *cnode = _fetch_cobject(cm,_clip_spar(cm,2)); CHECKCWID(cctree,GTK_IS_CTREE); CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE); gtk_ctree_collapse_recursive(GTK_CTREE(cctree->widget), GTK_CTREE_NODE(cnode->object)); return 0; err: return 1; }