static void check_attach(void) { xorn_revision_t rev; xorn_object_t N, a, b; struct xornsch_net net_data; struct xornsch_text text_data; assert(rev = xorn_new_revision(NULL)); memset(&net_data, 0, sizeof net_data); assert(N = xornsch_add_net(rev, &net_data)); memset(&text_data, 0, sizeof text_data); assert(a = xornsch_add_text(rev, &text_data)); assert(b = xornsch_add_text(rev, &text_data)); assert_object_location(rev, N, _, 0); assert_object_location(rev, a, _, 1); assert_object_location(rev, b, _, 2); assert(xorn_relocate_object(rev, a, N, _) == 0); assert_object_location(rev, N, _, 0); assert_object_location(rev, a, N, 0); assert_object_location(rev, b, _, 1); assert(xorn_relocate_object(rev, b, N, _) == 0); assert_object_location(rev, N, _, 0); assert_object_location(rev, a, N, 0); assert_object_location(rev, b, N, 1); assert(xorn_relocate_object(rev, b, N, a) == 0); assert_object_location(rev, N, _, 0); assert_object_location(rev, a, N, 1); assert_object_location(rev, b, N, 0); assert(xorn_relocate_object(rev, a, _, N) == 0); assert_object_location(rev, N, _, 1); assert_object_location(rev, a, _, 0); assert_object_location(rev, b, N, 0); xorn_free_revision(rev); }
int main(void) { xorn_revision_t rev; struct xornsch_net net_data; struct xornsch_text text_data; xorn_object_t N, a, b; xorn_revision_t rev1; struct xornsch_line line_data; struct xornsch_component component_data; assert(rev = xorn_new_revision(NULL)); memset(&net_data, 0, sizeof net_data); assert(N = xornsch_add_net(rev, &net_data)); memset(&text_data, 0, sizeof text_data); assert(a = xornsch_add_text(rev, &text_data)); assert(b = xornsch_add_text(rev, &text_data)); common_checks(rev, N, a, b, N, a, b); /* can move objects */ do_it(rev, N, _, _, 0, a, b, N, &check2, N, a, b); do_it(rev, N, _, a, 0, N, a, b, &check0, N, a, b); do_it(rev, N, _, b, 0, a, N, b, &check1, N, a, b); do_it(rev, a, _, _, 0, N, b, a, &check0, N, b, a); do_it(rev, a, _, N, 0, a, N, b, &check1, N, a, b); do_it(rev, a, _, b, 0, N, a, b, &check0, N, a, b); do_it(rev, b, _, N, 0, b, N, a, &check1, N, b, a); do_it(rev, b, _, a, 0, N, b, a, &check0, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check0, N, a, b); /* can embed a to N, but not before b */ do_it(rev, a, N, _, 0, N, a, b, &check3, N, a, b); do_it(rev, a, N, b, -1, N, a, b, &check3, N, a, b); do_it(rev, b, _, N, 0, b, N, a, &check4, N, b, a); do_it(rev, b, _, a, -1, b, N, a, &check4, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check3, N, a, b); do_it(rev, a, _, b, 0, N, a, b, &check0, N, a, b); /* can embed b to N, but not before a */ do_it(rev, b, N, _, 0, N, b, a, &check3, N, b, a); do_it(rev, b, N, a, -1, N, b, a, &check3, N, b, a); do_it(rev, a, _, N, 0, a, N, b, &check4, N, a, b); do_it(rev, a, _, b, -1, a, N, b, &check4, N, a, b); do_it(rev, a, _, _, 0, N, b, a, &check3, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check0, N, a, b); /* can embed both */ do_it(rev, a, N, _, 0, N, a, b, &check3, N, a, b); do_it(rev, b, N, _, 0, N, a, b, &check5, N, a, b); do_it(rev, a, N, _, 0, N, b, a, &check5, N, b, a); do_it(rev, a, N, b, 0, N, a, b, &check5, N, a, b); do_it(rev, b, N, a, 0, N, b, a, &check5, N, b, a); do_it(rev, b, N, _, 0, N, a, b, &check5, N, a, b); do_it(rev, a, _, _, 0, N, b, a, &check3, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check0, N, a, b); xorn_finalize_revision(rev); common_checks(rev, N, a, b, N, a, b); check(rev, N, _, _, -1, N, a, b); check(rev, N, _, a, -1, N, a, b); check(rev, N, _, b, -1, N, a, b); check(rev, a, _, _, -1, N, a, b); check(rev, a, _, N, -1, N, a, b); check(rev, a, _, b, -1, N, a, b); check(rev, a, N, _, -1, N, a, b); check(rev, b, _, _, -1, N, a, b); check(rev, b, _, N, -1, N, a, b); check(rev, b, _, a, -1, N, a, b); check(rev, b, N, _, -1, N, a, b); assert(rev1 = xorn_new_revision(rev)); /* can't attach text to line */ memset(&line_data, 0, sizeof line_data); assert(xornsch_set_line_data(rev1, N, &line_data) == 0); do_it(rev1, a, N, _, -1, N, a, b, &check0, N, a, b); /* can attach text to component */ memset(&component_data, 0, sizeof component_data); assert(xornsch_set_component_data(rev1, N, &component_data) == 0); do_it(rev1, a, N, _, 0, N, a, b, &check3, N, a, b); xorn_free_revision(rev1); xorn_free_revision(rev); return 0; }
int main() { xorn_revision_t rev; struct xornsch_net net_data; struct xornsch_text text_data; xorn_object_t N, a, b; assert(rev = xorn_new_revision(NULL)); memset(&net_data, 0, sizeof net_data); assert(N = xornsch_add_net(rev, &net_data)); memset(&text_data, 0, sizeof text_data); assert(a = xornsch_add_text(rev, &text_data)); assert(b = xornsch_add_text(rev, &text_data)); assert_attached_objects_3(rev, _, N, a, b); assert_attached_objects_0(rev, N); assert_attached_objects_0(rev, a); assert_attached_objects_0(rev, b); assert(xorn_relocate_object(rev, N, _, _) == 0); assert_attached_objects_3(rev, _, a, b, N); assert_attached_objects_0(rev, N); assert_attached_objects_0(rev, a); assert_attached_objects_0(rev, b); assert(xorn_relocate_object(rev, N, _, b) == 0); assert_attached_objects_3(rev, _, a, N, b); assert_attached_objects_0(rev, N); assert_attached_objects_0(rev, a); assert_attached_objects_0(rev, b); assert(xorn_relocate_object(rev, a, N, _) == 0); assert_attached_objects_2(rev, _, N, b); assert_attached_objects_1(rev, N, a); assert_attached_objects_0(rev, a); assert_attached_objects_0(rev, b); assert(xorn_relocate_object(rev, b, N, _) == 0); assert_attached_objects_1(rev, _, N); assert_attached_objects_2(rev, N, a, b); assert_attached_objects_0(rev, a); assert_attached_objects_0(rev, b); assert(xorn_relocate_object(rev, a, N, _) == 0); assert_attached_objects_1(rev, _, N); assert_attached_objects_2(rev, N, b, a); assert_attached_objects_0(rev, a); assert_attached_objects_0(rev, b); assert(xorn_relocate_object(rev, a, N, b) == 0); assert_attached_objects_1(rev, _, N); assert_attached_objects_2(rev, N, a, b); assert_attached_objects_0(rev, a); assert_attached_objects_0(rev, b); xorn_delete_object(rev, b); assert_attached_objects_1(rev, _, N); assert_attached_objects_1(rev, N, a); assert_attached_objects_0(rev, a); assert_attached_objects_f(rev, b); xorn_delete_object(rev, N); assert_attached_objects_0(rev, _); assert_attached_objects_f(rev, N); assert_attached_objects_f(rev, a); assert_attached_objects_f(rev, b); xorn_free_revision(rev); return 0; }
int main(void) { xorn_revision_t src, dest; struct xornsch_net net_data; struct xornsch_text text_data; xorn_object_t net0, net1, text0, text1, copy; xorn_selection_t sel, copies; assert(src = xorn_new_revision(NULL)); memset(&net_data, 0, sizeof net_data); net_data.color = 1; assert(net0 = xornsch_add_net(src, &net_data, NULL)); net_data.color = 2; assert(net1 = xornsch_add_net(src, &net_data, NULL)); memset(&text_data, 0, sizeof text_data); text_data.color = 3; assert(text0 = xornsch_add_text(src, &text_data, NULL)); text_data.color = 4; assert(text1 = xornsch_add_text(src, &text_data, NULL)); assert(xorn_relocate_object(src, text1, net1, NULL, NULL) == 0); xorn_finalize_revision(src); /* text1 is attached to net1, text0 is not attached */ assert(dest = xorn_new_revision(NULL)); assert(copy = xorn_copy_object(dest, src, net0, NULL)); assert_this_net(dest, copy, 1); xorn_free_revision(dest); assert(dest = xorn_new_revision(NULL)); assert(copy = xorn_copy_object(dest, src, net1, NULL)); assert_this_net_with_text(dest, copy, 2, 4); xorn_free_revision(dest); assert(dest = xorn_new_revision(NULL)); assert(sel = xorn_select_object(net0)); assert(copies = xorn_copy_objects(dest, src, sel, NULL)); assert_this_net(dest, get_only_selected_object(dest, copies), 1); xorn_free_selection(copies); xorn_free_selection(sel); xorn_free_revision(dest); assert(dest = xorn_new_revision(NULL)); assert(sel = xorn_select_object(net1)); assert(copies = xorn_copy_objects(dest, src, sel, NULL)); assert_this_net_with_text( dest, get_only_selected_object(dest, copies), 2, 4); xorn_free_selection(copies); xorn_free_selection(sel); xorn_free_revision(dest); assert(dest = xorn_new_revision(NULL)); assert(sel = xorn_select_attached_to(src, NULL)); assert(copies = xorn_copy_objects(dest, src, sel, NULL)); assert_four(dest, copies, 1, 2, 3, 4); xorn_free_selection(copies); xorn_free_selection(sel); xorn_free_revision(dest); xorn_free_revision(src); return 0; }
int main(void) { xorn_revision_t rev; rev = xorn_new_revision(NULL); { /** [add object] */ struct xornsch_line line_data; memset(&line_data, 0, sizeof line_data); line_data.pos.x = 0; line_data.pos.y = 0; line_data.size.x = 100; line_data.size.y = 100; line_data.line.width = 1; xorn_object_t ob; ob = xorn_add_object(rev, xornsch_obtype_line, &line_data); if (ob == NULL) /* handle error */; /** [add object] */ /** [get object data] */ const struct xornsch_line *data; data = xorn_get_object_data(rev, ob, xornsch_obtype_line); if (data == NULL) /* ob doesn't exist or isn't a line */; /** [get object data] */ } { struct xornsch_net net_data; xorn_object_t ob; memset(&net_data, 0, sizeof net_data); ob = xornsch_add_net(rev, &net_data); /** [set object data] */ struct xornsch_line line_data; memset(&line_data, 0, sizeof line_data); line_data.pos.x = 0; line_data.pos.y = 0; line_data.size.x = 100; line_data.size.y = 100; line_data.line.width = 1; if (xorn_set_object_data(rev, ob, xornsch_obtype_line, &line_data) == -1) /* handle error */; /** [set object data] */ } { /** [get objects] */ xorn_object_t *objects; size_t count; unsigned int i; if (xorn_get_objects(rev, &objects, &count) == -1) /* handle error */; for (i = 0; i < count; i++) /* do something with objects[i] */; free(objects); /** [get objects] */ } { struct xornsch_component component_data; xorn_object_t component; memset(&component_data, 0, sizeof component_data); component = xornsch_add_component(rev, &component_data); /** [add attribute] */ struct xornsch_text text_data; memset(&text_data, 0, sizeof text_data); text_data.text.s = "refdes=R1"; text_data.text.len = strlen(text_data.text.s); xorn_object_t ob; ob = xornsch_add_text(rev, &text_data); if (ob == NULL) /* handle error */; if (xorn_relocate_object(rev, ob, component, NULL) == -1) /* handle error */; /** [add attribute] */ } xorn_free_revision(rev); return 0; }