cinap_lenrekadd hg and python4bb9e2215 years agoHistory
2139 lines · 49.2 KB · C
RawDownload
static PyMethodDef form_methods[] = {/* adm */	{"show_form",		(PyCFunction)form_show_form,     METH_OLDARGS},	{"hide_form",		(PyCFunction)form_hide_form,     METH_NOARGS},	{"redraw_form",		(PyCFunction)form_redraw_form,   METH_NOARGS},	{"set_form_position",	(PyCFunction)form_set_form_position, METH_OLDARGS},	{"set_form_size",	(PyCFunction)form_set_form_size, METH_OLDARGS},	{"scale_form",		(PyCFunction)form_scale_form,    METH_OLDARGS},	{"freeze_form",		(PyCFunction)form_freeze_form,   METH_NOARGS},	{"unfreeze_form",	(PyCFunction)form_unfreeze_form, METH_NOARGS},	{"activate_form",	(PyCFunction)form_activate_form, METH_NOARGS},	{"deactivate_form",	(PyCFunction)form_deactivate_form, METH_NOARGS},	{"bgn_group",		(PyCFunction)form_bgn_group,  METH_OLDARGS},	{"end_group",		(PyCFunction)form_end_group,  METH_OLDARGS},	{"find_first",		(PyCFunction)form_find_first, METH_OLDARGS},	{"find_last",		(PyCFunction)form_find_last,  METH_OLDARGS},	{"set_object_focus",	(PyCFunction)form_set_object_focus, METH_OLDARGS}, /* basic objects */	{"add_button",		(PyCFunction)form_add_button, METH_OLDARGS},/*	{"add_bitmap",		(method)form_add_bitmap, METH_OLDARGS}, */	{"add_lightbutton",	(PyCFunction)form_add_lightbutton, METH_OLDARGS},	{"add_roundbutton",	(PyCFunction)form_add_roundbutton, METH_OLDARGS},	{"add_menu",		(PyCFunction)form_add_menu,      METH_OLDARGS},	{"add_slider",		(PyCFunction)form_add_slider,    METH_OLDARGS},	{"add_positioner",	(PyCFunction)form_add_positioner, METH_OLDARGS},	{"add_valslider",	(PyCFunction)form_add_valslider, METH_OLDARGS},	{"add_dial",		(PyCFunction)form_add_dial,      METH_OLDARGS},	{"add_counter",		(PyCFunction)form_add_counter,   METH_OLDARGS},	{"add_box",		(PyCFunction)form_add_box,       METH_OLDARGS},	{"add_clock",		(PyCFunction)form_add_clock,     METH_OLDARGS},	{"add_choice",		(PyCFunction)form_add_choice,    METH_OLDARGS},	{"add_browser",		(PyCFunction)form_add_browser,   METH_OLDARGS},	{"add_input",		(PyCFunction)form_add_input,     METH_OLDARGS},	{"add_timer",		(PyCFunction)form_add_timer,     METH_OLDARGS},	{"add_text",		(PyCFunction)form_add_text,      METH_OLDARGS},	{NULL,			NULL}		/* sentinel */}; static voidform_dealloc(formobject *f){	releaseobjects(f->ob_form);	if (f->ob_form->visible)		fl_hide_form(f->ob_form);	fl_free_form(f->ob_form);	PyObject_Del(f);} #define OFF(x) offsetof(FL_FORM, x) static struct memberlist form_memberlist[] = {	{"window",	T_LONG,		OFF(window),	RO},	{"w",		T_FLOAT,	OFF(w)},	{"h",		T_FLOAT,	OFF(h)},	{"x",		T_FLOAT,	OFF(x),		RO},	{"y",		T_FLOAT,	OFF(y),		RO},	{"deactivated",	T_INT,		OFF(deactivated)},	{"visible",	T_INT,		OFF(visible),	RO},	{"frozen",	T_INT,		OFF(frozen),	RO},	{"doublebuf",	T_INT,		OFF(doublebuf)},	{NULL}	/* Sentinel */}; #undef OFF static PyObject *form_getattr(formobject *f, char *name){	PyObject *meth; 	meth = Py_FindMethod(form_methods, (PyObject *)f, name);	if (meth != NULL)		return meth;	PyErr_Clear();	return PyMember_Get((char *)f->ob_form, form_memberlist, name);} static intform_setattr(formobject *f, char *name, PyObject *v){	if (v == NULL) {		PyErr_SetString(PyExc_TypeError,				"can't delete form attributes");		return -1;	} 	return PyMember_Set((char *)f->ob_form, form_memberlist, name, v);} static PyObject *form_repr(formobject *f){	char buf[100];	PyOS_snprintf(buf, sizeof(buf), "<FORMS_form at %p, window=%ld>",		      f, f->ob_form->window);	return PyString_FromString(buf);} static PyTypeObject Formtype = {	PyObject_HEAD_INIT(&PyType_Type)	0,				/*ob_size*/	"fl.FORMS_form",		/*tp_name*/	sizeof(formobject),		/*tp_size*/	0,				/*tp_itemsize*/	/* methods */	(destructor)form_dealloc,	/*tp_dealloc*/	0,				/*tp_print*/	(getattrfunc)form_getattr,	/*tp_getattr*/	(setattrfunc)form_setattr,	/*tp_setattr*/	0,				/*tp_compare*/	(reprfunc)form_repr,		/*tp_repr*/}; static PyObject *newformobject(FL_FORM *form){	formobject *f;	f = PyObject_New(formobject, &Formtype);	if (f == NULL)		return NULL;	f->ob_form = form;	return (PyObject *)f;}  /* The "fl" module */ static PyObject *forms_make_form(PyObject *dummy, PyObject *args){	int type;	float w, h;	FL_FORM *form;	if (!PyArg_Parse(args, "(iff)", &type, &w, &h))		return NULL;	form = fl_bgn_form(type, w, h);	if (form == NULL) {		/* XXX Actually, cannot happen! */		PyErr_NoMemory();		return NULL;	}	fl_end_form();	return newformobject(form);} static PyObject *forms_activate_all_forms(PyObject *f, PyObject *args){	fl_activate_all_forms();	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_deactivate_all_forms(PyObject *f, PyObject *args){	fl_deactivate_all_forms();	Py_INCREF(Py_None);	return Py_None;} static PyObject *my_event_callback = NULL; static PyObject *forms_set_event_call_back(PyObject *dummy, PyObject *args){	if (args == Py_None)		args = NULL;	my_event_callback = args;	Py_XINCREF(args);	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_do_or_check_forms(PyObject *dummy, FL_OBJECT *(*func)(void)){	FL_OBJECT *generic;	genericobject *g;	PyObject *arg, *res; 	for (;;) {		Py_BEGIN_ALLOW_THREADS		generic = (*func)();		Py_END_ALLOW_THREADS		if (generic == NULL) {			Py_INCREF(Py_None);			return Py_None;		}		if (generic == FL_EVENT) {			int dev;			short val;			if (my_event_callback == NULL)				return PyInt_FromLong(-1L);			dev = fl_qread(&val);			arg = Py_BuildValue("(ih)", dev, val);			if (arg == NULL)				return NULL;			res = PyEval_CallObject(my_event_callback, arg);			Py_XDECREF(res);			Py_DECREF(arg);			if (res == NULL)				return NULL; /* Callback raised exception */			continue;		}		g = findgeneric(generic);		if (g == NULL) {			/* Object not known to us (some dialogs cause this) */			continue; /* Ignore it */		}		if (g->ob_callback == NULL) {			Py_INCREF(g);			return ((PyObject *) g);		}		arg = PyTuple_Pack(2, (PyObject *)g, g->ob_callback_arg);		if (arg == NULL)			return NULL;		res = PyEval_CallObject(g->ob_callback, arg);		Py_XDECREF(res);		Py_DECREF(arg);		if (res == NULL)			return NULL; /* Callback raised exception */	}} static PyObject *forms_do_forms(PyObject *dummy){	return forms_do_or_check_forms(dummy, fl_do_forms);} static PyObject *forms_check_forms(PyObject *dummy){	return forms_do_or_check_forms(dummy, fl_check_forms);} static PyObject *forms_do_only_forms(PyObject *dummy){	return forms_do_or_check_forms(dummy, fl_do_only_forms);} static PyObject *forms_check_only_forms(PyObject *dummy){	return forms_do_or_check_forms(dummy, fl_check_only_forms);} #ifdef UNUSEDstatic PyObject *fl_call(void (*func)(void)){	(*func)();	Py_INCREF(Py_None);	return Py_None;}#endif static PyObject *forms_set_graphics_mode(PyObject *dummy, PyObject *args){	int rgbmode, doublebuf; 	if (!PyArg_Parse(args, "(ii)", &rgbmode, &doublebuf))		return NULL;	fl_set_graphics_mode(rgbmode,doublebuf);	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_get_rgbmode(PyObject *dummy, PyObject *args){	extern int fl_rgbmode; 	if (args != NULL) {		PyErr_BadArgument();		return NULL;	}	return PyInt_FromLong((long)fl_rgbmode);} static PyObject *forms_show_errors(PyObject *dummy, PyObject *args){	int show;	if (!PyArg_Parse(args, "i", &show))		return NULL;	fl_show_errors(show);	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_set_font_name(PyObject *dummy, PyObject *args){	int numb;	char *name;	if (!PyArg_Parse(args, "(is)", &numb, &name))		return NULL;	fl_set_font_name(numb, name);	Py_INCREF(Py_None);	return Py_None;}  static PyObject *forms_qdevice(PyObject *self, PyObject *args){	short arg1;	if (!PyArg_Parse(args, "h", &arg1))		return NULL;	fl_qdevice(arg1);	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_unqdevice(PyObject *self, PyObject *args){	short arg1;	if (!PyArg_Parse(args, "h", &arg1))		return NULL;	fl_unqdevice(arg1);	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_isqueued(PyObject *self, PyObject *args){	long retval;	short arg1;	if (!PyArg_Parse(args, "h", &arg1))		return NULL;	retval = fl_isqueued(arg1); 	return PyInt_FromLong(retval);} static PyObject *forms_qtest(PyObject *self, PyObject *args){	long retval;	retval = fl_qtest();	return PyInt_FromLong(retval);}  static PyObject *forms_qread(PyObject *self, PyObject *args){	int dev;	short val;	Py_BEGIN_ALLOW_THREADS	dev = fl_qread(&val);	Py_END_ALLOW_THREADS	return Py_BuildValue("(ih)", dev, val);} static PyObject *forms_qreset(PyObject *self){	fl_qreset();	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_qenter(PyObject *self, PyObject *args){	short arg1, arg2;	if (!PyArg_Parse(args, "(hh)", &arg1, &arg2))		return NULL;	fl_qenter(arg1, arg2);	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_color(PyObject *self, PyObject *args){	int arg; 	if (!PyArg_Parse(args, "i", &arg)) return NULL; 	fl_color((short) arg); 	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_mapcolor(PyObject *self, PyObject *args){	int arg0, arg1, arg2, arg3; 	if (!PyArg_Parse(args, "(iiii)", &arg0, &arg1, &arg2, &arg3))		return NULL; 	fl_mapcolor(arg0, (short) arg1, (short) arg2, (short) arg3); 	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_getmcolor(PyObject *self, PyObject *args){	int arg;	short r, g, b; 	if (!PyArg_Parse(args, "i", &arg)) return NULL; 	fl_getmcolor(arg, &r, &g, &b); 	return Py_BuildValue("(hhh)", r, g, b);} static PyObject *forms_get_mouse(PyObject *self){	float x, y; 	fl_get_mouse(&x, &y); 	return Py_BuildValue("(ff)", x, y);} static PyObject *forms_tie(PyObject *self, PyObject *args){	short arg1, arg2, arg3;	if (!PyArg_Parse(args, "(hhh)", &arg1, &arg2, &arg3))		return NULL;	fl_tie(arg1, arg2, arg3);	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_show_message(PyObject *f, PyObject *args){	char *a, *b, *c; 	if (!PyArg_Parse(args, "(sss)", &a, &b, &c)) return NULL; 	Py_BEGIN_ALLOW_THREADS	fl_show_message(a, b, c);	Py_END_ALLOW_THREADS 	Py_INCREF(Py_None);	return Py_None;} static PyObject *forms_show_choice(PyObject *f, PyObject *args){	char *m1, *m2, *m3, *b1, *b2, *b3;	int nb;	char *format;	long rv; 	if (args == NULL || !PyTuple_Check(args)) {		PyErr_BadArgument();		return NULL;	}	nb = PyTuple_Size(args) - 3;	if (nb <= 0) {		PyErr_SetString(PyExc_TypeError,				"need at least one button label");		return NULL;	}	if (PyInt_Check(PyTuple_GetItem(args, 3))) {		PyErr_SetString(PyExc_TypeError,			   "'number-of-buttons' argument not needed");		return NULL;	}	switch (nb) {	case 1: format = "(ssss)"; break;	case 2: format = "(sssss)"; break;	case 3: format = "(ssssss)"; break;	default:		PyErr_SetString(PyExc_TypeError, "too many button labels");		return NULL;	} 	if (!PyArg_Parse(args, format, &m1, &m2, &m3, &b1, &b2, &b3))		return NULL; 	Py_BEGIN_ALLOW_THREADS	rv = fl_show_choice(m1, m2, m3, nb, b1, b2, b3);	Py_END_ALLOW_THREADS	return PyInt_FromLong(rv);} static PyObject *forms_show_question(PyObject *f, PyObject *args)

Lines 1501–2000 of 2139. Previous lines