Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}