示例#1
0
static VALUE
tvc_cell_get_size(VALUE self)
{
    GdkRectangle cell_area;
    gint x_offset, y_offset, width, height;
    VALUE cell;

    /* Is this collect implement for cell_area ? */
    cell_area.x = -1;
    cell_area.y = -1;
    cell_area.width = -1;
    cell_area.height = -1;

    gtk_tree_view_column_cell_get_size(_SELF(self), &cell_area,
                                       &x_offset, &y_offset, 
                                       &width, &height);
    if (cell_area.x == -1 || cell_area.y == -1 || 
        cell_area.width == -1 || cell_area.height == -1){
        cell = Qnil;
    } else {
        cell = BOXED2RVAL(&cell_area, GDK_TYPE_RECTANGLE);
    }
    return rb_ary_new3(5, cell,
                       x_offset ? INT2NUM(x_offset) : Qnil,
                       y_offset ? INT2NUM(y_offset) : Qnil,
                       width ? INT2NUM(width) : Qnil,
                       height ? INT2NUM(height) : Qnil);
}
示例#2
0
/* Widget style set */
static void tilem_disasm_view_style_set(GtkWidget *w, GtkStyle *oldstyle)
{
	TilemDisasmView *dv;
	GtkTreeModel *model;
	GtkTreeIter iter;
	GList *cols, *cp;
	GtkTreeViewColumn *col;
	int width;

	g_return_if_fail(TILEM_IS_DISASM_VIEW(w));
	dv = TILEM_DISASM_VIEW(w);

	(*GTK_WIDGET_CLASS(parent_class)->style_set)(w, oldstyle);

	/* line height must be recalculated */
	dv->line_height = 0;

	/* set column widths based on a dummy model */

	model = new_dasm_model();
	append_dummy_line(dv, model, &iter);

	cols = gtk_tree_view_get_columns(GTK_TREE_VIEW(dv));
	for (cp = cols; cp; cp = cp->next) {
		col = cp->data;
		gtk_tree_view_column_cell_set_cell_data(col, model, &iter,
		                                        FALSE, FALSE);
		gtk_tree_view_column_cell_get_size(col, NULL, NULL, NULL,
		                                   &width, NULL);
		gtk_tree_view_column_set_fixed_width(col, width + 2);
	}
	g_list_free(cols);

	g_object_unref(model);
}
示例#3
0
static void
usage_view_update_row_and_header_height (PlannerView *view)
{
	GtkTreeView        *tv;
	PlannerUsageChart  *chart;
	gint                row_height;
	gint                header_height;
	gint                height;
	GList              *cols, *l;
	GtkTreeViewColumn  *col;
	GtkRequisition      req;
	GtkTreePath       *path;
	GdkRectangle       rect;

	tv = GTK_TREE_VIEW (PLANNER_USAGE_VIEW (view)->priv->tree);
	chart = PLANNER_USAGE_VIEW (view)->priv->chart;

	/* Get the row and header heights. */
	cols = gtk_tree_view_get_columns (tv);
	row_height = 0;
	header_height = 0;

	path = gtk_tree_path_new_first ();

	for (l = cols; l; l = l->next) {
		col = l->data;

		gtk_widget_size_request (col->button, &req);
		header_height = MAX (header_height, req.height);

		gtk_tree_view_column_cell_get_size (col,
						    NULL,
						    NULL,
						    NULL,
						    NULL,
						    &height);
		row_height = MAX (row_height, height);

		gtk_tree_view_get_background_area (tv,
						   path,
						   col,
						   &rect);

		row_height = MAX (row_height, rect.height);
	}

	if (path)
		gtk_tree_path_free (path);

	g_list_free (cols);

	/* Sync with the chart widget. */
	g_object_set (chart,
		      "header_height", header_height,
		      "row_height", row_height,
		      NULL);
}
示例#4
0
int wxCheckListBox::GetItemHeight() const
{
    wxCHECK_MSG( m_treeview != NULL, 0, wxT("invalid listbox"));

    gint height;
    gtk_tree_view_column_cell_get_size(
        gtk_tree_view_get_column(m_treeview, 0),
                                       NULL, NULL, NULL, NULL,
                                       &height);
    return height;
}
示例#5
0
static void
on_tree_view_realize (GtkWidget         *tree_view,
                      GtkScrolledWindow *scrolled_w)
{
  GtkTreeViewColumn *column;
  gint height;

  column = gtk_tree_view_get_column (GTK_TREE_VIEW (tree_view), 0);
  gtk_tree_view_column_cell_get_size (column, NULL, NULL, NULL, NULL, &height);
  gtk_widget_set_size_request (GTK_WIDGET (scrolled_w), -1, height * 3 );
}
示例#6
0
文件: aim-candidate.c 项目: irus6/aim
static void
on_tree_view_realize (GtkWidget    *tree_view,
                      AimCandidate *candidate)
{
  g_debug (G_STRLOC ": %s", G_STRFUNC);

  GtkTreeViewColumn *column;
  GtkAdjustment *adjustment;
  gint horizontal_space, height;
  guint border_width;

  column = gtk_tree_view_get_column (GTK_TREE_VIEW (tree_view), TITEL_COLUMN);
  gtk_tree_view_column_cell_get_size (column, NULL, NULL, NULL, NULL, &height);
  border_width = gtk_container_get_border_width (GTK_CONTAINER (candidate->window));
  gtk_widget_style_get (tree_view, "horizontal-separator",
                        &horizontal_space, NULL);
  height = height + horizontal_space / 2;
  gtk_window_resize (GTK_WINDOW (candidate->window),
                     height * 10 / 1.6,
                     height * 10 + border_width * 2);

  adjustment = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (candidate->treeview));
  gtk_adjustment_set_value (adjustment, 0.0);
}