Пример #1
0
static void assert_four(xorn_revision_t rev, xorn_selection_t sel,
			int net0_color, int net1_color,
			int text0_color, int text1_color)
{
	xorn_object_t *objects;
	size_t count;
	xorn_object_t net0, net1, text0, text1;

	const struct xornsch_net *net_data;
	const struct xornsch_text *text_data;

	assert(xorn_get_objects_attached_to(rev, NULL, &objects, &count) == 0);
	assert(objects != NULL);
	assert(count == 3);
	  assert(net_data = xornsch_get_net_data(rev, objects[0]));
	  assert(net_data->color == net0_color);
	  net0 = objects[0];

	  assert(net_data = xornsch_get_net_data(rev, objects[1]));
	  assert(net_data->color == net1_color);
	  net1 = objects[1];

	  assert(text_data = xornsch_get_text_data(rev, objects[2]));
	  assert(text_data->color == text0_color);
	  text0 = objects[2];
	free(objects);

	assert(xorn_get_objects_attached_to(rev, net0, &objects, &count) == 0);
	assert(count == 0);
	free(objects);

	assert(xorn_get_objects_attached_to(rev, net1, &objects, &count) == 0);
	assert(objects != NULL);
	assert(count == 1);
	assert(text_data = xornsch_get_text_data(rev, objects[0]));
	assert(text_data->color == text1_color);
	text1 = objects[0];
	free(objects);

	assert(xorn_get_objects_attached_to(
		       rev, text0, &objects, &count) == 0);
	assert(count == 0);
	free(objects);

	assert(xorn_get_objects_attached_to(
		       rev, text1, &objects, &count) == 0);
	assert(count == 0);
	free(objects);

	assert(xorn_object_is_selected(rev, sel, net0) == true);
	assert(xorn_object_is_selected(rev, sel, net1) == true);
	assert(xorn_object_is_selected(rev, sel, text0) == true);
	assert(xorn_object_is_selected(rev, sel, text1) == false);
}
Пример #2
0
int main()
{
	xorn_revision_t rev0, rev1;
	xorn_object_t ob;

	memset(&text_data, 0, sizeof text_data);
	text_data.text.s = caption;
	text_data.text.len = strlen(caption) + 1;

	rev0 = xorn_new_revision(NULL);
	assert(rev0 != NULL);
	xorn_finalize_revision(rev0);

	rev1 = xorn_new_revision(rev0);
	assert(rev1 != NULL);
	ob = xornsch_add_text(rev1, &text_data);
	assert(ob != NULL);
	xorn_finalize_revision(rev1);

	const struct xornsch_text *text_return =
		xornsch_get_text_data(rev1, ob);
	assert(text_return != NULL);
	assert(text_return->text.s != NULL);
	assert(text_return->text.s != caption);
	assert(text_return->text.len == strlen(caption) + 1);
	assert(memcmp(text_return->text.s, caption,
		      text_return->text.len) == 0);

	xorn_free_revision(rev1);
	xorn_free_revision(rev0);
	return 0;
}
Пример #3
0
static PyObject *Revision_get_object_data(
	Revision *self, PyObject *args, PyObject *kwds)
{
	PyObject *ob_arg = NULL;
	static char *kwlist[] = { "ob", NULL };

	if (!PyArg_ParseTupleAndKeywords(
		    args, kwds, "O!:Revision.get_object_data", kwlist,
		    &ObjectType, &ob_arg))
		return NULL;

	xorn_object_t ob = ((Object *)ob_arg)->ob;
	xorn_obtype_t type = xorn_get_object_type(self->rev, ob);

	switch (type) {
	case xorn_obtype_none:
		PyErr_SetNone(PyExc_KeyError);
		return NULL;
	case xornsch_obtype_arc:
		return construct_arc(xornsch_get_arc_data(self->rev, ob));
	case xornsch_obtype_box:
		return construct_box(xornsch_get_box_data(self->rev, ob));
	case xornsch_obtype_circle:
		return construct_circle(
			xornsch_get_circle_data(self->rev, ob));
	case xornsch_obtype_component:
		return construct_component(
			xornsch_get_component_data(self->rev, ob));
	case xornsch_obtype_line:
		return construct_line(xornsch_get_line_data(self->rev, ob));
	case xornsch_obtype_net:
		return construct_net(xornsch_get_net_data(self->rev, ob));
	case xornsch_obtype_path:
		return construct_path(xornsch_get_path_data(self->rev, ob));
	case xornsch_obtype_picture:
		return construct_picture(
			xornsch_get_picture_data(self->rev, ob));
	case xornsch_obtype_text:
		return construct_text(xornsch_get_text_data(self->rev, ob));
	}

	char buf[BUFSIZ];
	snprintf(buf, BUFSIZ, "Object type not supported (%d)", type);
	PyErr_SetString(PyExc_ValueError, buf);
	return NULL;
}
Пример #4
0
static void assert_this_net_with_text(
	xorn_revision_t rev, xorn_object_t ob, int color, int text_color)
{
	xorn_object_t *objects;
	size_t count;

	assert(xorn_get_objects_attached_to(rev, NULL, &objects, &count) == 0);
	assert(objects != NULL);
	assert(count == 1);
	assert(objects[0] == ob);
	assert(xorn_get_object_type(rev, ob) == xornsch_obtype_net);
	assert(xornsch_get_net_data(rev, ob)->color == color);
	free(objects);

	assert(xorn_get_objects_attached_to(rev, ob, &objects, &count) == 0);
	assert(objects != NULL);
	assert(count == 1);
	assert(xorn_get_object_type(rev, objects[0]) == xornsch_obtype_text);
	assert(xornsch_get_text_data(rev, objects[0])->color == text_color);
	free(objects);
}