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; }
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); }
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; }
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; }
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; }