void dirtree_refresh_node (DirTree * dt, GtkCTreeNode * node) { DirTreeNode *dirnode = NULL; gint has_subdirs; gboolean expanded; dirnode = gtk_ctree_node_get_row_data (GTK_CTREE (dt), node); has_subdirs = tree_is_subdirs (dirnode->path, dt->show_dotfile); if (has_subdirs && GTK_CTREE_ROW (node)->expanded == 1) expanded = TRUE; else expanded = FALSE; if (has_subdirs) gtk_ctree_set_node_info (GTK_CTREE (dt), node, g_basename (dirnode->path), CTREE_SPACING, folder_pixmap, folder_mask, ofolder_pixmap, ofolder_mask, FALSE, expanded); else gtk_ctree_set_node_info (GTK_CTREE (dt), node, g_basename (dirnode->path), CTREE_SPACING, folder_pixmap, folder_mask, ofolder_pixmap, ofolder_mask, TRUE, expanded); }
void source_ctree_show_node_status (GtkWidget *ctree, struct master *m) { GtkCTreeNode *node; struct pixmap *pix = NULL; int is_leaf; int expanded; node = gtk_ctree_find_by_row_data (GTK_CTREE (ctree), NULL, m); if (m->isgroup || m == favorites) { pix = games[m->type].pix; } else { pix = &server_status[m->state]; } gtk_ctree_get_node_info (GTK_CTREE (ctree), node, NULL, NULL, NULL, NULL, NULL, NULL, &is_leaf, &expanded); gtk_ctree_set_node_info (GTK_CTREE (ctree), node, _(m->name), 4, (pix)? pix->pix : NULL, (pix)? pix->mask : NULL, (pix)? pix->pix : NULL, (pix)? pix->mask : NULL, is_leaf, expanded); }
/* Change the information. Most parameters correspond to the parameters of gtk_ctree_insert_node. */ int clip_GTK_CTREENODESETNODEINFO(ClipMachine * cm) { C_widget *cctree = _fetch_cw_arg(cm); C_object *cnode = _fetch_cobject(cm,_clip_spar(cm,2)); ClipVar *cvtext = _clip_spar(cm,3); guint8 spacing = _clip_parni(cm,4); C_widget *cclosed = _fetch_cwidget(cm,_clip_spar(cm,5)); C_widget *copened = _fetch_cwidget(cm,_clip_spar(cm,6)); gboolean is_leaf = _clip_parl(cm,7); gboolean expanded = _clip_parl(cm,8); GtkCTreeNode *node = 0; GdkPixmap *pxm_closed=NULL, *pxm_opened=NULL; GdkBitmap *mask_closed=NULL, *mask_opened=NULL; int i; gchar * * columns = NULL; int ncolumns; CHECKCWID(cctree,GTK_IS_CTREE); CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE); CHECKOPT2(3,ARRAY_t,CHARACTER_t); CHECKOPT(4,NUMERIC_t); CHECKOPT2(5,MAP_t,NUMERIC_t); CHECKCWIDOPT(cclosed,GTK_IS_PIXMAP); CHECKOPT2(6,MAP_t,NUMERIC_t); CHECKCWIDOPT(copened,GTK_IS_PIXMAP); CHECKOPT(7,LOGICAL_t); CHECKOPT(8,LOGICAL_t); if (cnode) node = GTK_CTREE_NODE(cnode->object); if (cclosed) { pxm_closed=GTK_PIXMAP(cclosed->widget)->pixmap; mask_closed=GTK_PIXMAP(cclosed->widget)->mask; } if (copened) { pxm_opened=GTK_PIXMAP(copened->widget)->pixmap; mask_opened=GTK_PIXMAP(copened->widget)->mask; } if (_clip_parinfo(cm,7)==UNDEF_t) is_leaf = TRUE; if (_clip_parinfo(cm,8)==UNDEF_t) expanded = FALSE; ncolumns = GTK_CLIST(cctree->widget)->columns; columns = (gchar**)calloc(sizeof(columns),ncolumns); for(i=0; i < ncolumns; i++ ) columns[i] = ""; if (cvtext->t.type==ARRAY_t) { ClipArrVar *acol = (ClipArrVar*)_clip_vptr(cvtext); for(i=0; i < acol->count; i++ ) if ( i < acol->count && acol->items[i].t.type == CHARACTER_t ) { columns[i] = acol->items[i].s.str.buf; LOCALE_TO_UTF(columns[i]); } } if (cvtext->t.type==CHARACTER_t) { columns[0] = _clip_parc(cm,2); LOCALE_TO_UTF(columns[0]); } gtk_ctree_set_node_info(GTK_CTREE(cctree->widget), node,columns[0],spacing,pxm_closed,mask_closed, pxm_opened,mask_opened,is_leaf,expanded); #ifdef OS_CYGWIN if (cvtext->t.type==ARRAY_t) { ClipArrVar *acol = (ClipArrVar*)_clip_vptr(cvtext); for(i=0; i < acol->count; i++ ) if ( i < acol->count && acol->items[i].t.type == CHARACTER_t ) FREE_TEXT(columns[i]); } if (cvtext->t.type==CHARACTER_t) FREE_TEXT(columns[0]); #endif if (columns) free(columns); return 0; err: return 1; }