Example #1
0
int main(void)
{
	xorn_revision_t rev0, rev1, rev2, rev3;
	xorn_object_t ob0, ob1a, ob1b;

	xorn_selection_t sel0, sel1;
	xorn_revision_t rev4;

	xorn_object_t *objects;
	size_t count;

	setup(&rev0, &rev1, &rev2, &rev3, &ob0, &ob1a, &ob1b);

	rev4 = xorn_new_revision(rev2);
	assert(rev4 != NULL);

	sel0 = xorn_select_all(rev3);
	assert(sel0 != NULL);

	sel1 = xorn_copy_objects(rev4, rev2, sel0, NULL);
	assert(sel1 != NULL);

	xorn_finalize_revision(rev4);

	assert(xorn_object_is_selected(rev4, sel0, ob0));
	assert(!xorn_object_is_selected(rev4, sel0, ob1a));
	assert(xorn_object_is_selected(rev4, sel0, ob1b));

	assert(!xorn_object_is_selected(rev4, sel1, ob0));
	assert(!xorn_object_is_selected(rev4, sel1, ob1a));
	assert(!xorn_object_is_selected(rev4, sel1, ob1b));

	assert(xorn_get_objects(rev4, &objects, &count) == 0);
	assert(objects != NULL);
	assert(count == 5);

	assert(objects[0] == ob0);
	assert(objects[1] == ob1a);
	assert(objects[2] == ob1b);

	assert(!xorn_object_is_selected(rev4, sel0, objects[3]));
	assert(!xorn_object_is_selected(rev4, sel0, objects[4]));

	assert(xorn_object_is_selected(rev4, sel1, objects[3]));
	assert(xorn_object_is_selected(rev4, sel1, objects[4]));

	free(objects);

	xorn_free_selection(sel1);
	xorn_free_selection(sel0);

	xorn_free_revision(rev4);
	xorn_free_revision(rev3);
	xorn_free_revision(rev2);
	xorn_free_revision(rev1);
	xorn_free_revision(rev0);
	return 0;
}
Example #2
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);
}
Example #3
0
static PyObject *object_is_selected(
	PyObject *self, PyObject *args, PyObject *kwds)
{
	PyObject *rev_arg = NULL, *sel_arg = NULL, *ob_arg = NULL;
	static char *kwlist[] = { "rev", "sel", "ob", NULL };

	if (!PyArg_ParseTupleAndKeywords(
		    args, kwds, "O!O!O!:object_is_selected", kwlist,
		    &RevisionType, &rev_arg, &SelectionType, &sel_arg,
		    &ObjectType, &ob_arg))
		return NULL;

	PyObject *result = xorn_object_is_selected(
		((Revision *)rev_arg)->rev,
		((Selection *)sel_arg)->sel,
		((Object *)ob_arg)->ob) ? Py_True : Py_False;
	Py_INCREF(result);
	return result;
}
Example #4
0
int main(void)
{
	xorn_revision_t rev0, rev1, rev2, rev3;
	xorn_object_t ob0, ob1a, ob1b;

	xorn_selection_t sel;
	struct xorn_double2d pos;

	xorn_revision_t rev4;
	struct xornsch_text text_data;
	xorn_object_t text_ob;

	struct xornsch_line_attr line;
	struct xornsch_fill_attr fill;

	setup(&rev0, &rev1, &rev2, &rev3, &ob0, &ob1a, &ob1b);

	sel = xornsch_select_by_color(rev2, 3);
	assert(xorn_object_is_selected(rev2, sel, ob0) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == true);
	xorn_free_selection(sel);

	sel = xornsch_select_by_color(rev2, 4);
	assert(xorn_object_is_selected(rev2, sel, ob0) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == false);
	xorn_free_selection(sel);

	sel = xornsch_select_by_color(rev3, 3);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == true);
	xorn_free_selection(sel);

	sel = xornsch_select_by_color(rev3, 4);
	assert(xorn_object_is_selected(rev3, sel, ob0) == true);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	sel = xornsch_select_by_line_width(rev2, 0.);
	assert(xorn_object_is_selected(rev2, sel, ob0) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == false);
	xorn_free_selection(sel);

	sel = xornsch_select_by_line_width(rev2, 1.);
	assert(xorn_object_is_selected(rev2, sel, ob0) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == true);
	xorn_free_selection(sel);

	sel = xornsch_select_by_line_width(rev3, 0.);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	sel = xornsch_select_by_line_width(rev3, 1.);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == true);
	xorn_free_selection(sel);

	pos.x = 0.; pos.y = 1.;
	sel = xornsch_select_by_pos(rev3, &pos);
	assert(xorn_object_is_selected(rev3, sel, ob0) == true);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	pos.x = -1.; pos.y = -1.;
	sel = xornsch_select_by_pos(rev3, &pos);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == true);
	xorn_free_selection(sel);

	sel = xornsch_select_by_pos_x(rev3, 0.);
	assert(xorn_object_is_selected(rev3, sel, ob0) == true);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	sel = xornsch_select_by_pos_x(rev3, 1.);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	sel = xornsch_select_by_pos_y(rev3, 0.);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	sel = xornsch_select_by_pos_y(rev3, 1.);
	assert(xorn_object_is_selected(rev3, sel, ob0) == true);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	rev4 = xorn_new_revision(rev3);
	assert(rev4 != NULL);
	memset(&text_data, 0, sizeof text_data);
	text_data.text.s = "Hello world";
	text_data.text.len = 11;
	text_ob = xornsch_add_text(rev4, &text_data);
	assert(text_ob != NULL);
	xorn_finalize_revision(rev4);

	text_data.text.s = "";
	text_data.text.len = 0;
	sel = xornsch_select_by_text(rev4, &text_data.text);
	assert(xorn_object_is_selected(rev4, sel, ob0) == false);
	assert(xorn_object_is_selected(rev4, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev4, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev4, sel, text_ob) == false);
	xorn_free_selection(sel);

	text_data.text.s = "Hello world";
	text_data.text.len = 11;
	sel = xornsch_select_by_text(rev4, &text_data.text);
	assert(xorn_object_is_selected(rev4, sel, ob0) == false);
	assert(xorn_object_is_selected(rev4, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev4, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev4, sel, text_ob) == true);
	xorn_free_selection(sel);

	memset(&line, 0, sizeof line);
	sel = xornsch_select_by_line(rev2, &line);
	assert(xorn_object_is_selected(rev2, sel, ob0) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == false);
	xorn_free_selection(sel);
	sel = xornsch_select_by_line(rev3, &line);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	line.width = 1.;
	sel = xornsch_select_by_line(rev2, &line);
	assert(xorn_object_is_selected(rev2, sel, ob0) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == true);
	xorn_free_selection(sel);
	sel = xornsch_select_by_line(rev3, &line);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == true);
	xorn_free_selection(sel);

	memset(&fill, 0, sizeof fill);
	sel = xornsch_select_by_fill(rev2, &fill);
	assert(xorn_object_is_selected(rev2, sel, ob0) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == false);
	xorn_free_selection(sel);
	sel = xornsch_select_by_fill(rev3, &fill);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	fill.type = 1;
	sel = xornsch_select_by_fill(rev2, &fill);
	assert(xorn_object_is_selected(rev2, sel, ob0) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == true);
	xorn_free_selection(sel);
	sel = xornsch_select_by_fill(rev3, &fill);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == true);
	xorn_free_selection(sel);

	xorn_free_revision(rev4);
	xorn_free_revision(rev3);
	xorn_free_revision(rev2);
	xorn_free_revision(rev1);
	xorn_free_revision(rev0);
	return 0;
}
Example #5
0
int main(void)
{
	xorn_revision_t rev0, rev1, rev2, rev3;
	xorn_object_t ob0, ob1a, ob1b;

	xorn_selection_t sel;

	setup(&rev0, &rev1, &rev2, &rev3, &ob0, &ob1a, &ob1b);

	assert(sel = xorn_select_none());
	assert(xorn_object_is_selected(rev0, sel, ob0) == false);
	assert(xorn_object_is_selected(rev0, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev0, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev1, sel, ob0) == false);
	assert(xorn_object_is_selected(rev1, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev1, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev2, sel, ob0) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	assert(sel = xorn_select_object(ob1a));
	assert(xorn_object_is_selected(rev0, sel, ob0) == false);
	assert(xorn_object_is_selected(rev0, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev0, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev1, sel, ob0) == false);
	assert(xorn_object_is_selected(rev1, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev1, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev2, sel, ob0) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev3, sel, ob0) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == false);
	xorn_free_selection(sel);

	assert(sel = xorn_select_all(rev3));
	assert(xorn_object_is_selected(rev0, sel, ob0) == false);
	assert(xorn_object_is_selected(rev0, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev0, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev1, sel, ob0) == true);
	assert(xorn_object_is_selected(rev1, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev1, sel, ob1b) == false);
	assert(xorn_object_is_selected(rev2, sel, ob0) == true);
	assert(xorn_object_is_selected(rev2, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev2, sel, ob1b) == true);
	assert(xorn_object_is_selected(rev3, sel, ob0) == true);
	assert(xorn_object_is_selected(rev3, sel, ob1a) == false);
	assert(xorn_object_is_selected(rev3, sel, ob1b) == true);
	xorn_free_selection(sel);

	xorn_free_revision(rev3);
	xorn_free_revision(rev2);
	xorn_free_revision(rev1);
	xorn_free_revision(rev0);
	return 0;
}