GtkWidget *create_cwidget (GtkWidget *scrollwin, struct clist_def *cldef) { GtkWidget *alignment; GtkWidget *label; GtkWidget *clist; char buf[256]; int i; switch (cldef->type) { case CWIDGET_CLIST: clist = gtk_clist_new (cldef->columns); break; case CWIDGET_CTREE: clist = gtk_ctree_new (cldef->columns, 0); gtk_ctree_set_line_style (GTK_CTREE (clist), GTK_CTREE_LINES_NONE); gtk_ctree_set_expander_style (GTK_CTREE (clist), GTK_CTREE_EXPANDER_TRIANGLE); gtk_ctree_set_indent (GTK_CTREE (clist), 10); break; default: return NULL; } gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); GTK_CLIST_SET_FLAG (GTK_CLIST (clist), CLIST_SHOW_TITLES); gtk_container_add (GTK_CONTAINER (scrollwin), clist); gtk_clist_set_selection_mode (GTK_CLIST (clist), cldef->mode); for (i = 0; i < cldef->columns; i++) { g_snprintf (buf, 256, "/" CONFIG_FILE "/%s Geometry/%s=%d", cldef->name, cldef->cols[i].name, cldef->cols[i].width); gtk_clist_set_column_width (GTK_CLIST (clist), i, config_get_int (buf)); if (cldef->cols[i].justify != GTK_JUSTIFY_LEFT) { gtk_clist_set_column_justification (GTK_CLIST (clist), i, cldef->cols[i].justify); } alignment = gtk_alignment_new (0.0, 0.5, 0.0, 0.0); label = gtk_label_new (_(cldef->cols[i].name)); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (alignment), label); gtk_widget_show (label); cldef->cols[i].widget = label; gtk_clist_set_column_widget (GTK_CLIST (clist), i, alignment); gtk_widget_show (alignment); } gtk_clist_set_sort_column (GTK_CLIST (clist), cldef->sort_column); gtk_clist_set_sort_type (GTK_CLIST (clist), cldef->sort_type); clist_column_set_title (GTK_CLIST (clist), cldef, TRUE); return clist; }
int clip_GTK_CTREESETEXPANDERSTYLE (ClipMachine *cm) { C_widget *cctree = _fetch_cw_arg(cm); gint expander_style = _clip_parni(cm,2); CHECKCWID(cctree,GTK_IS_CTREE); CHECKOPT(2,NUMERIC_t); gtk_ctree_set_expander_style (GTK_CTREE(cctree->widget), expander_style); return 0; err: return 1; }
GtkWidget *create_source_ctree (GtkWidget *scrollwin) { char *titles[1] = { _("Source") }; GtkWidget *ctree; /* gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); */ ctree = gtk_ctree_new_with_titles (1, 0, titles); gtk_container_add (GTK_CONTAINER (scrollwin), ctree); gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED); gtk_ctree_set_line_style (GTK_CTREE (ctree), GTK_CTREE_LINES_NONE); gtk_ctree_set_expander_style (GTK_CTREE (ctree), GTK_CTREE_EXPANDER_TRIANGLE); gtk_ctree_set_indent (GTK_CTREE (ctree), 10); fill_source_ctree (ctree); return ctree; }
void dirtree_set_mode (DirTree * dt, gboolean check_dir, gboolean check_hlinks, gboolean show_dotfile, gint line_style, gint expander_style) { dt->check_dir = check_dir; dt->check_hlinks = check_hlinks; dt->show_dotfile = show_dotfile; if (dt->expander_style != expander_style) { gtk_ctree_set_expander_style (GTK_CTREE (dt), expander_style); dt->expander_style = expander_style; } if (dt->line_style != line_style) { gtk_ctree_set_line_style (GTK_CTREE (dt), line_style); dt->line_style = line_style; } }
/* * Create a provider node. */ static GtkWidget* gdisp_createHierarchicalTree ( Kernel_T *kernel ) { GtkWidget *cTree; gchar *cTitles[GD_TREE_NB_COLUMNS] = { "Properties", "Information" }; /* * Create the hierarchical tree. */ cTree = gtk_ctree_new_with_titles(GD_TREE_NB_COLUMNS, GD_TREE_COLUMN, cTitles); /* * The style of the lines that link all nodes. * GTK_CTREE_LINES_NONE, * GTK_CTREE_LINES_SOLID, * GTK_CTREE_LINES_DOTTED, * GTK_CTREE_LINES_TABBED. */ gtk_ctree_set_line_style(GTK_CTREE(cTree), GTK_CTREE_LINES_DOTTED); /* * The style of all expanders. * The expander is the place where the user must clic in order to * expand or collapse nodes. * GTK_CTREE_EXPANDER_NONE, * GTK_CTREE_EXPANDER_SQUARE, * GTK_CTREE_EXPANDER_TRIANGLE, * GTK_CTREE_EXPANDER_CIRCULAR. */ gtk_ctree_set_expander_style(GTK_CTREE(cTree), GTK_CTREE_EXPANDER_SQUARE); /* * Set up button actions. * Left button selects, expands or collapses nodes. * All other do nothing. * GTK_BUTTON_IGNORED = 0, * GTK_BUTTON_SELECTS = 1 << 0, * GTK_BUTTON_DRAGS = 1 << 1, * GTK_BUTTON_EXPANDS = 1 << 2. */ gtk_clist_set_button_actions(GTK_CLIST(cTree), 0, /* left button */ GTK_BUTTON_EXPANDS | GTK_BUTTON_SELECTS); gtk_clist_set_button_actions(GTK_CLIST(cTree), 1, /* middle button */ GTK_BUTTON_IGNORED); gtk_clist_set_button_actions(GTK_CLIST(cTree), 2, /* right button */ GTK_BUTTON_IGNORED); /* * Connect all mandatory signals. */ gtk_signal_connect (GTK_OBJECT(cTree), "tree-expand", gdisp_expandNodeCallback, (gpointer)kernel); gtk_signal_connect (GTK_OBJECT(cTree), "tree-collapse", gdisp_collapseNodeCallback, (gpointer)kernel); gtk_signal_connect (GTK_OBJECT(cTree), "tree-select-row", gdisp_treeSelectRowCallback, (gpointer)kernel); gtk_signal_connect (GTK_OBJECT(cTree), "tree-unselect-row", gdisp_treeUnselectRowCallback, (gpointer)kernel); /* * Show the tree. */ gtk_widget_show(cTree); return cTree; }
GtkWidget * dirtree_new (GtkWidget * win, const gchar * start_path, gboolean check_dir, gboolean check_hlinks, gboolean show_dotfile, gint line_style, gint expander_style) { GtkWidget *widget; DirTree *dt; DirTreeNode *dt_node; GtkCTreeNode *node = NULL; char *root = "/", *rp, *tmp; widget = gtk_type_new (dirtree_get_type ()); #ifndef USE_GTK2 gtk_ctree_construct (GTK_CTREE (widget), 1, 0, NULL); #endif dt = DIRTREE (widget); dt->collapse = FALSE; dt->check_dir = check_dir; dt->check_hlinks = check_hlinks; dt->show_dotfile = show_dotfile; dt->expander_style = expander_style; dt->line_style = line_style; dt->check_events = TRUE; lock = FALSE; gtk_clist_set_column_auto_resize (GTK_CLIST (dt), 0, TRUE); gtk_clist_set_selection_mode (GTK_CLIST (dt), GTK_SELECTION_BROWSE); gtk_clist_set_row_height (GTK_CLIST (dt), 18); gtk_ctree_set_expander_style (GTK_CTREE (dt), expander_style); gtk_ctree_set_line_style (GTK_CTREE (dt), line_style); folder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &folder_mask, NULL, folder_xpm); ofolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &ofolder_mask, NULL, folder_open_xpm); lfolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &lfolder_mask, NULL, folder_link_xpm); lofolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &lofolder_mask, NULL, folder_link_open_xpm); lckfolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &lckfolder_mask, NULL, folder_lock_xpm); gofolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &gofolder_mask, NULL, folder_go_xpm); upfolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &upfolder_mask, NULL, folder_up_xpm); node = gtk_ctree_insert_node (GTK_CTREE (dt), NULL, NULL, &root, CTREE_SPACING, folder_pixmap, folder_mask, ofolder_pixmap, ofolder_mask, FALSE, TRUE); dt_node = g_malloc0 (sizeof (DirTreeNode)); dt_node->path = g_strdup ("/"); dt_node->scanned = TRUE; gtk_ctree_node_set_row_data_full (GTK_CTREE (dt), node, dt_node, dirtree_destroy_tree); tree_expand_node (dt, node, FALSE); rp = g_strdup (start_path); tmp = strtok (rp, "/"); while (tmp) { node = dirtree_find_file (dt, node, tmp); if (!node) break; gtk_ctree_expand (GTK_CTREE (dt), node); gtk_ctree_select (GTK_CTREE (dt), node); GTK_CLIST (dt)->focus_row = GTK_CLIST (dt)->rows - g_list_length ((GList *) node); tmp = strtok (NULL, "/"); } g_free (rp); return widget; }