Ejemplo n.º 1
0
/*
 * ECell::draw method
 */
static void
ecv_draw (ECellView *ecell_view, GdkDrawable *drawable,
	  int model_col, int view_col, int row, ECellFlags flags,
	  int x1, int y1, int x2, int y2)
{
	ECellHboxView *hbox_view = (ECellHboxView *)ecell_view;

	int subcell_offset = 0;
	int i;
	int allotted_width = x2-x1;

	for (i = 0; i < hbox_view->subcell_view_count; i++) {
		/* Now cause our subcells to draw their contents,
		   shifted by subcell_offset pixels */
		int width = allotted_width * hbox_view->def_size_cols[i] / 100;
			//e_cell_max_width_by_row (hbox_view->subcell_views[i], hbox_view->model_cols[i], view_col, row);
//		if (width < hbox_view->def_size_cols[i])
	//		width = hbox_view->def_size_cols[i];
//		printf("width of %d %d of %d\n", width,hbox_view->def_size_cols[i], allotted_width );
		e_cell_draw (hbox_view->subcell_views[i], drawable,
			     hbox_view->model_cols[i], view_col, row, flags,
			     x1 + subcell_offset , y1, x1 + subcell_offset + width, y2);

		subcell_offset += width; //e_cell_max_width_by_row (hbox_view->subcell_views[i], hbox_view->model_cols[i], view_col, row);
	}
}
Ejemplo n.º 2
0
/*
 * ECell::draw method
 */
static void
ect_draw (ECellView *ecell_view,
          cairo_t *cr,
          gint model_col,
          gint view_col,
          gint row,
          ECellFlags flags,
          gint x1,
          gint y1,
          gint x2,
          gint y2)
{
	ECellTreeView *tree_view = (ECellTreeView *) ecell_view;
	ETreeModel *tree_model = e_cell_tree_get_tree_model (ecell_view->e_table_model, row);
	ETreeTableAdapter *tree_table_adapter = e_cell_tree_get_tree_table_adapter (ecell_view->e_table_model, row);
	ETreePath node;
	GdkRectangle rect;
	gint offset, subcell_offset = 0;

	cairo_save (cr);

	/* only draw the tree effects if we're the active sort */
	if (E_CELL_TREE (tree_view->cell_view.ecell)->grouped_view) {
		tree_view->prelit = FALSE;

		node = e_cell_tree_get_node (ecell_view->e_table_model, row);

		offset = offset_of_node (ecell_view->e_table_model, row);
		subcell_offset = offset;

		/*
		 * Be a nice citizen: clip to the region we are supposed to draw on
		 */
		rect.x = x1;
		rect.y = y1;
		rect.width = subcell_offset;
		rect.height = y2 - y1;

		/* now draw our icon if we're expandable */
		if (e_tree_model_node_is_expandable (tree_model, node)) {
			gboolean expanded = e_tree_table_adapter_node_is_expanded (tree_table_adapter, node);
			GdkRectangle r;

			r = rect;
			r.width -= 2;
			draw_expander (tree_view, cr, expanded ? GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED, GTK_STATE_NORMAL, &r);
		}
	}

	/* Now cause our subcell to draw its contents, shifted by
	 * subcell_offset pixels */
	e_cell_draw (
		tree_view->subcell_view, cr,
		model_col, view_col, row, flags,
		x1 + subcell_offset, y1, x2, y2);

	cairo_restore (cr);
}
Ejemplo n.º 3
0
/*
 * ECell::draw method
 */
static void
ecv_draw (ECellView *ecell_view,
          cairo_t *cr,
          gint model_col,
          gint view_col,
          gint row,
          ECellFlags flags,
          gint x1,
          gint y1,
          gint x2,
          gint y2)
{
	ECellVboxView *vbox_view = (ECellVboxView *) ecell_view;

	gint subcell_offset = 0;
	gint i;

	for (i = 0; i < vbox_view->subcell_view_count; i++) {
		/* Now cause our subcells to draw their contents,
		 * shifted by subcell_offset pixels */
		gint height;

		height = e_cell_height (
			vbox_view->subcell_views[i],
			vbox_view->model_cols[i], view_col, row);
		e_cell_draw (
			vbox_view->subcell_views[i], cr,
			vbox_view->model_cols[i], view_col, row, flags,
			x1, y1 + subcell_offset, x2,
			y1 + subcell_offset + height);

		subcell_offset += e_cell_height (
			vbox_view->subcell_views[i],
			vbox_view->model_cols[i], view_col, row);
	}
}