Mercurial > pidgin
annotate src/gtkdebug.c @ 5954:fccc33d4b8fa
[gaim-migrate @ 6398]
I made serv_set_info or whatever it's called take a const char *
I don't really remember why
I also made some other small changes
There should be no functionality change
I'm still struggling to get available messages working. They haunt my
dreams. Like the gray gorilla, or the Silhouette of the past, fading
into the dim light of the moon.
committer: Tailor Script <tailor@pidgin.im>
| author | Mark Doliner <mark@kingant.net> |
|---|---|
| date | Wed, 25 Jun 2003 04:20:30 +0000 |
| parents | 059d95c67cda |
| children | 5cd7a10c6ade |
| rev | line source |
|---|---|
| 5212 | 1 /** |
| 2 * @file gtkdebug.c GTK+ Debug API | |
| 3 * @ingroup gtkui | |
| 4 * | |
| 5 * gaim | |
| 6 * | |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
7 * Copyright (C) 2003 Christian Hammond <chipx86@gnupdate.org> |
| 5212 | 8 * |
| 9 * This program is free software; you can redistribute it and/or modify | |
| 10 * it under the terms of the GNU General Public License as published by | |
| 11 * the Free Software Foundation; either version 2 of the License, or | |
| 12 * (at your option) any later version. | |
| 13 * | |
| 14 * This program is distributed in the hope that it will be useful, | |
| 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 * GNU General Public License for more details. | |
| 18 * | |
| 19 * You should have received a copy of the GNU General Public License | |
| 20 * along with this program; if not, write to the Free Software | |
| 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 22 */ | |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
23 #include "internal.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
24 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
25 #include "prefs.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
26 #include "util.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
27 |
| 5212 | 28 #include "gtkdebug.h" |
| 29 #include "gtkimhtml.h" | |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
30 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
31 #include "ui.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
32 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
33 extern int opt_debug; |
| 5212 | 34 |
| 35 typedef struct | |
| 36 { | |
| 37 GtkWidget *window; | |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
38 GtkWidget *text; |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
39 |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
40 gboolean timestamps; |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
41 gboolean paused; |
| 5212 | 42 |
|
5704
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
43 guint timestamps_handle; |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
44 |
| 5212 | 45 } DebugWindow; |
| 46 | |
| 47 static char debug_fg_colors[][8] = { | |
| 48 "#000000", /**< All debug levels. */ | |
| 49 "#666666", /**< Blather. */ | |
| 50 "#000000", /**< Information. */ | |
| 51 "#660000", /**< Warnings. */ | |
| 52 "#FF0000", /**< Errors. */ | |
| 53 "#FF0000", /**< Fatal errors. */ | |
| 54 }; | |
| 55 | |
| 56 static DebugWindow *debug_win = NULL; | |
| 57 | |
| 58 static gint | |
| 59 debug_window_destroy(GtkWidget *w, GdkEvent *event, void *unused) | |
| 60 { | |
|
5704
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
61 if (debug_win->timestamps_handle != 0) |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
62 gaim_prefs_disconnect_callback(debug_win->timestamps_handle); |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
63 |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
64 gaim_prefs_set_bool("/gaim/gtk/debug/enabled", FALSE); |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
65 |
| 5212 | 66 g_free(debug_win); |
| 67 debug_win = NULL; | |
| 68 | |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
69 return FALSE; |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
70 } |
| 5212 | 71 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
72 static gboolean |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
73 configure_cb(GtkWidget *w, GdkEventConfigure *event, DebugWindow *win) |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
74 { |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
75 if (GTK_WIDGET_VISIBLE(w)) { |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
76 gaim_prefs_set_int("/gaim/gtk/debug/width", event->width); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
77 gaim_prefs_set_int("/gaim/gtk/debug/height", event->height); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
78 } |
| 5212 | 79 |
| 80 return FALSE; | |
| 81 } | |
| 82 | |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
83 static void |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
84 clear_cb(GtkWidget *w, DebugWindow *win) |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
85 { |
|
5818
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
86 GtkWidget *parent; |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
87 |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
88 /* I HATE THIS! It's necessary though... Clearing a GtkTextView is SLOW. */ |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
89 parent = gtk_widget_get_parent(win->text); |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
90 |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
91 gtk_container_remove(GTK_CONTAINER(parent), win->text); |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
92 |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
93 win->text = gtk_imhtml_new(NULL, NULL); |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
94 gtk_container_add(GTK_CONTAINER(parent), win->text); |
|
eb9cfee31244
[gaim-migrate @ 6248]
Christian Hammond <chipx86@chipx86.com>
parents:
5794
diff
changeset
|
95 gtk_widget_show(win->text); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
96 } |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
97 |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
98 static void |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
99 pause_cb(GtkWidget *w, DebugWindow *win) |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
100 { |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
101 win->paused = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)); |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
102 } |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
103 |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
104 static void |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
105 timestamps_cb(GtkWidget *w, DebugWindow *win) |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
106 { |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
107 win->timestamps = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)); |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
108 |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
109 gaim_prefs_set_bool("/gaim/gtk/debug/timestamps", win->timestamps); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
110 } |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
111 |
|
5704
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
112 static void |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
113 timestamps_pref_cb(const char *name, GaimPrefType type, gpointer value, |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
114 gpointer data) |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
115 { |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
116 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), (gboolean)value); |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
117 } |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
118 |
| 5212 | 119 static DebugWindow * |
| 120 debug_window_new(void) | |
| 121 { | |
| 122 DebugWindow *win; | |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
123 GtkWidget *vbox; |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
124 GtkWidget *toolbar; |
| 5212 | 125 GtkWidget *sw; |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
126 GtkWidget *button; |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
127 int width, height; |
| 5212 | 128 |
| 129 win = g_new0(DebugWindow, 1); | |
| 130 | |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
131 width = gaim_prefs_get_int("/gaim/gtk/debug/width"); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
132 height = gaim_prefs_get_int("/gaim/gtk/debug/height"); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
133 |
| 5212 | 134 GAIM_DIALOG(win->window); |
|
5642
1693a3027dc8
[gaim-migrate @ 6056]
Christian Hammond <chipx86@chipx86.com>
parents:
5636
diff
changeset
|
135 gaim_debug(GAIM_DEBUG_INFO, "gtkdebug", "Setting dimensions to %d, %d\n", |
|
1693a3027dc8
[gaim-migrate @ 6056]
Christian Hammond <chipx86@chipx86.com>
parents:
5636
diff
changeset
|
136 width, height); |
|
1693a3027dc8
[gaim-migrate @ 6056]
Christian Hammond <chipx86@chipx86.com>
parents:
5636
diff
changeset
|
137 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
138 gtk_window_set_default_size(GTK_WINDOW(win->window), width, height); |
| 5212 | 139 gtk_window_set_role(GTK_WINDOW(win->window), "debug"); |
| 140 gtk_window_set_title(GTK_WINDOW(win->window), _("Debug Window")); | |
| 141 | |
| 142 g_signal_connect(G_OBJECT(win->window), "delete_event", | |
| 143 G_CALLBACK(debug_window_destroy), NULL); | |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
144 g_signal_connect(G_OBJECT(win->window), "configure_event", |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
145 G_CALLBACK(configure_cb), win); |
| 5212 | 146 |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
147 /* Setup the vbox */ |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
148 vbox = gtk_vbox_new(FALSE, 0); |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
149 gtk_container_add(GTK_CONTAINER(win->window), vbox); |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
150 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
151 if (gaim_prefs_get_bool("/gaim/gtk/debug/toolbar")) { |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
152 /* Setup our top button bar thingie. */ |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
153 toolbar = gtk_toolbar_new(); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
154 gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
155 gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
156 GTK_ICON_SIZE_SMALL_TOOLBAR); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
157 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
158 gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
159 |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
160 #if 0 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
161 /* Find button */ |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
162 gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_FIND, |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
163 NULL, NULL, NULL, NULL, -1); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
164 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
165 /* Save */ |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
166 gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_SAVE, |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
167 NULL, NULL, NULL, NULL, -1); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
168 #endif |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
169 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
170 /* Clear button */ |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
171 gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_CLEAR, |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
172 NULL, NULL, G_CALLBACK(clear_cb), win, -1); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
173 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
174 gtk_toolbar_insert_space(GTK_TOOLBAR(toolbar), -1); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
175 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
176 /* Pause */ |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
177 gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
178 GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
179 _("Pause"), NULL, NULL, |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
180 NULL, G_CALLBACK(pause_cb), win); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
181 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
182 /* Timestamps */ |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
183 button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
184 GTK_TOOLBAR_CHILD_TOGGLEBUTTON, |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
185 NULL, _("Timestamps"), NULL, NULL, |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
186 NULL, G_CALLBACK(timestamps_cb), |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
187 win); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
188 |
|
5704
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
189 win->timestamps_handle = |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
190 gaim_prefs_connect_callback("/gaim/gtk/debug/timestamps", |
|
aa8dbb7e0a4d
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
191 timestamps_pref_cb, button); |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
192 } |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
193 |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
194 /* Now our scrolled window... */ |
| 5212 | 195 sw = gtk_scrolled_window_new(NULL, NULL); |
| 196 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
197 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
198 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
199 GTK_SHADOW_IN); |
| 5212 | 200 |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
201 /* ... which has a gtkimhtml in it. */ |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
202 win->text = gtk_imhtml_new(NULL, NULL); |
| 5212 | 203 |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
204 gtk_container_add(GTK_CONTAINER(sw), win->text); |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
205 |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
206 /* Pack it in... Not like that, sicko. */ |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
207 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
208 |
| 5212 | 209 gtk_widget_show_all(win->window); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
210 |
| 5212 | 211 return win; |
| 212 } | |
| 213 | |
|
5625
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
214 static void |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
215 debug_enabled_cb(const char *name, GaimPrefType type, gpointer value, |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
216 gpointer data) |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
217 { |
| 5636 | 218 if (value) |
|
5625
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
219 gaim_gtk_debug_window_show(); |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
220 else |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
221 gaim_gtk_debug_window_hide(); |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
222 } |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
223 |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
224 void |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
225 gaim_gtk_debug_init(void) |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
226 { |
| 5684 | 227 /* Debug window preferences. */ |
| 228 /* | |
| 229 * NOTE: This must be set before prefs are loaded, and the callbacks | |
| 230 * set after they are loaded, since prefs sets the enabled | |
| 231 * preference here and that loads the window, which calls the | |
| 232 * configure event, which overrrides the width and height! :P | |
| 233 */ | |
| 234 | |
| 235 gaim_prefs_add_none("/gaim/gtk/debug"); | |
| 236 gaim_prefs_add_bool("/gaim/gtk/debug/enabled", FALSE); | |
| 237 gaim_prefs_add_bool("/gaim/gtk/debug/timestamps", FALSE); | |
| 238 gaim_prefs_add_bool("/gaim/gtk/debug/toolbar", TRUE); | |
| 239 gaim_prefs_add_int("/gaim/gtk/debug/width", 450); | |
| 240 gaim_prefs_add_int("/gaim/gtk/debug/height", 250); | |
| 241 | |
|
5625
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
242 gaim_prefs_connect_callback("/gaim/gtk/debug/enabled", |
|
5794
5e93fc46d1af
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
243 debug_enabled_cb, NULL); |
|
5625
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
244 } |
|
73c9dc20e41a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
245 |
| 5212 | 246 void |
| 247 gaim_gtk_debug_window_show(void) | |
| 248 { | |
| 249 if (debug_win == NULL) | |
| 250 debug_win = debug_window_new(); | |
| 251 | |
| 252 gtk_widget_show(debug_win->window); | |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
253 |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
254 gaim_prefs_set_bool("/gaim/gtk/debug/enabled", TRUE); |
| 5212 | 255 } |
| 256 | |
| 257 void | |
| 258 gaim_gtk_debug_window_hide(void) | |
| 259 { | |
| 260 if (debug_win != NULL) { | |
| 261 gtk_widget_destroy(debug_win->window); | |
| 262 debug_window_destroy(NULL, NULL, NULL); | |
| 263 } | |
| 264 } | |
| 265 | |
| 266 static void | |
| 267 gaim_gtk_debug_print(GaimDebugLevel level, const char *category, | |
| 268 const char *format, va_list args) | |
| 269 { | |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
270 gchar *arg_s, *ts_s; |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
271 gboolean timestamps; |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
272 |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
273 timestamps = gaim_prefs_get_bool("/gaim/gtk/debug/timestamps"); |
| 5212 | 274 |
| 275 arg_s = g_strdup_vprintf(format, args); | |
| 276 | |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
277 if (category == NULL) { |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
278 ts_s = g_strdup(""); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
279 } |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
280 else { |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
281 /* |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
282 * If the category is not NULL, then do timestamps. |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
283 * This IS right. :) |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
284 */ |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
285 if (timestamps) { |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
286 gchar mdate[64]; |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
287 time_t mtime = time(NULL); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
288 |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
289 strftime(mdate, sizeof(mdate), "%H:%M:%S", localtime(&mtime)); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
290 |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
291 ts_s = g_strdup_printf("(%s) ", mdate); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
292 } |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
293 else |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
294 ts_s = g_strdup(""); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
295 } |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
296 |
| 5535 | 297 if (gaim_prefs_get_bool("/gaim/gtk/debug/enabled") && |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
298 debug_win != NULL && !debug_win->paused) { |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
299 |
|
5738
ec032cb2f9ec
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
300 gchar *esc_s, *cat_s, *utf8_s, *s; |
| 5212 | 301 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
302 if (category == NULL) |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
303 cat_s = g_strdup(""); |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
304 else |
|
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
305 cat_s = g_strdup_printf("<b>%s:</b> ", category); |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
306 |
| 5212 | 307 esc_s = g_markup_escape_text(arg_s, -1); |
| 308 | |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
309 s = g_strdup_printf("<font color=\"%s\">%s%s%s</font>", |
|
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
310 debug_fg_colors[level], ts_s, cat_s, esc_s); |
| 5212 | 311 |
| 312 g_free(esc_s); | |
| 313 | |
|
5738
ec032cb2f9ec
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
314 utf8_s = gaim_try_conv_to_utf8(s); |
|
ec032cb2f9ec
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
315 g_free(s); |
|
ec032cb2f9ec
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
316 s = utf8_s; |
|
ec032cb2f9ec
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
317 |
| 5212 | 318 if (level == GAIM_DEBUG_FATAL) { |
| 319 gchar *temp = s; | |
| 320 | |
|
5738
ec032cb2f9ec
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
321 g_free(s); |
| 5212 | 322 s = g_strdup_printf("<b>%s</b>", temp); |
| 323 g_free(temp); | |
| 324 } | |
| 325 | |
| 326 g_free(cat_s); | |
| 327 | |
|
5428
96bde36bb76b
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
328 gtk_imhtml_append_text(GTK_IMHTML(debug_win->text), s, -1, 0); |
| 5212 | 329 |
| 330 g_free(s); | |
| 331 } | |
| 332 | |
|
5214
7ea282e1f615
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
333 if (opt_debug) { |
|
7ea282e1f615
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
334 if (category == NULL) |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
335 g_print("%s%s", ts_s, arg_s); |
|
5214
7ea282e1f615
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
336 else |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
337 g_print("%s%s: %s", ts_s, category, arg_s); |
|
5214
7ea282e1f615
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
338 } |
| 5212 | 339 |
|
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
340 g_free(ts_s); |
| 5212 | 341 g_free(arg_s); |
| 342 } | |
| 343 | |
| 344 static GaimDebugUiOps ops = | |
| 345 { | |
| 346 gaim_gtk_debug_print | |
| 347 }; | |
| 348 | |
| 349 GaimDebugUiOps * | |
| 350 gaim_get_gtk_debug_ui_ops(void) | |
| 351 { | |
| 352 return &ops; | |
| 353 } | |
| 354 |
