示例#1
0
文件: xqf-ui.c 项目: IR4T4/xqf
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;
}
示例#2
0
文件: ctree.c 项目: amery/clip-itk
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;
}
示例#3
0
文件: xqf-ui.c 项目: IR4T4/xqf
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;
}
示例#4
0
文件: dirtree.c 项目: gentoo/pornview
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;
    }
}
示例#5
0
/*
 * 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;

}
示例#6
0
文件: dirtree.c 项目: gentoo/pornview
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;
}