summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorJames Henstridge <james@daa.com.au>2001-06-25 03:27:27 +0000
committerJames Henstridge <jamesh@src.gnome.org>2001-06-25 03:27:27 +0000
commit322d0c69786b16b7148916c73a524e420037da7b (patch)
treea5a4db36c13ccb07cf52391de326c9cdba356f88 /gtk
parent4d34966a127252e4f5665b665776dc8e360e6344 (diff)
downloadpygtk-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__.py2
-rw-r--r--gtk/gdk.defs27
-rw-r--r--gtk/gtk-types.c138
-rw-r--r--gtk/gtk.defs21
-rw-r--r--gtk/gtk.override94
-rw-r--r--gtk/gtkmodule.c15
-rw-r--r--gtk/gtkobject-support.c693
-rw-r--r--gtk/pygtk-private.h6
-rw-r--r--gtk/pygtk.h32
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(&GTK_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)