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; }
int main(void) { xorn_revision_t rev; rev = xorn_new_revision(NULL); /** [discrete] */ xorn_object_t *objects; size_t count; unsigned int i; xorn_get_objects(rev, &objects, &count); for (i = 0; i < count; i++) { xorn_obtype_t type = xorn_get_object_type(rev, objects[i]); if (type == xornsch_obtype_circle && xornsch_get_circle_data(rev, objects[i])->radius == 0.) xorn_delete_object(rev, objects[i], NULL); if (type == xornsch_obtype_arc && xornsch_get_arc_data(rev, objects[i])->radius == 0.) xorn_delete_object(rev, objects[i], NULL); } free(objects); /** [discrete] */ /** [integrated] */ xorn_selection_t sel = xornsch_select_by_radius(rev, 0.); xorn_delete_selected_objects(rev, sel, NULL); xorn_free_selection(sel); /** [integrated] */ xorn_free_revision(rev); return 0; }