Sun, 08 Aug 2004 00:48:19 +0000
[gaim-migrate @ 10570]
This patch is freaking massive.
Renamed ui.h to gtkdialogs.h
Renamed dialogs.c to gtkdialogs.c
sed'ed the hell out of the .po files
These files are similar to gtkutil.c/.h. They are meant to contain
dialogs such as the "New Instant Message" window, which does not
belong in gtkblist.c or gtkconv.c, and is called from both places.
Eventually the functions in gtkdialogs.c/.h should be changed to
conform to Gaim's naming convention.
| 5212 | 1 | /** |
| 2 | * @file gtkdebug.c GTK+ Debug API | |
| 3 | * @ingroup gtkui | |
| 4 | * | |
| 5 | * gaim | |
| 6 | * | |
| 8046 | 7 | * Gaim is the legal property of its developers, whose names are too numerous |
| 8 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 9 | * source distribution. | |
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
10 | * |
| 5212 | 11 | * This program is free software; you can redistribute it and/or modify |
| 12 | * it under the terms of the GNU General Public License as published by | |
| 13 | * the Free Software Foundation; either version 2 of the License, or | |
| 14 | * (at your option) any later version. | |
| 15 | * | |
| 16 | * This program is distributed in the hope that it will be useful, | |
| 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 19 | * GNU General Public License for more details. | |
| 20 | * | |
| 21 | * You should have received a copy of the GNU General Public License | |
| 22 | * along with this program; if not, write to the Free Software | |
| 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 24 | */ | |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6280
diff
changeset
|
25 | #include "gtkinternal.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
26 | |
|
9480
b4d46aa1be7d
[gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents:
8953
diff
changeset
|
27 | #include "notify.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
28 | #include "prefs.h" |
| 8953 | 29 | #include "request.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
30 | #include "util.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
31 | |
| 5212 | 32 | #include "gtkdebug.h" |
|
9709
2e73f176cc80
[gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents:
9504
diff
changeset
|
33 | #include "gtkdialogs.h" |
| 5212 | 34 | #include "gtkimhtml.h" |
| 8953 | 35 | #include "gtkutils.h" |
|
6009
971bff448e46
[gaim-migrate @ 6457]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
36 | #include "stock.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
37 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5818
diff
changeset
|
38 | extern int opt_debug; |
| 5212 | 39 | |
| 40 | typedef struct | |
| 41 | { | |
| 42 | GtkWidget *window; | |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
43 | GtkWidget *text; |
| 8953 | 44 | GtkWidget *find; |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
45 | |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
46 | gboolean timestamps; |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
47 | gboolean paused; |
| 5212 | 48 | |
|
5704
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
49 | guint timestamps_handle; |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
50 | |
| 5212 | 51 | } DebugWindow; |
| 52 | ||
| 53 | static char debug_fg_colors[][8] = { | |
| 54 | "#000000", /**< All debug levels. */ | |
| 7150 | 55 | "#666666", /**< Misc. */ |
| 5212 | 56 | "#000000", /**< Information. */ |
| 57 | "#660000", /**< Warnings. */ | |
| 58 | "#FF0000", /**< Errors. */ | |
| 59 | "#FF0000", /**< Fatal errors. */ | |
| 60 | }; | |
| 61 | ||
| 62 | static DebugWindow *debug_win = NULL; | |
| 63 | ||
| 8953 | 64 | struct _find { |
| 65 | DebugWindow *window; | |
| 66 | GtkWidget *entry; | |
| 67 | }; | |
| 68 | ||
| 5212 | 69 | static gint |
| 70 | debug_window_destroy(GtkWidget *w, GdkEvent *event, void *unused) | |
| 71 | { | |
|
5704
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
72 | if (debug_win->timestamps_handle != 0) |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
73 | gaim_prefs_disconnect_callback(debug_win->timestamps_handle); |
|
9502
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
74 | |
|
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
75 | /* If the "Save Log" dialog is open then close it */ |
|
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
76 | gaim_request_close_with_handle(debug_win); |
|
5704
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
77 | |
| 5212 | 78 | g_free(debug_win); |
| 79 | debug_win = NULL; | |
| 80 | ||
|
9480
b4d46aa1be7d
[gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents:
8953
diff
changeset
|
81 | gaim_prefs_set_bool("/gaim/gtk/debug/enabled", FALSE); |
|
b4d46aa1be7d
[gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents:
8953
diff
changeset
|
82 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
83 | return FALSE; |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
84 | } |
| 5212 | 85 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
86 | static gboolean |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
87 | configure_cb(GtkWidget *w, GdkEventConfigure *event, DebugWindow *win) |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
88 | { |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
89 | if (GTK_WIDGET_VISIBLE(w)) { |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
90 | gaim_prefs_set_int("/gaim/gtk/debug/width", event->width); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
91 | gaim_prefs_set_int("/gaim/gtk/debug/height", event->height); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
92 | } |
| 5212 | 93 | |
| 94 | return FALSE; | |
| 95 | } | |
| 96 | ||
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
97 | static void |
|
9482
8ade66642b6e
[gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents:
9480
diff
changeset
|
98 | do_find_cb(GtkWidget *widget, gint response, struct _find *f) |
| 8953 | 99 | { |
|
9482
8ade66642b6e
[gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents:
9480
diff
changeset
|
100 | switch (response) { |
| 8953 | 101 | case GTK_RESPONSE_OK: |
| 102 | gtk_imhtml_search_find(GTK_IMHTML(f->window->text), | |
| 103 | gtk_entry_get_text(GTK_ENTRY(f->entry))); | |
| 104 | break; | |
| 105 | ||
| 106 | case GTK_RESPONSE_DELETE_EVENT: | |
| 107 | case GTK_RESPONSE_CLOSE: | |
| 108 | gtk_imhtml_search_clear(GTK_IMHTML(f->window->text)); | |
| 109 | gtk_widget_destroy(f->window->find); | |
| 110 | f->window->find = NULL; | |
| 111 | g_free(f); | |
| 112 | break; | |
| 113 | } | |
| 114 | } | |
| 115 | ||
| 116 | static void | |
| 117 | find_cb(GtkWidget *w, DebugWindow *win) | |
| 118 | { | |
| 119 | GtkWidget *hbox, *img, *label; | |
| 120 | struct _find *f; | |
| 121 | ||
| 122 | if(win->find) | |
| 123 | { | |
| 124 | gtk_window_present(GTK_WINDOW(win->find)); | |
| 125 | return; | |
| 126 | } | |
| 127 | ||
| 128 | f = g_malloc(sizeof(struct _find)); | |
| 129 | f->window = win; | |
| 130 | win->find = gtk_dialog_new_with_buttons(_("Find"), | |
| 131 | GTK_WINDOW(win->window), GTK_DIALOG_DESTROY_WITH_PARENT, | |
| 132 | GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, | |
| 133 | GTK_STOCK_FIND, GTK_RESPONSE_OK, NULL); | |
| 134 | gtk_dialog_set_default_response(GTK_DIALOG(win->find), | |
| 135 | GTK_RESPONSE_OK); | |
| 136 | g_signal_connect(G_OBJECT(win->find), "response", | |
| 137 | G_CALLBACK(do_find_cb), f); | |
| 138 | ||
| 139 | gtk_container_set_border_width(GTK_CONTAINER(win->find), 6); | |
| 140 | gtk_window_set_resizable(GTK_WINDOW(win->find), FALSE); | |
| 141 | gtk_dialog_set_has_separator(GTK_DIALOG(win->find), FALSE); | |
| 142 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(win->find)->vbox), 12); | |
| 143 | gtk_container_set_border_width( | |
| 144 | GTK_CONTAINER(GTK_DIALOG(win->find)->vbox), 6); | |
| 145 | ||
| 146 | hbox = gtk_hbox_new(FALSE, 12); | |
| 147 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(win->find)->vbox), | |
| 148 | hbox); | |
| 149 | img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, | |
| 150 | GTK_ICON_SIZE_DIALOG); | |
| 151 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 152 | ||
| 153 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 154 | gtk_dialog_set_response_sensitive(GTK_DIALOG(win->find), | |
| 155 | GTK_RESPONSE_OK, FALSE); | |
| 156 | ||
| 157 | label = gtk_label_new(NULL); | |
| 158 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Search for:")); | |
| 159 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 160 | ||
| 161 | f->entry = gtk_entry_new(); | |
| 162 | gtk_entry_set_activates_default(GTK_ENTRY(f->entry), TRUE); | |
| 163 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(f->entry)); | |
| 164 | g_signal_connect(G_OBJECT(f->entry), "changed", | |
| 165 | G_CALLBACK(gaim_gtk_set_sensitive_if_input), | |
| 166 | win->find); | |
| 167 | gtk_box_pack_start(GTK_BOX(hbox), f->entry, FALSE, FALSE, 0); | |
| 168 | ||
| 169 | gtk_widget_show_all(win->find); | |
| 170 | gtk_widget_grab_focus(f->entry); | |
| 171 | } | |
| 172 | ||
| 173 | static void | |
|
9502
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
174 | save_writefile_cb(void *user_data, const char *filename) |
| 8953 | 175 | { |
|
9502
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
176 | DebugWindow *win = (DebugWindow *)user_data; |
|
9489
3ee8fdcdbac9
[gaim-migrate @ 10314]
Mark Doliner <markdoliner@pidgin.im>
parents:
9486
diff
changeset
|
177 | FILE *fp; |
| 8953 | 178 | char *tmp; |
| 179 | ||
|
9480
b4d46aa1be7d
[gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents:
8953
diff
changeset
|
180 | if ((fp = fopen(filename, "w+")) == NULL) { |
|
9502
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
181 | gaim_notify_error(win, NULL, _("Unable to open file."), NULL); |
| 8953 | 182 | return; |
|
9480
b4d46aa1be7d
[gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents:
8953
diff
changeset
|
183 | } |
| 8953 | 184 | |
|
9489
3ee8fdcdbac9
[gaim-migrate @ 10314]
Mark Doliner <markdoliner@pidgin.im>
parents:
9486
diff
changeset
|
185 | tmp = gtk_imhtml_get_text(GTK_IMHTML(win->text), NULL, NULL); |
| 8953 | 186 | fprintf(fp, "Gaim Debug log : %s\n", gaim_date_full()); |
| 187 | fprintf(fp, "%s", tmp); | |
| 188 | g_free(tmp); | |
| 189 | ||
| 190 | fclose(fp); | |
| 191 | } | |
| 192 | ||
| 193 | static void | |
| 194 | save_cb(GtkWidget *w, DebugWindow *win) | |
| 195 | { | |
|
9502
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
196 | gaim_request_file(win, _("Save Debug Log"), "gaim-debug.log", TRUE, |
|
d43f69354213
[gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents:
9501
diff
changeset
|
197 | G_CALLBACK(save_writefile_cb), NULL, win); |
| 8953 | 198 | } |
| 199 | ||
| 200 | static void | |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
201 | clear_cb(GtkWidget *w, DebugWindow *win) |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
202 | { |
|
6280
6d78edfe0ef2
[gaim-migrate @ 6779]
Christian Hammond <chipx86@chipx86.com>
parents:
6094
diff
changeset
|
203 | gtk_imhtml_clear(GTK_IMHTML(win->text)); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
204 | } |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
205 | |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
206 | static void |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
207 | pause_cb(GtkWidget *w, DebugWindow *win) |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
208 | { |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
209 | win->paused = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)); |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
210 | } |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
211 | |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
212 | static void |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
213 | timestamps_cb(GtkWidget *w, DebugWindow *win) |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
214 | { |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
215 | win->timestamps = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)); |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
216 | |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
217 | gaim_prefs_set_bool("/gaim/gtk/debug/timestamps", win->timestamps); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
218 | } |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
219 | |
|
5704
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
220 | static void |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
221 | timestamps_pref_cb(const char *name, GaimPrefType type, gpointer value, |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
222 | gpointer data) |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
223 | { |
|
6478
2c3fe7c8659b
[gaim-migrate @ 6991]
Robert McQueen <robot101@debian.org>
parents:
6371
diff
changeset
|
224 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data), GPOINTER_TO_INT(value)); |
|
5704
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
225 | } |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
226 | |
| 5212 | 227 | static DebugWindow * |
| 228 | debug_window_new(void) | |
| 229 | { | |
| 230 | DebugWindow *win; | |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
231 | GtkWidget *vbox; |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
232 | GtkWidget *toolbar; |
| 5212 | 233 | GtkWidget *sw; |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
234 | GtkWidget *button; |
|
6094
e30f0bb2cde9
[gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents:
6009
diff
changeset
|
235 | GtkWidget *image; |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
236 | int width, height; |
| 5212 | 237 | |
| 238 | win = g_new0(DebugWindow, 1); | |
| 239 | ||
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
240 | width = gaim_prefs_get_int("/gaim/gtk/debug/width"); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
241 | height = gaim_prefs_get_int("/gaim/gtk/debug/height"); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
242 | |
| 5212 | 243 | GAIM_DIALOG(win->window); |
|
5642
d7b8b62542a3
[gaim-migrate @ 6056]
Christian Hammond <chipx86@chipx86.com>
parents:
5636
diff
changeset
|
244 | gaim_debug(GAIM_DEBUG_INFO, "gtkdebug", "Setting dimensions to %d, %d\n", |
|
d7b8b62542a3
[gaim-migrate @ 6056]
Christian Hammond <chipx86@chipx86.com>
parents:
5636
diff
changeset
|
245 | width, height); |
|
d7b8b62542a3
[gaim-migrate @ 6056]
Christian Hammond <chipx86@chipx86.com>
parents:
5636
diff
changeset
|
246 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
247 | gtk_window_set_default_size(GTK_WINDOW(win->window), width, height); |
| 5212 | 248 | gtk_window_set_role(GTK_WINDOW(win->window), "debug"); |
| 249 | gtk_window_set_title(GTK_WINDOW(win->window), _("Debug Window")); | |
| 250 | ||
| 251 | g_signal_connect(G_OBJECT(win->window), "delete_event", | |
| 252 | G_CALLBACK(debug_window_destroy), NULL); | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
253 | g_signal_connect(G_OBJECT(win->window), "configure_event", |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
254 | G_CALLBACK(configure_cb), win); |
| 5212 | 255 | |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
256 | /* Setup the vbox */ |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
257 | vbox = gtk_vbox_new(FALSE, 0); |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
258 | gtk_container_add(GTK_CONTAINER(win->window), vbox); |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
259 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
260 | if (gaim_prefs_get_bool("/gaim/gtk/debug/toolbar")) { |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
261 | /* Setup our top button bar thingie. */ |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
262 | toolbar = gtk_toolbar_new(); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
263 | gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
264 | gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
265 | GTK_ICON_SIZE_SMALL_TOOLBAR); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
266 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
267 | gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
268 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
269 | /* Find button */ |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
270 | gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_FIND, |
| 8953 | 271 | NULL, NULL, G_CALLBACK(find_cb), win, -1); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
272 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
273 | /* Save */ |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
274 | gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_SAVE, |
| 8953 | 275 | NULL, NULL, G_CALLBACK(save_cb), win, -1); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
276 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
277 | /* Clear button */ |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
278 | gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_CLEAR, |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
279 | NULL, NULL, G_CALLBACK(clear_cb), win, -1); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
280 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
281 | gtk_toolbar_insert_space(GTK_TOOLBAR(toolbar), -1); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
282 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
283 | /* Pause */ |
|
6094
e30f0bb2cde9
[gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents:
6009
diff
changeset
|
284 | image = gtk_image_new_from_stock(GAIM_STOCK_PAUSE, GTK_ICON_SIZE_MENU); |
|
e30f0bb2cde9
[gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents:
6009
diff
changeset
|
285 | button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), |
|
e30f0bb2cde9
[gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents:
6009
diff
changeset
|
286 | GTK_TOOLBAR_CHILD_TOGGLEBUTTON, |
|
e30f0bb2cde9
[gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents:
6009
diff
changeset
|
287 | NULL, _("Pause"), NULL, NULL, |
|
e30f0bb2cde9
[gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents:
6009
diff
changeset
|
288 | image, G_CALLBACK(pause_cb), win); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
289 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
290 | /* Timestamps */ |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
291 | button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
292 | GTK_TOOLBAR_CHILD_TOGGLEBUTTON, |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
293 | NULL, _("Timestamps"), NULL, NULL, |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
294 | NULL, G_CALLBACK(timestamps_cb), |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
295 | win); |
| 8953 | 296 | |
| 297 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), | |
|
8002
8e7cad810916
[gaim-migrate @ 8679]
Christian Hammond <chipx86@chipx86.com>
parents:
7229
diff
changeset
|
298 | gaim_prefs_get_bool("/gaim/gtk/debug/timestamps")); |
| 8953 | 299 | |
|
5704
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
300 | win->timestamps_handle = |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
301 | gaim_prefs_connect_callback("/gaim/gtk/debug/timestamps", |
|
3170b0bd2b40
[gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
302 | timestamps_pref_cb, button); |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
303 | } |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
304 | |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
305 | /* Now our scrolled window... */ |
| 5212 | 306 | sw = gtk_scrolled_window_new(NULL, NULL); |
| 307 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
308 | GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
309 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
310 | GTK_SHADOW_IN); |
| 5212 | 311 | |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
312 | /* ... which has a gtkimhtml in it. */ |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
313 | win->text = gtk_imhtml_new(NULL, NULL); |
| 5212 | 314 | |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
315 | gtk_container_add(GTK_CONTAINER(sw), win->text); |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
316 | |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
317 | /* Pack it in... Not like that, sicko. */ |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
318 | gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
319 | |
| 5212 | 320 | gtk_widget_show_all(win->window); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
321 | |
| 5212 | 322 | return win; |
| 323 | } | |
| 324 | ||
|
5625
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
325 | static void |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
326 | debug_enabled_cb(const char *name, GaimPrefType type, gpointer value, |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
327 | gpointer data) |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
328 | { |
| 5636 | 329 | if (value) |
|
5625
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
330 | gaim_gtk_debug_window_show(); |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
331 | else |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
332 | gaim_gtk_debug_window_hide(); |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
333 | } |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
334 | |
| 7150 | 335 | static void |
| 336 | gaim_glib_log_handler(const gchar *domain, GLogLevelFlags flags, | |
| 337 | const gchar *msg, gpointer user_data) | |
| 338 | { | |
| 339 | GaimDebugLevel level; | |
| 340 | char *new_msg = NULL; | |
| 341 | char *new_domain = NULL; | |
| 342 | ||
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
343 | if ((flags & G_LOG_LEVEL_ERROR) == G_LOG_LEVEL_ERROR) |
| 7150 | 344 | level = GAIM_DEBUG_ERROR; |
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
345 | else if ((flags & G_LOG_LEVEL_CRITICAL) == G_LOG_LEVEL_CRITICAL) |
| 7150 | 346 | level = GAIM_DEBUG_FATAL; |
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
347 | else if ((flags & G_LOG_LEVEL_WARNING) == G_LOG_LEVEL_WARNING) |
| 7150 | 348 | level = GAIM_DEBUG_WARNING; |
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
349 | else if ((flags & G_LOG_LEVEL_MESSAGE) == G_LOG_LEVEL_MESSAGE) |
| 7150 | 350 | level = GAIM_DEBUG_INFO; |
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
351 | else if ((flags & G_LOG_LEVEL_INFO) == G_LOG_LEVEL_INFO) |
| 7150 | 352 | level = GAIM_DEBUG_INFO; |
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
353 | else if ((flags & G_LOG_LEVEL_DEBUG) == G_LOG_LEVEL_DEBUG) |
| 7150 | 354 | level = GAIM_DEBUG_MISC; |
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
355 | else |
|
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
356 | { |
|
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
357 | gaim_debug_warning("gtkdebug", |
| 7150 | 358 | "Unknown glib logging level in %d\n", flags); |
| 359 | ||
| 360 | level = GAIM_DEBUG_MISC; /* This will never happen. */ | |
| 361 | } | |
| 362 | ||
| 363 | if (msg != NULL) | |
| 364 | new_msg = gaim_utf8_try_convert(msg); | |
| 365 | ||
| 366 | if (domain != NULL) | |
| 367 | new_domain = gaim_utf8_try_convert(domain); | |
| 368 | ||
|
7152
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
369 | if (new_msg != NULL) |
|
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
370 | { |
|
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
371 | gaim_debug(level, (new_domain != NULL ? new_domain : "g_log"), |
|
112d0e52d04b
[gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents:
7150
diff
changeset
|
372 | "%s\n", new_msg); |
| 7150 | 373 | |
| 374 | g_free(new_msg); | |
| 375 | } | |
| 376 | ||
| 377 | if (new_domain != NULL) | |
| 378 | g_free(new_domain); | |
| 379 | } | |
| 380 | ||
| 381 | #ifdef _WIN32 | |
| 382 | static void | |
| 383 | gaim_glib_dummy_print_handler(const gchar *string) | |
| 384 | { | |
| 385 | } | |
| 386 | #endif | |
| 387 | ||
|
5625
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
388 | void |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
389 | gaim_gtk_debug_init(void) |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
390 | { |
| 5684 | 391 | /* Debug window preferences. */ |
| 392 | /* | |
| 393 | * NOTE: This must be set before prefs are loaded, and the callbacks | |
| 394 | * set after they are loaded, since prefs sets the enabled | |
| 395 | * preference here and that loads the window, which calls the | |
|
8735
01248ea222d3
[gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
8046
diff
changeset
|
396 | * configure event, which overrides the width and height! :P |
| 5684 | 397 | */ |
| 398 | ||
| 399 | gaim_prefs_add_none("/gaim/gtk/debug"); | |
| 400 | gaim_prefs_add_bool("/gaim/gtk/debug/enabled", FALSE); | |
| 401 | gaim_prefs_add_bool("/gaim/gtk/debug/timestamps", FALSE); | |
| 402 | gaim_prefs_add_bool("/gaim/gtk/debug/toolbar", TRUE); | |
| 403 | gaim_prefs_add_int("/gaim/gtk/debug/width", 450); | |
| 404 | gaim_prefs_add_int("/gaim/gtk/debug/height", 250); | |
| 405 | ||
|
5625
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
406 | gaim_prefs_connect_callback("/gaim/gtk/debug/enabled", |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5738
diff
changeset
|
407 | debug_enabled_cb, NULL); |
| 7150 | 408 | |
| 409 | #define REGISTER_G_LOG_HANDLER(name) \ | |
| 410 | g_log_set_handler((name), G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL \ | |
| 411 | | G_LOG_FLAG_RECURSION, \ | |
| 412 | gaim_glib_log_handler, NULL) | |
| 413 | ||
| 414 | /* Register the glib/gtk log handlers. */ | |
| 415 | REGISTER_G_LOG_HANDLER(NULL); | |
| 416 | REGISTER_G_LOG_HANDLER("Gdk"); | |
| 417 | REGISTER_G_LOG_HANDLER("Gtk"); | |
|
7229
0f85b503c030
[gaim-migrate @ 7799]
Herman Bloggs <herman@bluedigits.com>
parents:
7152
diff
changeset
|
418 | REGISTER_G_LOG_HANDLER("GdkPixbuf"); |
| 7150 | 419 | REGISTER_G_LOG_HANDLER("GLib"); |
| 420 | REGISTER_G_LOG_HANDLER("GModule"); | |
| 421 | REGISTER_G_LOG_HANDLER("GLib-GObject"); | |
| 422 | REGISTER_G_LOG_HANDLER("GThread"); | |
| 423 | ||
| 424 | #ifdef _WIN32 | |
| 425 | if (!opt_debug) | |
| 426 | g_set_print_handler(gaim_glib_dummy_print_handler); | |
| 427 | #endif | |
|
5625
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
428 | } |
|
ac8c09def58a
[gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
429 | |
| 5212 | 430 | void |
| 431 | gaim_gtk_debug_window_show(void) | |
| 432 | { | |
| 433 | if (debug_win == NULL) | |
| 434 | debug_win = debug_window_new(); | |
| 435 | ||
| 436 | gtk_widget_show(debug_win->window); | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
437 | |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
438 | gaim_prefs_set_bool("/gaim/gtk/debug/enabled", TRUE); |
| 5212 | 439 | } |
| 440 | ||
| 441 | void | |
| 442 | gaim_gtk_debug_window_hide(void) | |
| 443 | { | |
| 444 | if (debug_win != NULL) { | |
| 445 | gtk_widget_destroy(debug_win->window); | |
| 446 | debug_window_destroy(NULL, NULL, NULL); | |
| 447 | } | |
| 448 | } | |
| 449 | ||
| 450 | static void | |
| 451 | gaim_gtk_debug_print(GaimDebugLevel level, const char *category, | |
| 452 | const char *format, va_list args) | |
| 453 | { | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
454 | gchar *arg_s, *ts_s; |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
455 | gboolean timestamps; |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
456 | |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
457 | timestamps = gaim_prefs_get_bool("/gaim/gtk/debug/timestamps"); |
| 5212 | 458 | |
| 459 | arg_s = g_strdup_vprintf(format, args); | |
| 460 | ||
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
461 | if (category == NULL) { |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
462 | ts_s = g_strdup(""); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
463 | } |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
464 | else { |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
465 | /* |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
466 | * If the category is not NULL, then do timestamps. |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
467 | * This IS right. :) |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
468 | */ |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
469 | if (timestamps) { |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
470 | gchar mdate[64]; |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
471 | time_t mtime = time(NULL); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
472 | |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
473 | strftime(mdate, sizeof(mdate), "%H:%M:%S", localtime(&mtime)); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
474 | |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
475 | ts_s = g_strdup_printf("(%s) ", mdate); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
476 | } |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
477 | else |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
478 | ts_s = g_strdup(""); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
479 | } |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
480 | |
| 5535 | 481 | if (gaim_prefs_get_bool("/gaim/gtk/debug/enabled") && |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
482 | debug_win != NULL && !debug_win->paused) { |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
483 | |
|
5738
69ba274636c3
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
484 | gchar *esc_s, *cat_s, *utf8_s, *s; |
| 5212 | 485 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
486 | if (category == NULL) |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
487 | cat_s = g_strdup(""); |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
488 | else |
|
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
489 | cat_s = g_strdup_printf("<b>%s:</b> ", category); |
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
490 | |
| 5212 | 491 | esc_s = g_markup_escape_text(arg_s, -1); |
| 492 | ||
|
5428
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
493 | s = g_strdup_printf("<font color=\"%s\">%s%s%s</font>", |
|
5788d3bc050a
[gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
494 | debug_fg_colors[level], ts_s, cat_s, esc_s); |
| 5212 | 495 | |
| 496 | g_free(esc_s); | |
| 497 | ||
|
7108
82655fa54acb
[gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
498 | utf8_s = gaim_utf8_try_convert(s); |
|
5738
69ba274636c3
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
499 | g_free(s); |
|
69ba274636c3
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
500 | s = utf8_s; |
|
69ba274636c3
[gaim-migrate @ 6162]
Christian Hammond <chipx86@chipx86.com>
parents:
5704
diff
changeset
|
501 | |
| 5212 | 502 | if (level == GAIM_DEBUG_FATAL) { |
| 503 | gchar *temp = s; | |
| 504 | ||
| 505 | s = g_strdup_printf("<b>%s</b>", temp); | |
| 506 | g_free(temp); | |
| 507 | } | |
| 508 | ||
| 509 | g_free(cat_s); | |
| 510 | ||
|
6982
12f08de92674
[gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents:
6478
diff
changeset
|
511 | gtk_imhtml_append_text(GTK_IMHTML(debug_win->text), s, 0); |
| 5212 | 512 | |
| 513 | g_free(s); | |
| 514 | } | |
| 515 | ||
|
5214
28f1d199d664
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
516 | if (opt_debug) { |
|
28f1d199d664
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
517 | if (category == NULL) |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
518 | g_print("%s%s", ts_s, arg_s); |
|
5214
28f1d199d664
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
519 | else |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
520 | g_print("%s%s: %s", ts_s, category, arg_s); |
|
5214
28f1d199d664
[gaim-migrate @ 5584]
Christian Hammond <chipx86@chipx86.com>
parents:
5212
diff
changeset
|
521 | } |
| 5212 | 522 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5430
diff
changeset
|
523 | g_free(ts_s); |
| 5212 | 524 | g_free(arg_s); |
| 525 | } | |
| 526 | ||
| 527 | static GaimDebugUiOps ops = | |
| 528 | { | |
| 529 | gaim_gtk_debug_print | |
| 530 | }; | |
| 531 | ||
| 532 | GaimDebugUiOps * | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
533 | gaim_gtk_debug_get_ui_ops(void) |
| 5212 | 534 | { |
| 535 | return &ops; | |
| 536 | } |