Example #1
0
static int select_idle_callback (TextboxItem *item)
{
	Coords bbox_start, bbox_end;
	TextboxItemPriv *priv = item->priv;

	get_cached_bounds (item, &bbox_start, &bbox_end);
	g_object_set (priv->text_canvas_item, "fill_color", SELECTED_COLOR, NULL);

	priv->highlight = TRUE;

	return FALSE;
}
Example #2
0
static gboolean is_in_area (SheetItem *object, Coords *p1, Coords *p2)
{
	TextboxItem *item;
	Coords bbox_start, bbox_end;

	item = TEXTBOX_ITEM (object);

	get_cached_bounds (item, &bbox_start, &bbox_end);

	if (p1->x < bbox_start.x && p2->x > bbox_end.x && p1->y < bbox_start.y && p2->y > bbox_end.y)
		return TRUE;

	return FALSE;
}
Example #3
0
static gboolean
is_in_area (SheetItem *object, Coords *p1, Coords *p2)
{
	PartItem *item;
	Coords bbox_start, bbox_end;

	item = PART_ITEM (object);

	get_cached_bounds (item, &bbox_start, &bbox_end);

	if ((p1->x < bbox_start.x) &&
	    (p2->x > bbox_end.x)   &&
	    (p1->y < bbox_start.y) &&
	    (p2->y > bbox_end.y))  {
		return TRUE;
	}
	return FALSE;
}
Example #4
0
static void
create_canvas_label_nodes (PartItem *item, Part *part)
{
	GooCanvasItem *canvas_item;
	GSList *item_list;
	GooCanvasItem *group;
	Pin *pins;
	int num_pins, i;
	Coords p1, p2;
	GooCanvasAnchorType anchor;
	
	g_return_if_fail (item != NULL);
	g_return_if_fail (IS_PART_ITEM (item));
	g_return_if_fail (part != NULL);
	g_return_if_fail (IS_PART (part));

	num_pins = part_get_num_pins (part);
	pins = part_get_pins (part);
	group = item->priv->node_group;
	item_list = NULL;

	get_cached_bounds (item, &p1, &p2);

	switch (part_get_rotation (part)) {
		case 0:
			anchor = GOO_CANVAS_ANCHOR_SOUTH_WEST;
		break;
		case 90:
			anchor = GOO_CANVAS_ANCHOR_NORTH_WEST;
		break;
		case 180:
			anchor = GOO_CANVAS_ANCHOR_NORTH_EAST;
		break;
		case 270:
			anchor = GOO_CANVAS_ANCHOR_SOUTH_EAST;
		break;
		default:
			anchor = GOO_CANVAS_ANCHOR_SOUTH_WEST;
	}

	for (i = 0; i < num_pins; i++) {
		int x, y;
		char *text;
		x = pins[i].offset.x;
		y = pins[i].offset.y;

		text = g_strdup_printf ("%d", pins[i].node_nr);
		canvas_item = goo_canvas_text_new (GOO_CANVAS_ITEM (group),
		                text,
		                (double) x,
		                (double) y,
		                0,
		                anchor,
		                "fill_color", "black",
		                "font", "Sans 8",
		                NULL);
		// Shift slightly the label for a Voltmeter
		if (i == 0) goo_canvas_item_translate (canvas_item, -15.0, -10.0);

		item_list = g_slist_prepend (item_list, canvas_item);
		g_free (text);
	}
	item_list = g_slist_reverse (item_list);
	item->priv->label_nodes = item_list;
}