From 06b6611849325b3336c6a784cacce92eb8dc3ae1 Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Sun, 4 Jul 2004 15:39:57 +0000 Subject: turn gtk warnings into python warnings --- gtk/gtkmodule.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gtk/gtkmodule.c') 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); } -- cgit v1.2.1