comparison src/gtkdebug.c @ 7150:e09020153d85

[gaim-migrate @ 7717] I fixed this! It doesn't hate me. How could it? committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sat, 04 Oct 2003 23:45:00 +0000
parents 6faeeecab0dc
children cada5ddc21f5
comparison
equal deleted inserted replaced
7149:3aa374a7bc2e 7150:e09020153d85
45 45
46 } DebugWindow; 46 } DebugWindow;
47 47
48 static char debug_fg_colors[][8] = { 48 static char debug_fg_colors[][8] = {
49 "#000000", /**< All debug levels. */ 49 "#000000", /**< All debug levels. */
50 "#666666", /**< Blather. */ 50 "#666666", /**< Misc. */
51 "#000000", /**< Information. */ 51 "#000000", /**< Information. */
52 "#660000", /**< Warnings. */ 52 "#660000", /**< Warnings. */
53 "#FF0000", /**< Errors. */ 53 "#FF0000", /**< Errors. */
54 "#FF0000", /**< Fatal errors. */ 54 "#FF0000", /**< Fatal errors. */
55 }; 55 };
213 gaim_gtk_debug_window_show(); 213 gaim_gtk_debug_window_show();
214 else 214 else
215 gaim_gtk_debug_window_hide(); 215 gaim_gtk_debug_window_hide();
216 } 216 }
217 217
218 static void
219 gaim_glib_log_handler(const gchar *domain, GLogLevelFlags flags,
220 const gchar *msg, gpointer user_data)
221 {
222 GaimDebugLevel level;
223 char *new_msg = NULL;
224 char *new_domain = NULL;
225
226 if ((flags & G_LOG_LEVEL_MASK) == G_LOG_LEVEL_ERROR)
227 level = GAIM_DEBUG_ERROR;
228 else if ((flags & G_LOG_LEVEL_MASK) == G_LOG_LEVEL_CRITICAL)
229 level = GAIM_DEBUG_FATAL;
230 else if ((flags & G_LOG_LEVEL_MASK) == G_LOG_LEVEL_WARNING)
231 level = GAIM_DEBUG_WARNING;
232 else if ((flags & G_LOG_LEVEL_MASK) == G_LOG_LEVEL_MESSAGE)
233 level = GAIM_DEBUG_INFO;
234 else if ((flags & G_LOG_LEVEL_MASK) == G_LOG_LEVEL_INFO)
235 level = GAIM_DEBUG_INFO;
236 else if ((flags & G_LOG_LEVEL_MASK) == G_LOG_LEVEL_DEBUG)
237 level = GAIM_DEBUG_MISC;
238 else {
239 gaim_debug(GAIM_DEBUG_WARNING, "gtkdebug",
240 "Unknown glib logging level in %d\n", flags);
241
242 level = GAIM_DEBUG_MISC; /* This will never happen. */
243 }
244
245 if (msg != NULL)
246 new_msg = gaim_utf8_try_convert(msg);
247
248 if (domain != NULL)
249 new_domain = gaim_utf8_try_convert(domain);
250
251 if (new_msg != NULL) {
252 gaim_debug(GAIM_DEBUG_MISC, new_domain ? new_domain : "g_log",
253 "%s\n", new_msg);
254
255 g_free(new_msg);
256 }
257
258 if (new_domain != NULL)
259 g_free(new_domain);
260 }
261
262 #ifdef _WIN32
263 static void
264 gaim_glib_dummy_print_handler(const gchar *string)
265 {
266 }
267 #endif
268
218 void 269 void
219 gaim_gtk_debug_init(void) 270 gaim_gtk_debug_init(void)
220 { 271 {
221 /* Debug window preferences. */ 272 /* Debug window preferences. */
222 /* 273 /*
233 gaim_prefs_add_int("/gaim/gtk/debug/width", 450); 284 gaim_prefs_add_int("/gaim/gtk/debug/width", 450);
234 gaim_prefs_add_int("/gaim/gtk/debug/height", 250); 285 gaim_prefs_add_int("/gaim/gtk/debug/height", 250);
235 286
236 gaim_prefs_connect_callback("/gaim/gtk/debug/enabled", 287 gaim_prefs_connect_callback("/gaim/gtk/debug/enabled",
237 debug_enabled_cb, NULL); 288 debug_enabled_cb, NULL);
289
290 #define REGISTER_G_LOG_HANDLER(name) \
291 g_log_set_handler((name), G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL \
292 | G_LOG_FLAG_RECURSION, \
293 gaim_glib_log_handler, NULL)
294
295 /* Register the glib/gtk log handlers. */
296 REGISTER_G_LOG_HANDLER(NULL);
297 REGISTER_G_LOG_HANDLER("Gdk");
298 REGISTER_G_LOG_HANDLER("Gtk");
299 REGISTER_G_LOG_HANDLER("GLib");
300 REGISTER_G_LOG_HANDLER("GModule");
301 REGISTER_G_LOG_HANDLER("GLib-GObject");
302 REGISTER_G_LOG_HANDLER("GThread");
303
304 #ifdef _WIN32
305 if (!opt_debug)
306 g_set_print_handler(gaim_glib_dummy_print_handler);
307 #endif
238 } 308 }
239 309
240 void 310 void
241 gaim_gtk_debug_window_show(void) 311 gaim_gtk_debug_window_show(void)
242 { 312 {