summaryrefslogtreecommitdiff
path: root/gtk/gtkmodule.c
diff options
context:
space:
mode:
authorGustavo J. A. M. Carneiro <gcarneiro@src.gnome.org>2004-07-04 15:39:57 +0000
committerGustavo J. A. M. Carneiro <gcarneiro@src.gnome.org>2004-07-04 15:39:57 +0000
commit06b6611849325b3336c6a784cacce92eb8dc3ae1 (patch)
treea96bacfa982f9a01ebf4034fa908a6ecf732ba7c /gtk/gtkmodule.c
parentdb98297328bbf03a2e9da8d589b3c37ed14281d1 (diff)
downloadpygtk-06b6611849325b3336c6a784cacce92eb8dc3ae1.tar.gz
turn gtk warnings into python warnings
Diffstat (limited to 'gtk/gtkmodule.c')
-rw-r--r--gtk/gtkmodule.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c
index 1766fc78..8d043e9a 100644
--- a/gtk/gtkmodule.c
+++ b/gtk/gtkmodule.c
@@ -41,6 +41,7 @@ extern PyMethodDef pygtk_functions[];
extern PyMethodDef pygdk_functions[];
PyObject *PyGtkDeprecationWarning;
+PyObject *PyGtkWarning;
static struct _PyGtk_FunctionStruct functions = {
VERSION,
@@ -76,6 +77,15 @@ sink_gtkobject(GObject *object)
}
}
+static void
+_pygtk_log_func(const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *message,
+ gpointer user_data)
+{
+ PyErr_Warn(PyGtkWarning, (char *) message);
+}
+
static gboolean
python_do_pending_calls(gpointer data)
{
@@ -237,6 +247,11 @@ init_gtk(void)
add_atom(SELECTION_TYPE_WINDOW);
add_atom(SELECTION_TYPE_STRING);
#undef add_atom
+
+ PyGtkWarning = PyErr_NewException("gtk.GtkWarning", PyExc_Warning, NULL);
+ PyDict_SetItemString(d, "Warning", PyGtkWarning);
+ g_log_set_handler("Gtk", G_LOG_LEVEL_CRITICAL|G_LOG_LEVEL_WARNING,
+ _pygtk_log_func, NULL);
gtk_timeout_add(100, python_do_pending_calls, NULL);
}