diff options
author | James Henstridge <james@daa.com.au> | 2001-06-25 03:27:27 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-06-25 03:27:27 +0000 |
commit | 322d0c69786b16b7148916c73a524e420037da7b (patch) | |
tree | a5a4db36c13ccb07cf52391de326c9cdba356f88 /gtk | |
parent | 4d34966a127252e4f5665b665776dc8e360e6344 (diff) | |
download | pygtk-322d0c69786b16b7148916c73a524e420037da7b.tar.gz |
remove dead code for GtkArg handling, etc. (also tidied up references to
2001-06-25 James Henstridge <james@daa.com.au>
* gtk/gtkobject-support.c: remove dead code for GtkArg handling,
etc. (also tidied up references to it in other files).
2001-06-24 James Henstridge <james@daa.com.au>
* gtk/gtk-types.c: removed all traces of GdkFont.
* gtk/gdk.defs (Font): add boxed type for font.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/__init__.py | 2 | ||||
-rw-r--r-- | gtk/gdk.defs | 27 | ||||
-rw-r--r-- | gtk/gtk-types.c | 138 | ||||
-rw-r--r-- | gtk/gtk.defs | 21 | ||||
-rw-r--r-- | gtk/gtk.override | 94 | ||||
-rw-r--r-- | gtk/gtkmodule.c | 15 | ||||
-rw-r--r-- | gtk/gtkobject-support.c | 693 | ||||
-rw-r--r-- | gtk/pygtk-private.h | 6 | ||||
-rw-r--r-- | gtk/pygtk.h | 32 |
9 files changed, 73 insertions, 955 deletions
diff --git a/gtk/__init__.py b/gtk/__init__.py index 995b7cfd..55a178f2 100644 --- a/gtk/__init__.py +++ b/gtk/__init__.py @@ -25,7 +25,7 @@ def mainquit(*args): main_quit() mainiteration = main_iteration -load_font = font_load +load_font = GdkFont load_fontset = fontset_load create_pixmap = GtkPixmap create_pixmap_from_xpm = pixmap_create_from_xpm diff --git a/gtk/gdk.defs b/gtk/gdk.defs index 353d15e7..cbf29ffc 100644 --- a/gtk/gdk.defs +++ b/gtk/gdk.defs @@ -94,6 +94,16 @@ (field (type-and-name gint blue_prec)) ) +(boxed Font + (in-module Gdk) + (c-name GdkFont) + (copy-func gdk_font_ref) + (release-func gdk_font_unref) + (field (type-and-name GdkFontType type)) + (field (type-and-name gint ascent)) + (field (type-and-name gint descent)) +) + ;; Enumerations and flags ... @@ -798,13 +808,13 @@ ;; From /opt/pango/include/gtk-2.0/gdk/gdkcursor.h -(function gdk_cursor_new +(function cursor_new (c-name gdk_cursor_new) (return-type GdkCursor*) (parameter (type-and-name GdkCursorType cursor_type)) ) -(function gdk_cursor_new_from_pixmap +(function cursor_new_from_pixmap (c-name gdk_cursor_new_from_pixmap) (return-type GdkCursor*) (parameter (type-and-name GdkPixmap* source)) @@ -1198,6 +1208,7 @@ ;; From /opt/pango/include/gtk-2.0/gdk/gdkfont.h (function font_load + (is-constructor-of GdkFont) (c-name gdk_font_load) (return-type GdkFont*) (parameter (type-and-name const-gchar* font_name)) @@ -1233,7 +1244,7 @@ (c-name gdk_text_width) (return-type gint) (parameter (type-and-name const-gchar* text)) - (parameter (type-and-name gint text_length)) + (parameter (type-and-name gint text_length) (default "-1")) ) (method text_width_wc @@ -1270,7 +1281,7 @@ (c-name gdk_text_measure) (return-type gint) (parameter (type-and-name const-gchar* text)) - (parameter (type-and-name gint text_length)) + (parameter (type-and-name gint text_length) (default "-1")) ) (method char_measure @@ -1292,7 +1303,7 @@ (c-name gdk_text_height) (return-type gint) (parameter (type-and-name const-gchar* text)) - (parameter (type-and-name gint text_length)) + (parameter (type-and-name gint text_length) (default "-1")) ) (method char_height @@ -1340,12 +1351,6 @@ (parameter (type-and-name gint* descent)) ) -(method full_name_get - (of-object Font (Gdk)) - (c-name gdk_font_full_name_get) - (return-type gchar*) -) - ;; From /opt/pango/include/gtk-2.0/gdk/gdkgc.h diff --git a/gtk/gtk-types.c b/gtk/gtk-types.c index 65bc2d99..146ac217 100644 --- a/gtk/gtk-types.c +++ b/gtk/gtk-types.c @@ -29,19 +29,6 @@ PyGtkStyle_New(GtkStyle *obj) #endif PyObject * -PyGdkFont_New(GdkFont *obj) -{ - PyGdkFont_Object *self; - - self = (PyGdkFont_Object *)PyObject_NEW(PyGdkFont_Object, &PyGdkFont_Type); - if (self == NULL) - return NULL; - self->obj = obj; - gdk_font_ref(self->obj); - return (PyObject *)self; -} - -PyObject * PyGdkColor_New(GdkColor *obj) { PyGdkColor_Object *self; @@ -550,116 +537,6 @@ PyTypeObject PyGtkStyle_Type = { #endif static void -pygdk_font_dealloc(PyGdkFont_Object *self) -{ - gdk_font_unref(self->obj); - PyMem_DEL(self); -} - -static PyObject * -pygdk_font_width(PyGdkFont_Object *self, PyObject *args) -{ - char *text; - int length; - - if (!PyArg_ParseTuple(args, "s#:GdkFont.width", &text, &length)) - return NULL; - return PyInt_FromLong(gdk_text_width(self->obj, text, length)); -} - -static PyObject * -pygdk_font_measure(PyGdkFont_Object *self, PyObject *args) -{ - char *text; - int length; - - if (!PyArg_ParseTuple(args, "s#:GdkFont.measure", &text, &length)) - return NULL; - return PyInt_FromLong(gdk_text_measure(self->obj, text, length)); -} - -static PyObject * -pygdk_font_height(PyGdkFont_Object *self, PyObject *args) -{ - char *text; - int length; - - if (!PyArg_ParseTuple(args, "s#:GdkFont.height", &text, &length)) - return NULL; - return PyInt_FromLong(gdk_text_height(self->obj, text, length)); -} - -static PyObject * -pygdk_font_extents(PyGdkFont_Object *self, PyObject *args) -{ - char *text; - int length, lbearing, rbearing, width, ascent, descent; - if (!PyArg_ParseTuple(args, "s#:GdkFont.extents", &text, &length)) - return NULL; - gdk_text_extents(self->obj, text, length, &lbearing, &rbearing, - &width, &ascent, &descent); - return Py_BuildValue("(iiiii)", lbearing, rbearing, width, ascent, descent); -} - -static PyMethodDef PyGdkFont_methods[] = { - {"width", (PyCFunction)pygdk_font_width, METH_VARARGS, NULL}, - {"measure", (PyCFunction)pygdk_font_measure, METH_VARARGS, NULL}, - {"height", (PyCFunction)pygdk_font_height, METH_VARARGS, NULL}, - {"extents", (PyCFunction)pygdk_font_extents, METH_VARARGS, NULL}, - {NULL, 0, 0, NULL} -}; - -static PyObject * -pygdk_font_getattr(PyGdkFont_Object *self, char *key) -{ - if (!strcmp(key, "__members__")) - return Py_BuildValue("[sss]", "ascent", "descent", "type"); - if (!strcmp(key, "ascent")) - return PyInt_FromLong(self->obj->ascent); - if (!strcmp(key, "descent")) - return PyInt_FromLong(self->obj->descent); - if (!strcmp(key, "type")) - return PyInt_FromLong(self->obj->type); - return Py_FindMethod(PyGdkFont_methods, (PyObject *)self, key); -} - -static int -pygdk_font_compare(PyGdkFont_Object *self, PyGdkFont_Object *v) -{ - if (self->obj == v->obj) return 0; - if (self->obj > v->obj) return -1; - return 1; -} - -static long -pygdk_font_hash(PyGdkFont_Object *self) -{ - return (long)self->obj; -} - -PyTypeObject PyGdkFont_Type = { - PyObject_HEAD_INIT(NULL) - 0, - "GdkFont", - sizeof(PyGdkFont_Object), - 0, - (destructor)pygdk_font_dealloc, - (printfunc)0, - (getattrfunc)pygdk_font_getattr, - (setattrfunc)0, - (cmpfunc)pygdk_font_compare, - (reprfunc)0, - 0, - 0, - 0, - (hashfunc)pygdk_font_hash, - (ternaryfunc)0, - (reprfunc)0, - 0L,0L,0L,0L, - NULL -}; - -static void pygdk_color_dealloc(PyGdkColor_Object *self) { PyMem_DEL(self); @@ -3450,20 +3327,6 @@ pygtk_tree_path_from_pyobject(PyObject *object) /* marshalers for the boxed types. Uses uppercase notation so that * the macro below can automatically install them. */ static PyObject * -PyGdkFont_from_value(const GValue *value) -{ - return PyGdkFont_New(g_value_get_boxed(value)); -} -static int -PyGdkFont_to_value(GValue *value, PyObject *object) -{ - if (PyGdkFont_Check(object)) { - g_value_set_boxed(value, PyGdkFont_Get(object)); - return 0; - } - return -1; -} -static PyObject * PyGdkColor_from_value(const GValue *value) { return PyGdkColor_New(g_value_get_boxed(value)); @@ -3570,7 +3433,6 @@ _pygtk_register_boxed_types(PyObject *moddict) register_tp(GtkStyle); PyGtkStyleHelper_Type.ob_type = &PyType_Type; #endif - register_tp2(GdkFont, GDK_TYPE_FONT); register_tp2(GdkColor, GDK_TYPE_COLOR); register_tp2(GdkEvent, GDK_TYPE_EVENT); #if 0 diff --git a/gtk/gtk.defs b/gtk/gtk.defs index 5035787e..efd65388 100644 --- a/gtk/gtk.defs +++ b/gtk/gtk.defs @@ -8286,11 +8286,6 @@ ;; From /opt/pango/include/gtk-2.0/gtk/gtkrc.h -(function rc_init - (c-name gtk_rc_init) - (return-type none) -) - (function rc_add_default_file (c-name gtk_rc_add_default_file) (return-type none) @@ -8387,14 +8382,6 @@ (parameter (type-and-name GtkImageLoader loader)) ) -(function rc_load_image - (c-name gtk_rc_load_image) - (return-type GdkPixmap*) - (parameter (type-and-name GdkColormap* colormap)) - (parameter (type-and-name GdkColor* transparent_color)) - (parameter (type-and-name const-gchar* filename)) -) - (function rc_find_pixmap_in_path (c-name gtk_rc_find_pixmap_in_path) (return-type gchar*) @@ -11201,14 +11188,6 @@ (parameter (type-and-name gint size)) ) -(method set_text_window_size - (of-object TextView (Gtk)) - (c-name gtk_text_view_set_text_window_size) - (return-type none) - (parameter (type-and-name gint width)) - (parameter (type-and-name gint height)) -) - (method forward_display_line (of-object TextView (Gtk)) (c-name gtk_text_view_forward_display_line) diff --git a/gtk/gtk.override b/gtk/gtk.override index 821a48f2..a5828b15 100644 --- a/gtk/gtk.override +++ b/gtk/gtk.override @@ -88,15 +88,19 @@ _wrap_gdk_draw_text(PyGObject *self, PyObject *args, PyObject *kwargs) int x, y, len; char *text; if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "O!Oiis#:GdkDrawable.draw_text", - kwlist, &PyGdkFont_Type, &font, + "OOiis#:GdkDrawable.draw_text", + kwlist, &font, &gc, &x, &y, &text, &len)) return NULL; + if (!pyg_boxed_check(font, GDK_TYPE_FONT)) { + PyErr_SetString(PyExc_TypeError, "font must be a GdkFont"); + return NULL; + } if (!pygobject_check(gc, &PyGdkGC_Type)) { PyErr_SetString(PyExc_TypeError, "gc must be a GdkGC"); return NULL; } - gdk_draw_text(GDK_DRAWABLE(self->obj), PyGdkFont_Get(font), + gdk_draw_text(GDK_DRAWABLE(self->obj), pyg_boxed_get(font, GdkFont), GDK_GC(gc->obj), x, y, text, len); Py_INCREF(Py_None); return Py_None; @@ -230,18 +234,38 @@ ignore gdk_color_hash gdk_color_equal gdk_color_parse %% -override gdk_font_full_name_get -_wrap_gdk_font_full_name_get(PyGObject *self, PyObject *args) +override gdk_fontset_load kwargs +static PyObject * +_wrap_gdk_fontset_load(PyObject *self, PyObject *args, PyObject *kwargs) { - gchar *name; - PyObject *ret; + static char *kwlist[] = { "fontset_name", NULL }; + char *fontset_name; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:fontset_load", kwlist, + &fontset_name)) + return NULL; - if (!PyArg_ParseTuple(args, ":GdkFont.full_name_get")) + /* pyg_boxed_new handles NULL checking */ + return pyg_boxed_new(GDK_TYPE_FONT, gdk_fontset_load(fontset_name), + FALSE, TRUE); +} +%% +override gdk_text_extents kwargs +static PyObject * +_wrap_gdk_text_extents(PyObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "text", NULL }; + gchar *text; + gint length; + gint lbearing, rbearing, width, ascent, descent; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#:GdkFont.extents", + kwlist, &text, &length)) return NULL; - name = gdk_font_full_name_get(GDK_FONT(self->obj)); - ret = PyString_FromString(name); - gdk_font_full_name_free(name); - return ret; + gdk_text_extents(pyg_boxed_get(self, GdkFont), text, length, + &lbearing, &rbearing, &width, &ascent, &descent); + return Py_BuildValue("(iiiii)", lbearing, rbearing, width, + ascent, descent); } %% override gdk_pixmap_create_from_xpm kwargs @@ -1173,9 +1197,9 @@ _wrap_gdk_gc_new_with_values(PyGObject *self, PyObject *args, PyObject *kwargs) PyErr_SetString(PyExc_TypeError, "background must be a GdkColor"); return NULL; } - if (PyGdkFont_Check(font)) { + if (pyg_boxed_check(font, GDK_TYPE_FONT)) { mask |= GDK_GC_FONT; - values.font = PyGdkFont_Get(font); + values.font = pyg_boxed_get(font, GdkFont); } else if (font != Py_None) { PyErr_SetString(PyExc_TypeError, "font must be a GdkFont"); return NULL; @@ -3190,10 +3214,9 @@ _wrap_gtk_toolbar_append_item(PyGObject *self, PyObject *args, ret = gtk_toolbar_append_item(GTK_TOOLBAR(self->obj), text, tooltip_text, tooltip_private_text, icon, NULL, NULL); if (ret && PyCallable_Check(callback)) { - param = Py_BuildValue("(OO)", callback, param); - gtk_signal_connect_full(GTK_OBJECT(ret), "clicked", NULL, - (GtkCallbackMarshal)pygtk_callback_marshal, - param, pygtk_destroy_notify, FALSE, FALSE); + g_signal_connect_closure(ret, "clicked", + pyg_closure_new(callback, param, NULL), + FALSE); } return pygobject_new((GObject *)ret); } @@ -3226,10 +3249,9 @@ _wrap_gtk_toolbar_prepend_item(PyGObject *self, PyObject *args, ret = gtk_toolbar_prepend_item(GTK_TOOLBAR(self->obj), text, tooltip_text, tooltip_private_text, icon, NULL, NULL); if (ret && PyCallable_Check(callback)) { - param = Py_BuildValue("(OO)", callback, param); - gtk_signal_connect_full(GTK_OBJECT(ret), "clicked", NULL, - (GtkCallbackMarshal)pygtk_callback_marshal, - param, pygtk_destroy_notify, FALSE, FALSE); + g_signal_connect_closure(ret, "clicked", + pyg_closure_new(callback, param, NULL), + FALSE); } return pygobject_new((GObject *)ret); } @@ -3265,10 +3287,9 @@ _wrap_gtk_toolbar_insert_item(PyGObject *self, PyObject *args, tooltip_private_text, icon, NULL, NULL, position); if (ret && PyCallable_Check(callback)) { - param = Py_BuildValue("(OO)", callback, param); - gtk_signal_connect_full(GTK_OBJECT(ret), "clicked", NULL, - (GtkCallbackMarshal)pygtk_callback_marshal, - param, pygtk_destroy_notify, FALSE, FALSE); + g_signal_connect_closure(ret, "clicked", + pyg_closure_new(callback, param, NULL), + FALSE); } return pygobject_new((GObject *)ret); } @@ -3319,10 +3340,9 @@ _wrap_gtk_toolbar_append_element(PyGObject *self, PyObject *args, (type == GTK_TOOLBAR_CHILD_BUTTON || type == GTK_TOOLBAR_CHILD_TOGGLEBUTTON || type == GTK_TOOLBAR_CHILD_RADIOBUTTON)) { - param = Py_BuildValue("(OO)", callback, param); - gtk_signal_connect_full(GTK_OBJECT(ret), "clicked", NULL, - (GtkCallbackMarshal)pygtk_callback_marshal, - param, pygtk_destroy_notify, FALSE, FALSE); + g_signal_connect_closure(ret, "clicked", + pyg_closure_new(callback, param, NULL), + FALSE); } return pygobject_new((GObject *)ret); } @@ -3373,10 +3393,9 @@ _wrap_gtk_toolbar_prepend_element(PyGObject *self, PyObject *args, (type == GTK_TOOLBAR_CHILD_BUTTON || type == GTK_TOOLBAR_CHILD_TOGGLEBUTTON || type == GTK_TOOLBAR_CHILD_RADIOBUTTON)) { - param = Py_BuildValue("(OO)", callback, param); - gtk_signal_connect_full(GTK_OBJECT(ret), "clicked", NULL, - (GtkCallbackMarshal)pygtk_callback_marshal, - param, pygtk_destroy_notify, FALSE, FALSE); + g_signal_connect_closure(ret, "clicked", + pyg_closure_new(callback, param, NULL), + FALSE); } return pygobject_new((GObject *)ret); } @@ -3428,10 +3447,9 @@ _wrap_gtk_toolbar_insert_element(PyGObject *self, PyObject *args, (type == GTK_TOOLBAR_CHILD_BUTTON || type == GTK_TOOLBAR_CHILD_TOGGLEBUTTON || type == GTK_TOOLBAR_CHILD_RADIOBUTTON)) { - param = Py_BuildValue("(OO)", callback, param); - gtk_signal_connect_full(GTK_OBJECT(ret), "clicked", NULL, - (GtkCallbackMarshal)pygtk_callback_marshal, - param, pygtk_destroy_notify, FALSE, FALSE); + g_signal_connect_closure(ret, "clicked", + pyg_closure_new(callback, param, NULL), + FALSE); } return pygobject_new((GObject *)ret); } diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c index 32becd1c..9e10d7c3 100644 --- a/gtk/gtkmodule.c +++ b/gtk/gtkmodule.c @@ -12,9 +12,6 @@ void pygtk_register_classes(PyObject *d); extern PyMethodDef pygtk_functions[]; -extern PyExtensionClass PyGtkObject_Type; -extern GHashTable *_pygtk_boxed_funcs; - static struct _PyGtk_FunctionStruct functions = { VERSION, FALSE, @@ -23,18 +20,7 @@ static struct _PyGtk_FunctionStruct functions = { pygtk_unblock_threads, pygtk_destroy_notify, - pygtk_callback_marshal, - - pygtk_args_as_tuple, - pygtk_args_from_sequence, - pygtk_arg_from_pyobject, - pygtk_arg_as_pyobject, - pygtk_ret_from_pyobject, - pygtk_ret_as_pyobject, - - pygtk_register_boxed, - &PyGdkFont_Type, PyGdkFont_New, &PyGdkColor_Type, PyGdkColor_New, &PyGdkEvent_Type, PyGdkEvent_New, &PyGtkSelectionData_Type, PyGtkSelectionData_New, @@ -91,7 +77,6 @@ init_gtk(void) m = Py_InitModule("gtk._gtk", pygtk_functions); d = PyModule_GetDict(m); - _pygtk_boxed_funcs = g_hash_table_new(g_direct_hash, g_direct_equal); _pygtk_register_boxed_types(d); pygtk_register_classes(d); diff --git a/gtk/gtkobject-support.c b/gtk/gtkobject-support.c index 63e95cfc..9666d187 100644 --- a/gtk/gtkobject-support.c +++ b/gtk/gtkobject-support.c @@ -80,615 +80,6 @@ pygtk_destroy_notify(gpointer user_data) } -/* ------------ stuff for converting from gtk <-> python types --------- */ - -/* this hash table is used to let these functions know about new boxed - * types (eg. maybe some from GNOME). The functions return TRUE on error */ -typedef PyObject *(*fromargfunc)(gpointer boxed); -typedef int (*toargfunc)(gpointer *boxed, PyObject *obj); -typedef struct { - fromargfunc fromarg; - toargfunc toarg; -} PyGtk_BoxFuncs; -/* keys are GUINT_TO_POINTER(GtkType) */ -GHashTable *_pygtk_boxed_funcs = NULL; - -void -pygtk_register_boxed(GtkType boxed_type, fromargfunc fromarg, toargfunc toarg) -{ - PyGtk_BoxFuncs *fs = g_new(PyGtk_BoxFuncs, 1); - - fs->fromarg = fromarg; - fs->toarg = toarg; - g_hash_table_insert(_pygtk_boxed_funcs, GUINT_TO_POINTER(boxed_type), fs); -} - -#define pygtk_get_boxed(type) (PyGtk_BoxFuncs *)g_hash_table_lookup(_pygtk_boxed_funcs, GUINT_TO_POINTER(type)) - -/* create a GtkArg from a PyObject, using the GTK_VALUE_* routines. - * returns -1 if it couldn't set the argument. */ -int -pygtk_arg_from_pyobject(GtkArg *arg, PyObject *obj) -{ - PyObject *tmp; - - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_NONE: - case GTK_TYPE_INVALID: - GTK_VALUE_INT(*arg) = 0; - break; - case GTK_TYPE_BOOL: - if ((tmp = PyNumber_Int(obj))) - GTK_VALUE_BOOL(*arg) = (PyInt_AsLong(tmp) != 0); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_CHAR: - case GTK_TYPE_UCHAR: - if ((tmp = PyObject_Str(obj))) - GTK_VALUE_CHAR(*arg) = PyString_AsString(tmp)[0]; - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_ENUM: - if (pyg_enum_get_value(arg->type, obj, &(GTK_VALUE_ENUM(*arg)))) - return -1; - break; - case GTK_TYPE_FLAGS: - if (pyg_flags_get_value(arg->type, obj, &(GTK_VALUE_FLAGS(*arg)))) - return -1; - break; - case GTK_TYPE_INT: - if ((tmp = PyNumber_Int(obj))) - GTK_VALUE_INT(*arg) = PyInt_AsLong(tmp); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_UINT: - if ((tmp = PyNumber_Int(obj))) - GTK_VALUE_UINT(*arg) = PyInt_AsLong(tmp); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_LONG: - if ((tmp = PyNumber_Int(obj))) - GTK_VALUE_LONG(*arg) = PyInt_AsLong(tmp); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_ULONG: - if ((tmp = PyNumber_Int(obj))) - GTK_VALUE_ULONG(*arg) = PyInt_AsLong(tmp); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_FLOAT: - if ((tmp = PyNumber_Float(obj))) - GTK_VALUE_FLOAT(*arg) = PyFloat_AsDouble(tmp); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_DOUBLE: - if ((tmp = PyNumber_Float(obj))) - GTK_VALUE_DOUBLE(*arg) = PyFloat_AsDouble(tmp); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case GTK_TYPE_STRING: - if ((tmp = PyObject_Str(obj))) - GTK_VALUE_STRING(*arg) = PyString_AsString(tmp); - else { - PyErr_Clear(); - return -1; - } - Py_DECREF(tmp); - break; - case G_TYPE_OBJECT: - if (pygobject_check(obj, pygobject_lookup_class(arg->type))) - GTK_VALUE_OBJECT(*arg) = GTK_OBJECT(pygobject_get(obj)); - else - return -1; - break; - case GTK_TYPE_BOXED: - if (arg->type == GDK_TYPE_EVENT) { - if (PyGdkEvent_Check(obj)) - GTK_VALUE_BOXED(*arg) = PyGdkEvent_Get(obj); - else - return -1; - } else if (arg->type == GDK_TYPE_FONT) { - if (PyGdkFont_Check(obj)) - GTK_VALUE_BOXED(*arg) = PyGdkFont_Get(obj); - else - return -1; - } else if (arg->type == GDK_TYPE_COLOR) { - if (PyGdkColor_Check(obj)) - GTK_VALUE_BOXED(*arg) = PyGdkColor_Get(obj); - else if (obj == Py_None) - GTK_VALUE_BOXED(*arg) = NULL; - else - return -1; - } else if (arg->type == GTK_TYPE_SELECTION_DATA) { - if (PyGtkSelectionData_Check(obj)) - GTK_VALUE_BOXED(*arg) = PyGtkSelectionData_Get(obj); - else - return -1; - } else { - PyGtk_BoxFuncs *fs= pygtk_get_boxed(arg->type); - if (fs && fs->toarg) { - if (fs->toarg(&(GTK_VALUE_BOXED(*arg)), obj)) - return -1; - } else if (PyCObject_Check(obj)) - GTK_VALUE_BOXED(*arg) = PyCObject_AsVoidPtr(obj); - else - return -1; - } - break; - case GTK_TYPE_POINTER: - if (PyCObject_Check(obj)) - GTK_VALUE_BOXED(*arg) = PyCObject_AsVoidPtr(obj); - else - return -1; - break; - } - return 0; -} - -/* convert a GtkArg structure to a PyObject, using the GTK_VALUE_* routines. - * conversion is always possible. */ -PyObject * -pygtk_arg_as_pyobject(GtkArg *arg) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_INVALID: - case GTK_TYPE_NONE: - Py_INCREF(Py_None); - return Py_None; - case GTK_TYPE_CHAR: - case GTK_TYPE_UCHAR: - return PyString_FromStringAndSize(>K_VALUE_CHAR(*arg), 1); - case GTK_TYPE_BOOL: - return PyInt_FromLong(GTK_VALUE_BOOL(*arg)); - case GTK_TYPE_ENUM: - case GTK_TYPE_FLAGS: - case GTK_TYPE_INT: - return PyInt_FromLong(GTK_VALUE_INT(*arg)); - case GTK_TYPE_UINT: - return PyInt_FromLong(GTK_VALUE_UINT(*arg)); - case GTK_TYPE_LONG: - return PyInt_FromLong(GTK_VALUE_LONG(*arg)); - case GTK_TYPE_ULONG: - return PyInt_FromLong(GTK_VALUE_ULONG(*arg)); - case GTK_TYPE_FLOAT: - return PyFloat_FromDouble(GTK_VALUE_FLOAT(*arg)); - case GTK_TYPE_DOUBLE: - return PyFloat_FromDouble(GTK_VALUE_DOUBLE(*arg)); - case GTK_TYPE_STRING: - if (GTK_VALUE_STRING(*arg) != NULL) - return PyString_FromString(GTK_VALUE_STRING(*arg)); - else { - Py_INCREF(Py_None); - return Py_None; - } - case G_TYPE_OBJECT: - if (GTK_VALUE_OBJECT(*arg) != NULL) - return pygobject_new((GObject *)GTK_VALUE_OBJECT(*arg)); - else { - Py_INCREF(Py_None); - return Py_None; - } - case GTK_TYPE_POINTER: - return PyCObject_FromVoidPtr(GTK_VALUE_POINTER(*arg), NULL); - case GTK_TYPE_BOXED: - if (arg->type == GDK_TYPE_EVENT) - return PyGdkEvent_New(GTK_VALUE_BOXED(*arg)); - else if (arg->type == GDK_TYPE_FONT) - return PyGdkFont_New(GTK_VALUE_BOXED(*arg)); - else if (arg->type == GDK_TYPE_COLOR) - return PyGdkColor_New(GTK_VALUE_BOXED(*arg)); - else if (arg->type == GTK_TYPE_SELECTION_DATA) - return PyGtkSelectionData_New(GTK_VALUE_BOXED(*arg)); - else { - PyGtk_BoxFuncs *fs = pygtk_get_boxed(arg->type); - if (fs && fs->fromarg) - return fs->fromarg(GTK_VALUE_BOXED(*arg)); - return PyCObject_FromVoidPtr(GTK_VALUE_BOXED(*arg), NULL); - } - default: - g_assert_not_reached(); - break; - } - return NULL; -} - -/* set a GtkArg structure's data from a PyObject, using the GTK_RETLOC_* - * routines. If it can't make the conversion, set the return to a zero - * equivalent. */ -void -pygtk_ret_from_pyobject(GtkArg *ret, PyObject *py_ret) -{ - PyObject *tmp; - switch (GTK_FUNDAMENTAL_TYPE(ret->type)) { - case GTK_TYPE_NONE: - case GTK_TYPE_INVALID: - break; - case GTK_TYPE_BOOL: - if ((tmp = PyNumber_Int(py_ret))) { - *GTK_RETLOC_BOOL(*ret) = (PyInt_AsLong(tmp) != 0); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_BOOL(*ret) = FALSE; - } - break; - case GTK_TYPE_CHAR: - if ((tmp = PyObject_Str(py_ret))) { - *GTK_RETLOC_CHAR(*ret) = PyString_AsString(tmp)[0]; - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_CHAR(*ret) = '\0'; - } - break; - case GTK_TYPE_ENUM: - if (pyg_enum_get_value(ret->type, py_ret, GTK_RETLOC_ENUM(*ret))) { - PyErr_Clear(); - *GTK_RETLOC_ENUM(*ret) = 0; - } - break; - case GTK_TYPE_FLAGS: - if (pyg_flags_get_value(ret->type, py_ret, GTK_RETLOC_FLAGS(*ret))) { - PyErr_Clear(); - *GTK_RETLOC_FLAGS(*ret) = 0; - } - break; - case GTK_TYPE_INT: - if ((tmp = PyNumber_Int(py_ret))) { - *GTK_RETLOC_INT(*ret) = PyInt_AsLong(tmp); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_INT(*ret) = 0; - } - break; - case GTK_TYPE_UINT: - if ((tmp = PyNumber_Int(py_ret))) { - *GTK_RETLOC_UINT(*ret) = PyInt_AsLong(tmp); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_UINT(*ret) = 0; - } - break; - case GTK_TYPE_LONG: - if ((tmp = PyNumber_Int(py_ret))) { - *GTK_RETLOC_LONG(*ret) = PyInt_AsLong(tmp); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_LONG(*ret) = 0; - } - break; - case GTK_TYPE_ULONG: - if ((tmp = PyNumber_Int(py_ret))) { - *GTK_RETLOC_ULONG(*ret) = PyInt_AsLong(tmp); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_ULONG(*ret) = 0; - } - break; - case GTK_TYPE_FLOAT: - if ((tmp = PyNumber_Float(py_ret))) { - *GTK_RETLOC_FLOAT(*ret) = PyFloat_AsDouble(tmp); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_FLOAT(*ret) = 0; - } - break; - case GTK_TYPE_DOUBLE: - if ((tmp = PyNumber_Float(py_ret))) { - *GTK_RETLOC_DOUBLE(*ret) = PyFloat_AsDouble(tmp); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_DOUBLE(*ret) = 0; - } - break; - case GTK_TYPE_STRING: - if ((tmp = PyObject_Str(py_ret))) { - *GTK_RETLOC_STRING(*ret) = g_strdup(PyString_AsString(py_ret)); - Py_DECREF(tmp); - } else { - PyErr_Clear(); - *GTK_RETLOC_STRING(*ret) = NULL; - } - break; - case G_TYPE_OBJECT: - if (pygobject_check(py_ret, pygobject_lookup_class(ret->type))) - *GTK_RETLOC_OBJECT(*ret) = GTK_OBJECT(pygobject_get(py_ret)); - else - *GTK_RETLOC_OBJECT(*ret) = NULL; - break; - case GTK_TYPE_BOXED: - if (ret->type == GDK_TYPE_EVENT) { - if (PyGdkEvent_Check(py_ret)) - *GTK_RETLOC_BOXED(*ret) = PyGdkEvent_Get(py_ret); - else - *GTK_RETLOC_BOXED(*ret) = NULL; - } else if (ret->type == GDK_TYPE_FONT) { - if (PyGdkFont_Check(py_ret)) - *GTK_RETLOC_BOXED(*ret) = PyGdkFont_Get(py_ret); - else - *GTK_RETLOC_BOXED(*ret) = NULL; - } else if (ret->type == GDK_TYPE_COLOR) { - if (PyGdkColor_Check(py_ret)) - *GTK_RETLOC_BOXED(*ret) = PyGdkColor_Get(py_ret); - else - *GTK_RETLOC_BOXED(*ret) = NULL; - } else if (ret->type == GTK_TYPE_SELECTION_DATA) { - if (PyGtkSelectionData_Check(py_ret)) - *GTK_RETLOC_BOXED(*ret) = PyGtkSelectionData_Get(py_ret); - else - *GTK_RETLOC_BOXED(*ret) = NULL; - } else { - PyGtk_BoxFuncs *fs = pygtk_get_boxed(ret->type); - if (fs && fs->toarg) { - if (fs->toarg(GTK_RETLOC_BOXED(*ret), py_ret)) - *GTK_RETLOC_BOXED(*ret) = NULL; - } else - if (PyCObject_Check(py_ret)) - *GTK_RETLOC_BOXED(*ret) = PyCObject_AsVoidPtr(py_ret); - else - *GTK_RETLOC_BOXED(*ret) = NULL; - } - break; - case GTK_TYPE_POINTER: - if (PyCObject_Check(py_ret)) - *GTK_RETLOC_POINTER(*ret) = PyCObject_AsVoidPtr(py_ret); - else - *GTK_RETLOC_POINTER(*ret) = NULL; - break; - default: - g_assert_not_reached(); - break; - } -} - -/* convert a GtkArg structure to a PyObject, using the GTK_RETLOC_* routines. - * conversion is always possible. */ -PyObject * -pygtk_ret_as_pyobject(GtkArg *arg) -{ - switch (GTK_FUNDAMENTAL_TYPE(arg->type)) { - case GTK_TYPE_INVALID: - case GTK_TYPE_NONE: - Py_INCREF(Py_None); - return Py_None; - case GTK_TYPE_CHAR: - return PyString_FromStringAndSize(GTK_RETLOC_CHAR(*arg), 1); - case GTK_TYPE_BOOL: - return PyInt_FromLong(*GTK_RETLOC_BOOL(*arg)); - case GTK_TYPE_ENUM: - case GTK_TYPE_FLAGS: - case GTK_TYPE_INT: - return PyInt_FromLong(*GTK_RETLOC_INT(*arg)); - case GTK_TYPE_UINT: - return PyInt_FromLong(*GTK_RETLOC_UINT(*arg)); - case GTK_TYPE_LONG: - return PyInt_FromLong(*GTK_RETLOC_LONG(*arg)); - case GTK_TYPE_ULONG: - return PyInt_FromLong(*GTK_RETLOC_ULONG(*arg)); - case GTK_TYPE_FLOAT: - return PyFloat_FromDouble(*GTK_RETLOC_FLOAT(*arg)); - case GTK_TYPE_DOUBLE: - return PyFloat_FromDouble(*GTK_RETLOC_DOUBLE(*arg)); - case GTK_TYPE_STRING: - if (*GTK_RETLOC_STRING(*arg) != NULL) - return PyString_FromString(*GTK_RETLOC_STRING(*arg)); - else { - Py_INCREF(Py_None); - return Py_None; - } - case G_TYPE_OBJECT: - return pygobject_new((GObject *)*GTK_RETLOC_OBJECT(*arg)); - case GTK_TYPE_POINTER: - return PyCObject_FromVoidPtr(*GTK_RETLOC_POINTER(*arg), NULL); - case GTK_TYPE_BOXED: - if (arg->type == GDK_TYPE_EVENT) - return PyGdkEvent_New(*GTK_RETLOC_BOXED(*arg)); - else if (arg->type == GDK_TYPE_FONT) - return PyGdkFont_New(*GTK_RETLOC_BOXED(*arg)); - else if (arg->type == GDK_TYPE_COLOR) - return PyGdkColor_New(*GTK_RETLOC_BOXED(*arg)); - else if (arg->type == GTK_TYPE_SELECTION_DATA) - return PyGtkSelectionData_New(*GTK_RETLOC_BOXED(*arg)); - else { - PyGtk_BoxFuncs *fs = pygtk_get_boxed(arg->type); - if (fs && fs->fromarg) - return fs->fromarg(*GTK_RETLOC_BOXED(*arg)); - return PyCObject_FromVoidPtr(*GTK_RETLOC_BOXED(*arg), NULL); - } - default: - g_assert_not_reached(); - break; - } - return NULL; -} - -/* convert the GtkArg array ARGS to a python tuple */ -PyObject * -pygtk_args_as_tuple(int nparams, GtkArg *args) -{ - PyObject *tuple, *item; - int i; - - if ((tuple = PyTuple_New(nparams)) == NULL) - return NULL; - for (i = 0; i < nparams; i++) { - item = pygtk_arg_as_pyobject(&args[i]); - if (item == NULL) { - Py_INCREF(Py_None); - item = Py_None; - } - PyTuple_SetItem(tuple, i, item); - } - return tuple; -} - -/* converts a Python sequence to a GtkArg array. Returns -1 if the sequence - * doesn't match the specification in ARGS */ -int -pygtk_args_from_sequence(GtkArg *args, int nparams, PyObject *seq) -{ - PyObject *item; - int i; - if (!PySequence_Check(seq)) - return -1; - for (i = 0; i < nparams; i++) { - item = PySequence_GetItem(seq, i); - Py_DECREF(item); - if (pygtk_arg_from_pyobject(&args[i], item)) { - gchar buf[512]; - if (args[i].name == NULL) - g_snprintf(buf, 511, "argument %d: expected %s, %s found", i+1, - gtk_type_name(args[i].type), item->ob_type->tp_name); - else - g_snprintf(buf, 511, "argument %s: expected %s, %s found", - args[i].name, gtk_type_name(args[i].type), - item->ob_type->tp_name); - PyErr_SetString(PyExc_TypeError, buf); - return -1; - } - } - return 0; -} - - -/* generic callback marshal */ -void -pygtk_callback_marshal(GtkObject *o, gpointer data, guint nargs, GtkArg *args) -{ - PyObject *tuple = data, *func, *extra=NULL, *obj=NULL, *ret, *a, *params; - - PyGTK_BLOCK_THREADS - a = pygtk_args_as_tuple(nargs, args); - if (a == NULL) { - PyErr_Clear(); - fprintf(stderr, "can't decode params -- callback not run\n"); - PyGTK_UNBLOCK_THREADS - return; - } - - if (PyTuple_Check(tuple)) { - func = PyTuple_GetItem(tuple, 0); - extra = PyTuple_GetItem(tuple, 1); - if (PyTuple_Size(tuple) > 2) { - obj = PyTuple_GetItem(tuple, 2); - Py_INCREF(obj); - } - } else - func = tuple; - if (!obj && o != NULL) - obj = pygobject_new((GObject *)o); - - if (obj) { - tuple = PyTuple_New(1); - PyTuple_SetItem(tuple, 0, obj); - params = PySequence_Concat(tuple, a); - Py_DECREF(tuple); Py_DECREF(a); - } else - params = a; - - if (extra) { - tuple = params; - params = PySequence_Concat(tuple, extra); - Py_DECREF(tuple); - } - ret = PyObject_CallObject(func, params); - Py_DECREF(params); - if (ret == NULL) { - if (PyGtk_FatalExceptions) - gtk_main_quit(); - else { - PyErr_Print(); - PyErr_Clear(); - } - PyGTK_UNBLOCK_THREADS - return; - } - pygtk_ret_from_pyobject(&args[nargs], ret); - Py_DECREF(ret); - PyGTK_UNBLOCK_THREADS -} - -void -pygtk_signal_marshal(GtkObject *object, gpointer user_data, - int nparams, GtkArg *args, GtkType *arg_types, - GtkType return_type) -{ - PyObject *func = user_data; - PyObject *arg_list, *params, *ret; - - PyGTK_BLOCK_THREADS - ret = PyTuple_New(1); - PyTuple_SetItem(ret, 0, pygobject_new((GObject *)object)); - arg_list = pygtk_args_as_tuple(nparams, args); - params = PySequence_Concat(ret, arg_list); - Py_DECREF(ret); - Py_DECREF(arg_list); - if (PyTuple_Check(func)) { /* extra arguments given with func */ - arg_list = PyTuple_GetItem(func, 1); - func = PyTuple_GetItem(func, 0); - if (PyTuple_Check(arg_list)) { - ret = params; - params = PySequence_Concat(ret, arg_list); - Py_DECREF(ret); - } - } - ret = PyObject_CallObject(func, params); - Py_DECREF(params); - - if (ret == NULL) { - if (PyGtk_FatalExceptions) - gtk_main_quit(); - else { - PyErr_Print(); - PyErr_Clear(); - } - PyGTK_UNBLOCK_THREADS - return; - } - pygtk_ret_from_pyobject(&args[nparams], ret); - Py_DECREF(ret); - PyGTK_UNBLOCK_THREADS -} - -/* simple callback handler -- this one actually looks at the return type */ /* used for timeout and idle functions */ void pygtk_handler_marshal(gpointer a, PyObject *func, int nargs, GtkArg *args) @@ -744,89 +135,5 @@ pygtk_input_marshal(gpointer a, PyObject *func, int nargs, GtkArg *args) PyGTK_UNBLOCK_THREADS } -#if 0 -GtkArg * -pygtk_dict_as_args(PyObject *dict, GtkType type, gint *nargs) -{ - PyObject *key, *item; - gint i = 0, pos; - GtkArg *arg; - GtkArgInfo *info; - gchar *err, buf[128]; - - gtk_type_class(type); /* initialise the class structure (and setup args) */ - *nargs = PyDict_Size(dict); - arg = g_new(GtkArg, *nargs); - pos = 0; - while (PyDict_Next(dict, &i, &key, &item)) { - if (!PyString_Check(key)) { - PyErr_SetString(PyExc_TypeError,"dictionary keys must be strings"); - g_free(arg); - return NULL; - } - arg[pos].name = PyString_AsString(key); - err = gtk_object_arg_get_info(type, arg[pos].name, &info); - if (info == NULL) { - PyErr_SetString(PyExc_TypeError, err); - g_free(err); - g_free(arg); - return NULL; - } - arg[pos].type = info->type; - arg[pos].name = info->name; - if (pygtk_arg_from_pyobject(&(arg[pos]), item)) { - g_snprintf(buf, 255, "arg %s: expected type %s, found %s", - arg[pos].name, gtk_type_name(arg[pos].type), - item->ob_type->tp_name); - PyErr_SetString(PyExc_TypeError, buf); - g_free(arg); - return NULL; - } - pos++; - } - return arg; -} - -GtkArg * -pygtk_dict_as_container_args(PyObject *dict, GtkType type, gint *nargs) -{ - PyObject *key, *item; - gint i = 0, pos; - GtkArg *arg; - GtkArgInfo *info; - gchar *err, buf[128]; - - *nargs = PyDict_Size(dict); - arg = g_new(GtkArg, *nargs); - pos = 0; - while (PyDict_Next(dict, &i, &key, &item)) { - if (!PyString_Check(key)) { - PyErr_SetString(PyExc_TypeError,"dictionary keys must be strings"); - g_free(arg); - return NULL; - } - arg[pos].name = PyString_AsString(key); - err = gtk_container_child_arg_get_info(type, arg[pos].name, &info); - if (info == NULL) { - PyErr_SetString(PyExc_TypeError, err); - g_free(err); - g_free(arg); - return NULL; - } - arg[pos].type = info->type; - arg[pos].name = info->name; - if (pygtk_arg_from_pyobject(&(arg[pos]), item)) { - g_snprintf(buf, 255, "arg %s: expected type %s, found %s", - arg[pos].name, gtk_type_name(arg[pos].type), - item->ob_type->tp_name); - PyErr_SetString(PyExc_TypeError, buf); - g_free(arg); - return NULL; - } - pos++; - } - return arg; -} -#endif diff --git a/gtk/pygtk-private.h b/gtk/pygtk-private.h index 19a807fd..52221229 100644 --- a/gtk/pygtk-private.h +++ b/gtk/pygtk-private.h @@ -14,8 +14,6 @@ #undef WITH_THREAD /* type objects */ -extern PyExtensionClass PyGtkAccelGroup_Type; -extern PyTypeObject PyGdkFont_Type; extern PyTypeObject PyGdkColor_Type; extern PyTypeObject PyGdkEvent_Type; extern PyTypeObject PyGtkSelectionData_Type; @@ -27,8 +25,6 @@ extern PyTypeObject PyGtkTextIter_Type; extern PyTypeObject PyGtkTreeIter_Type; /* check the type of a PyObject */ -#define PyGtkAccelGroup_Check(v) pyg_boxed_check((v), &PyGtkAccelGroup_Type) -#define PyGdkFont_Check(v) ((v)->ob_type == &PyGdkFont_Type) #define PyGdkColor_Check(v) ((v)->ob_type == &PyGdkColor_Type) #define PyGdkEvent_Check(v) ((v)->ob_type == &PyGdkEvent_Type) #define PyGtkSelectionData_Check(v) ((v)->ob_type == &PyGtkSelectionData_Type) @@ -40,8 +36,6 @@ extern PyTypeObject PyGtkTreeIter_Type; #define PyGtkTreeIter_Check(v) ((v)->ob_type == &PyGtkTreeIter_Type) /* constructors for PyObject wrappers ... */ -#define PyGtkAccelGroup_New(ag) pyg_boxed_new(GTK_TYPE_ACCEL_GROUP, ag, TRUE, TRUE) -PyObject *PyGdkFont_New(GdkFont *font); PyObject *PyGdkColor_New(GdkColor *colour); PyObject *PyGdkEvent_New(GdkEvent *event); PyObject *PyGtkSelectionData_New(GtkSelectionData *data); diff --git a/gtk/pygtk.h b/gtk/pygtk.h index 01bca62c..5e3f1dfb 100644 --- a/gtk/pygtk.h +++ b/gtk/pygtk.h @@ -16,21 +16,6 @@ struct _PyGtk_FunctionStruct { void (* unblock_threads)(void); GtkDestroyNotify destroy_notify; - GtkCallbackMarshal callback_marshal; - - PyObject *(* args_as_tuple)(int nparams, GtkArg *args); - int (* args_from_sequence)(GtkArg *args, int nparams, PyObject *seq); - int (* arg_from_pyobject)(GtkArg *arg, PyObject *obj); - PyObject *(* arg_as_pyobject)(GtkArg *arg); - void (* ret_from_pyobject)(GtkArg *ret, PyObject *obj); - PyObject *(* ret_as_pyobject)(GtkArg *ret); - - void (* register_boxed)(GtkType boxed_type, - PyObject *(*from_func)(gpointer boxed), - int (*to_func)(gpointer *boxed, PyObject *obj)); - - PyTypeObject *gdkFont_type; - PyObject *(* gdkFont_new)(GdkFont *font); PyTypeObject *gdkColor_type; PyObject *(* gdkColor_new)(GdkColor *colour); @@ -63,11 +48,6 @@ struct _PyGtk_FunctionStruct { /* structure definitions for the various object types in PyGTK */ typedef struct { PyObject_HEAD - GdkFont *obj; -} PyGdkFont_Object; - -typedef struct { - PyObject_HEAD GdkColor obj; } PyGdkColor_Object; @@ -114,7 +94,6 @@ typedef struct { } PyGtkTreeIter_Object; /* routines to get the C object value out of the PyObject wrapper */ -#define PyGdkFont_Get(v) (((PyGdkFont_Object *)(v))->obj) #define PyGdkColor_Get(v) (&((PyGdkColor_Object *)(v))->obj) #define PyGdkEvent_Get(v) (((PyGdkEvent_Object *)(v))->obj) #define PyGtkSelectionData_Get(v) (((PyGtkSelectionData_Object *)(v))->obj) @@ -139,7 +118,6 @@ struct _PyGtk_FunctionStruct *_PyGtk_API; #endif /* type objects */ -#define PyGdkFont_Type *(_PyGtk_API->gdkFont_type) #define PyGdkColor_Type *(_PyGtk_API->gdkColor_type) #define PyGdkEvent_Type *(_PyGtk_API->gdkEvent_type) #define PyGtkSelectionData_Type *(_PyGtk_API->gtkSelectionData_type) @@ -151,7 +129,6 @@ struct _PyGtk_FunctionStruct *_PyGtk_API; #define PyGtkTreeIter_Type *(_PyGtk_API->gtkTreeIter_type) /* type checking routines */ -#define PyGdkFont_Check(v) ((v)->ob_type == _PyGtk_API->gdkFont_type) #define PyGdkColor_Check(v) ((v)->ob_type == _PyGtk_API->gdkColor_type) #define PyGdkEvent_Check(v) ((v)->ob_type == _PyGtk_API->gdkEvent_type) #define PyGtkSelectionData_Check(v) ((v)->ob_type == _PyGtk_API->gtkSelectionData_type) @@ -163,7 +140,6 @@ struct _PyGtk_FunctionStruct *_PyGtk_API; #define PyGtkTreeIter_Check(v) ((v)->ob_type == _PyGtk_API->gtkTreeIter_type) /* type objects */ -#define PyGdkFont_New (_PyGtk_API->gdkFont_new) #define PyGdkColor_New (_PyGtk_API->gdkColor_new) #define PyGdkEvent_New (_PyGtk_API->gdkEvent_new) #define PyGtkSelectionData_New (_PyGtk_API->gtkSelectionData_new) @@ -178,14 +154,6 @@ struct _PyGtk_FunctionStruct *_PyGtk_API; #define pygtk_block_threads (_PyGtk_API->block_threads) #define pygtk_unblock_threads (_PyGtk_API->unblock_threads) #define pygtk_destroy_notify (_PyGtk_API->destroy_notify) -#define pygtk_callback_marshal (_PyGtk_API->callback_marshal) -#define pygtk_args_as_tuple (_PyGtk_API->args_as_tuple) -#define pygtk_args_from_sequence (_PyGtk_API->args_from_sequence) -#define pygtk_arg_from_pyobject (_PyGtk_API->arg_from_pyobject) -#define pygtk_arg_as_pyobject (_PyGtk_API->arg_as_pyobject) -#define pygtk_ret_from_pyobject (_PyGtk_API->ret_from_pyobject) -#define pygtk_ret_as_pyobject (_PyGtk_API->ret_as_pyobject) -#define pygtk_register_boxed (_PyGtk_API->register_boxed) /* some variables */ #define PyGtk_FatalExceptions (_PyGtk_API->fatalExceptions) |