diff options
author | Gustavo J. A. M. Carneiro <gcarneiro@src.gnome.org> | 2004-07-04 15:39:57 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gcarneiro@src.gnome.org> | 2004-07-04 15:39:57 +0000 |
commit | 06b6611849325b3336c6a784cacce92eb8dc3ae1 (patch) | |
tree | a96bacfa982f9a01ebf4034fa908a6ecf732ba7c /gtk/gtkmodule.c | |
parent | db98297328bbf03a2e9da8d589b3c37ed14281d1 (diff) | |
download | pygtk-06b6611849325b3336c6a784cacce92eb8dc3ae1.tar.gz |
turn gtk warnings into python warnings
Diffstat (limited to 'gtk/gtkmodule.c')
-rw-r--r-- | gtk/gtkmodule.c | 15 |
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); } |