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 void assert_this_net(xorn_revision_t rev, xorn_object_t ob, int color) { xorn_object_t *objects; size_t count; assert(xorn_get_objects(rev, &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); }
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; }
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); }