src/gtkdebug.c

Tue, 21 Mar 2006 01:15:50 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Tue, 21 Mar 2006 01:15:50 +0000
changeset 13539
8036a635a316
parent 13281
3558cb15ebb9
child 13664
fdc3b588f248
permissions
-rw-r--r--

[gaim-migrate @ 15915]
Change "Clear formatting" to "Reset formatting". This is more clear (no
pun intended), and helps to remove ambiguity with the "Clear scrollback"
option in the Conversation menu. I've also noted the mnemonic on this entry
in the right-click menu in conversations.

5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file gtkdebug.c GTK+ Debug API
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 * @ingroup gtkui
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8002
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8002
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8002
diff changeset
9 * source distribution.
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
10 *
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9709
diff changeset
25 #include "internal.h"
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9709
diff changeset
26 #include "gtkgaim.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5818
diff changeset
27
9480
b4d46aa1be7d [gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents: 8953
diff changeset
28 #include "notify.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5818
diff changeset
29 #include "prefs.h"
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
30 #include "request.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5818
diff changeset
31 #include "util.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5818
diff changeset
32
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 #include "gtkdebug.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9504
diff changeset
34 #include "gtkdialogs.h"
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 #include "gtkimhtml.h"
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
36 #include "gtkutils.h"
10297
b36800725b7a [gaim-migrate @ 11480]
Evan Schoenberg <evands@pidgin.im>
parents: 10175
diff changeset
37 #include "gtkstock.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5818
diff changeset
38
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
39 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
40 # include <regex.h>
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
41 #endif /* HAVE_REGEX_H */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
42
11473
38b35dc600ce [gaim-migrate @ 13714]
Gary Kramlich <grim@reaperworld.com>
parents: 11450
diff changeset
43 #include <gdk/gdkkeysyms.h>
38b35dc600ce [gaim-migrate @ 13714]
Gary Kramlich <grim@reaperworld.com>
parents: 11450
diff changeset
44
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
45 typedef struct
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46 {
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 GtkWidget *window;
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
48 GtkWidget *text;
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
49
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
50 GtkListStore *store;
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
51
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
52 gboolean timestamps;
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
53 gboolean paused;
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
55 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
56 GtkWidget *filter;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
57 GtkWidget *expression;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
58
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
59 gboolean invert;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
60 gboolean highlight;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
61
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
62 guint timer;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
63
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
64 regex_t regex;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
65 #else
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
66 GtkWidget *find;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
67 #endif /* HAVE_REGEX_H */
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68 } DebugWindow;
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 static char debug_fg_colors[][8] = {
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 "#000000", /**< All debug levels. */
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
72 "#666666", /**< Misc. */
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73 "#000000", /**< Information. */
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
74 "#660000", /**< Warnings. */
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
75 "#FF0000", /**< Errors. */
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76 "#FF0000", /**< Fatal errors. */
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77 };
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
79 static DebugWindow *debug_win = NULL;
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
81 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
82 static void regex_filter_all(DebugWindow *win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
83 static void regex_show_all(DebugWindow *win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
84 #endif /* HAVE_REGEX_H */
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
85
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
86 static gint
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
87 debug_window_destroy(GtkWidget *w, GdkEvent *event, void *unused)
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88 {
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
89 gaim_prefs_disconnect_by_handle(gaim_gtk_debug_get_handle());
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
90
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
91 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
92 if(debug_win->timer != 0) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
93 const gchar *text;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
94
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
95 g_source_remove(debug_win->timer);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
96
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
97 text = gtk_entry_get_text(GTK_ENTRY(debug_win->expression));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
98 gaim_prefs_set_string("/gaim/gtk/debug/regex", text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
99 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
100
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
101 regfree(&debug_win->regex);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
102 #endif
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
103
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
104 /* If the "Save Log" dialog is open then close it */
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
105 gaim_request_close_with_handle(debug_win);
5704
3170b0bd2b40 [gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents: 5684
diff changeset
106
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
107 g_free(debug_win);
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
108 debug_win = NULL;
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
109
9480
b4d46aa1be7d [gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents: 8953
diff changeset
110 gaim_prefs_set_bool("/gaim/gtk/debug/enabled", FALSE);
b4d46aa1be7d [gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents: 8953
diff changeset
111
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
112 return FALSE;
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
113 }
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
114
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
115 static gboolean
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5738
diff changeset
116 configure_cb(GtkWidget *w, GdkEventConfigure *event, DebugWindow *win)
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
117 {
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
118 if (GTK_WIDGET_VISIBLE(w)) {
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
119 gaim_prefs_set_int("/gaim/gtk/debug/width", event->width);
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
120 gaim_prefs_set_int("/gaim/gtk/debug/height", event->height);
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
121 }
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
122
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
123 return FALSE;
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
124 }
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
125
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
126 #ifndef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
127 struct _find {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
128 DebugWindow *window;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
129 GtkWidget *entry;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
130 };
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
131
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
132 static void
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9480
diff changeset
133 do_find_cb(GtkWidget *widget, gint response, struct _find *f)
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
134 {
9482
8ade66642b6e [gaim-migrate @ 10307]
Mark Doliner <markdoliner@pidgin.im>
parents: 9480
diff changeset
135 switch (response) {
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
136 case GTK_RESPONSE_OK:
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
137 gtk_imhtml_search_find(GTK_IMHTML(f->window->text),
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
138 gtk_entry_get_text(GTK_ENTRY(f->entry)));
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
139 break;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
140
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
141 case GTK_RESPONSE_DELETE_EVENT:
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
142 case GTK_RESPONSE_CLOSE:
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
143 gtk_imhtml_search_clear(GTK_IMHTML(f->window->text));
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
144 gtk_widget_destroy(f->window->find);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
145 f->window->find = NULL;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
146 g_free(f);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
147 break;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
148 }
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
149 }
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
150
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
151 static void
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
152 find_cb(GtkWidget *w, DebugWindow *win)
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
153 {
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
154 GtkWidget *hbox, *img, *label;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
155 struct _find *f;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
156
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
157 if(win->find)
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
158 {
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
159 gtk_window_present(GTK_WINDOW(win->find));
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
160 return;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
161 }
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
162
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
163 f = g_malloc(sizeof(struct _find));
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
164 f->window = win;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
165 win->find = gtk_dialog_new_with_buttons(_("Find"),
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
166 GTK_WINDOW(win->window), GTK_DIALOG_DESTROY_WITH_PARENT,
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
167 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
168 GTK_STOCK_FIND, GTK_RESPONSE_OK, NULL);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
169 gtk_dialog_set_default_response(GTK_DIALOG(win->find),
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
170 GTK_RESPONSE_OK);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
171 g_signal_connect(G_OBJECT(win->find), "response",
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
172 G_CALLBACK(do_find_cb), f);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
173
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11056
diff changeset
174 gtk_container_set_border_width(GTK_CONTAINER(win->find), GAIM_HIG_BOX_SPACE);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
175 gtk_window_set_resizable(GTK_WINDOW(win->find), FALSE);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
176 gtk_dialog_set_has_separator(GTK_DIALOG(win->find), FALSE);
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11056
diff changeset
177 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(win->find)->vbox), GAIM_HIG_BORDER);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
178 gtk_container_set_border_width(
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11056
diff changeset
179 GTK_CONTAINER(GTK_DIALOG(win->find)->vbox), GAIM_HIG_BOX_SPACE);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
180
11243
ee8dccc558e1 [gaim-migrate @ 13408]
Mads Chr. Olesen <mads@mchro.dk>
parents: 11056
diff changeset
181 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BORDER);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
182 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(win->find)->vbox),
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
183 hbox);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
184 img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION,
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
185 GTK_ICON_SIZE_DIALOG);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
186 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
187
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
188 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
189 gtk_dialog_set_response_sensitive(GTK_DIALOG(win->find),
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
190 GTK_RESPONSE_OK, FALSE);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
191
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
192 label = gtk_label_new(NULL);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
193 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Search for:"));
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
194 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
195
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
196 f->entry = gtk_entry_new();
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
197 gtk_entry_set_activates_default(GTK_ENTRY(f->entry), TRUE);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
198 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(f->entry));
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
199 g_signal_connect(G_OBJECT(f->entry), "changed",
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
200 G_CALLBACK(gaim_gtk_set_sensitive_if_input),
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
201 win->find);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
202 gtk_box_pack_start(GTK_BOX(hbox), f->entry, FALSE, FALSE, 0);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
203
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
204 gtk_widget_show_all(win->find);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
205 gtk_widget_grab_focus(f->entry);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
206 }
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
207 #endif /* HAVE_REGEX_H */
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
208
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
209 static void
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
210 save_writefile_cb(void *user_data, const char *filename)
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
211 {
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
212 DebugWindow *win = (DebugWindow *)user_data;
9489
3ee8fdcdbac9 [gaim-migrate @ 10314]
Mark Doliner <markdoliner@pidgin.im>
parents: 9486
diff changeset
213 FILE *fp;
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
214 char *tmp;
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
215
10589
4e10236e06d4 [gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents: 10448
diff changeset
216 if ((fp = g_fopen(filename, "w+")) == NULL) {
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
217 gaim_notify_error(win, NULL, _("Unable to open file."), NULL);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
218 return;
9480
b4d46aa1be7d [gaim-migrate @ 10305]
Mark Doliner <markdoliner@pidgin.im>
parents: 8953
diff changeset
219 }
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
220
9489
3ee8fdcdbac9 [gaim-migrate @ 10314]
Mark Doliner <markdoliner@pidgin.im>
parents: 9486
diff changeset
221 tmp = gtk_imhtml_get_text(GTK_IMHTML(win->text), NULL, NULL);
13120
c25222322810 [gaim-migrate @ 15481]
Richard Laager <rlaager@pidgin.im>
parents: 13105
diff changeset
222 fprintf(fp, "Gaim Debug Log : %s\n", gaim_date_format_full(NULL));
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
223 fprintf(fp, "%s", tmp);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
224 g_free(tmp);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
225
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
226 fclose(fp);
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
227 }
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
228
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
229 static void
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
230 save_cb(GtkWidget *w, DebugWindow *win)
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
231 {
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
232 gaim_request_file(win, _("Save Debug Log"), "gaim-debug.log", TRUE,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9501
diff changeset
233 G_CALLBACK(save_writefile_cb), NULL, win);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
234 }
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
235
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
236 static void
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5738
diff changeset
237 clear_cb(GtkWidget *w, DebugWindow *win)
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
238 {
6280
6d78edfe0ef2 [gaim-migrate @ 6779]
Christian Hammond <chipx86@chipx86.com>
parents: 6094
diff changeset
239 gtk_imhtml_clear(GTK_IMHTML(win->text));
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
240
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
241 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
242 gtk_list_store_clear(win->store);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
243 #endif /* HAVE_REGEX_H */
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
244 }
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
245
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
246 static void
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5738
diff changeset
247 pause_cb(GtkWidget *w, DebugWindow *win)
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
248 {
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
249 win->paused = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
250
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
251 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
252 if(!win->paused) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
253 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter)))
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
254 regex_filter_all(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
255 else
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
256 regex_show_all(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
257 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
258 #endif /* HAVE_REGEX_H */
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
259 }
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
260
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
261 static void
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5738
diff changeset
262 timestamps_cb(GtkWidget *w, DebugWindow *win)
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
263 {
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
264 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
265
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
266 gaim_prefs_set_bool("/core/debug/timestamps", win->timestamps);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
267 }
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
268
5704
3170b0bd2b40 [gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents: 5684
diff changeset
269 static void
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
270 timestamps_pref_cb(const char *name, GaimPrefType type,
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
271 gconstpointer value, gpointer data)
5704
3170b0bd2b40 [gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents: 5684
diff changeset
272 {
6478
2c3fe7c8659b [gaim-migrate @ 6991]
Robert McQueen <robot101@debian.org>
parents: 6371
diff changeset
273 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
274 }
3170b0bd2b40 [gaim-migrate @ 6125]
Christian Hammond <chipx86@chipx86.com>
parents: 5684
diff changeset
275
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
276 /******************************************************************************
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
277 * regex stuff
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
278 *****************************************************************************/
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
279 #ifdef HAVE_REGEX_H
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
280 static void
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
281 regex_clear_color(GtkWidget *w) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
282 gtk_widget_modify_base(w, GTK_STATE_NORMAL, NULL);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
283 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
284
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
285 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
286 regex_change_color(GtkWidget *w, guint16 r, guint16 g, guint16 b) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
287 GdkColor color;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
288
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
289 color.red = r;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
290 color.green = g;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
291 color.blue = b;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
292
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
293 gtk_widget_modify_base(w, GTK_STATE_NORMAL, &color);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
294 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
295
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
296 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
297 regex_highlight_clear(DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
298 GtkIMHtml *imhtml = GTK_IMHTML(win->text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
299 GtkTextIter s, e;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
300
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
301 gtk_text_buffer_get_start_iter(imhtml->text_buffer, &s);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
302 gtk_text_buffer_get_end_iter(imhtml->text_buffer, &e);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
303 gtk_text_buffer_remove_tag_by_name(imhtml->text_buffer, "regex", &s, &e);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
304 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
305
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
306 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
307 regex_match(DebugWindow *win, const gchar *text) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
308 GtkIMHtml *imhtml = GTK_IMHTML(win->text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
309 regmatch_t matches[4]; /* adjust if necessary */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
310 size_t n_matches = sizeof(matches) / sizeof(matches[0]);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
311 gchar *plaintext;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
312 gint inverted;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
313
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
314 if(!text)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
315 return;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
316
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
317 inverted = (win->invert) ? REG_NOMATCH : 0;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
318
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
319 /* I don't like having to do this, but we need it for highlighting. Plus
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
320 * it makes the ^ and $ operators work :)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
321 */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
322 plaintext = gaim_markup_strip_html(text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
323
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
324 /* we do a first pass to see if it matches at all. If it does we append
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
325 * it, and work out the offsets to highlight.
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
326 */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
327 if(regexec(&win->regex, plaintext, n_matches, matches, 0) == inverted) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
328 GtkTextIter ins;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
329 gchar *p = plaintext;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
330 gint i, offset = 0;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
331
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
332 gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &ins,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
333 gtk_text_buffer_get_insert(imhtml->text_buffer));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
334 i = gtk_text_iter_get_offset(&ins);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
335
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
336 gtk_imhtml_append_text(imhtml, text, 0);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
337
11312
73ee18523c44 [gaim-migrate @ 13512]
Gary Kramlich <grim@reaperworld.com>
parents: 11311
diff changeset
338 /* If we're not highlighting or the expression is inverted, we're
11311
0deea6aaea65 [gaim-migrate @ 13511]
Gary Kramlich <grim@reaperworld.com>
parents: 11310
diff changeset
339 * done and move on.
11310
18461cc48950 [gaim-migrate @ 13510]
Gary Kramlich <grim@reaperworld.com>
parents: 11262
diff changeset
340 */
18461cc48950 [gaim-migrate @ 13510]
Gary Kramlich <grim@reaperworld.com>
parents: 11262
diff changeset
341 if(!win->highlight || inverted == REG_NOMATCH) {
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
342 g_free(plaintext);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
343 return;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
344 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
345
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
346 /* we use a do-while to highlight the first match, and then continue
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
347 * if necessary...
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
348 */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
349 do {
12231
0f0dfa2f4d64 [gaim-migrate @ 14533]
Richard Laager <rlaager@pidgin.im>
parents: 11473
diff changeset
350 size_t m;
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
351
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
352 for(m = 0; m < n_matches; m++) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
353 GtkTextIter ms, me;
11310
18461cc48950 [gaim-migrate @ 13510]
Gary Kramlich <grim@reaperworld.com>
parents: 11262
diff changeset
354
18461cc48950 [gaim-migrate @ 13510]
Gary Kramlich <grim@reaperworld.com>
parents: 11262
diff changeset
355 if(matches[m].rm_eo == -1)
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
356 break;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
357
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
358 i += offset;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
359
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
360 gtk_text_buffer_get_iter_at_offset(imhtml->text_buffer, &ms,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
361 i + matches[m].rm_so);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
362 gtk_text_buffer_get_iter_at_offset(imhtml->text_buffer, &me,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
363 i + matches[m].rm_eo);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
364 gtk_text_buffer_apply_tag_by_name(imhtml->text_buffer, "regex",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
365 &ms, &me);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
366 offset = matches[m].rm_eo;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
367 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
368
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
369 p += offset;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
370 } while(regexec(&win->regex, p, n_matches, matches, REG_NOTBOL) == inverted);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
371 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
372
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
373 g_free(plaintext);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
374 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
375
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
376 static gboolean
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
377 regex_filter_all_cb(GtkTreeModel *m, GtkTreePath *p, GtkTreeIter *iter,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
378 gpointer data)
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
379 {
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
380 DebugWindow *win = (DebugWindow *)data;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
381 gchar *text;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
382
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
383 gtk_tree_model_get(m, iter, 0, &text, -1);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
384
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
385 regex_match(win, text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
386
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
387 g_free(text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
388
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
389 return FALSE;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
390 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
391
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
392 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
393 regex_filter_all(DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
394 gtk_imhtml_clear(GTK_IMHTML(win->text));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
395
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
396 if(win->highlight)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
397 regex_highlight_clear(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
398
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
399 gtk_tree_model_foreach(GTK_TREE_MODEL(win->store), regex_filter_all_cb,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
400 win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
401 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
402
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
403 static gboolean
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
404 regex_show_all_cb(GtkTreeModel *m, GtkTreePath *p, GtkTreeIter *iter,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
405 gpointer data)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
406 {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
407 DebugWindow *win = (DebugWindow *)data;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
408 gchar *text;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
409
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
410 gtk_tree_model_get(m, iter, 0, &text, -1);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
411 gtk_imhtml_append_text(GTK_IMHTML(win->text), text, 0);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
412 g_free(text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
413
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
414 return FALSE;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
415 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
416
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
417 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
418 regex_show_all(DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
419 gtk_imhtml_clear(GTK_IMHTML(win->text));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
420
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
421 if(win->highlight)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
422 regex_highlight_clear(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
423
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
424 gtk_tree_model_foreach(GTK_TREE_MODEL(win->store), regex_show_all_cb,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
425 win);
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
426 }
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
427
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
428 static void
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
429 regex_compile(DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
430 const gchar *text;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
431
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
432 text = gtk_entry_get_text(GTK_ENTRY(win->expression));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
433
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
434 if(text == NULL || *text == '\0') {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
435 regex_clear_color(win->expression);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
436 gtk_widget_set_sensitive(win->filter, FALSE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
437 return;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
438 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
439
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
440 regfree(&win->regex);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
441
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
442 if(regcomp(&win->regex, text, REG_EXTENDED | REG_ICASE) != 0) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
443 /* failed to compile */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
444 regex_change_color(win->expression, 0xFFFF, 0xAFFF, 0xAFFF);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
445 gtk_widget_set_sensitive(win->filter, FALSE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
446 } else {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
447 /* compiled successfully */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
448 regex_change_color(win->expression, 0xAFFF, 0xFFFF, 0xAFFF);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
449 gtk_widget_set_sensitive(win->filter, TRUE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
450 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
451
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
452 /* we check if the filter is on in case it was only of the options that
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
453 * got changed, and not the expression.
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
454 */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
455 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter)))
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
456 regex_filter_all(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
457 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
458
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
459 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
460 regex_pref_filter_cb(const gchar *name, GaimPrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
461 gconstpointer val, gpointer data)
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
462 {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
463 DebugWindow *win = (DebugWindow *)data;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
464 gboolean active = GPOINTER_TO_INT(val), current;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
465
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
466 if(!win || !win->window)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
467 return;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
468
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
469 current = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
470 if(active != current)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
471 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->filter), active);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
472 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
473
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
474 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
475 regex_pref_expression_cb(const gchar *name, GaimPrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
476 gconstpointer val, gpointer data)
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
477 {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
478 DebugWindow *win = (DebugWindow *)data;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
479 const gchar *exp = (const gchar *)val;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
480
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
481 gtk_entry_set_text(GTK_ENTRY(win->expression), exp);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
482 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
483
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
484 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
485 regex_pref_invert_cb(const gchar *name, GaimPrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
486 gconstpointer val, gpointer data)
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
487 {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
488 DebugWindow *win = (DebugWindow *)data;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
489 gboolean active = GPOINTER_TO_INT(val);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
490
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
491 win->invert = active;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
492
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
493 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter)))
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
494 regex_filter_all(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
495 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
496
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
497 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
498 regex_pref_highlight_cb(const gchar *name, GaimPrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
499 gconstpointer val, gpointer data)
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
500 {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
501 DebugWindow *win = (DebugWindow *)data;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
502 gboolean active = GPOINTER_TO_INT(val);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
503
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
504 win->highlight = active;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
505
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
506 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter)))
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
507 regex_filter_all(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
508 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
509
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
510 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
511 regex_row_changed_cb(GtkTreeModel *model, GtkTreePath *path,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
512 GtkTreeIter *iter, DebugWindow *win)
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
513 {
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
514 gchar *text;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
515
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
516 if(!win || !win->window)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
517 return;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
518
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
519 /* If the debug window is paused, we just return since it's in the store.
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
520 * We don't call regex_match because it doesn't make sense to check the
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
521 * string if it's paused. When we unpause we clear the imhtml and
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
522 * reiterate over the store to handle matches that were outputted when
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
523 * we were paused.
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
524 */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
525 if(win->paused)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
526 return;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
527
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
528 gtk_tree_model_get(model, iter, 0, &text, -1);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
529
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
530 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter))) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
531 regex_match(win, text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
532 } else {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
533 gtk_imhtml_append_text(GTK_IMHTML(win->text), text, 0);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
534 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
535
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
536 g_free(text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
537 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
538
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
539 static gboolean
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
540 regex_timer_cb(DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
541 const gchar *text;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
542
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
543 text = gtk_entry_get_text(GTK_ENTRY(win->expression));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
544 gaim_prefs_set_string("/gaim/gtk/debug/regex", text);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
545
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
546 win->timer = 0;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
547
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
548 return FALSE;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
549 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
550
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
551 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
552 regex_changed_cb(GtkWidget *w, DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
553 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter))) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
554 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->filter),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
555 FALSE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
556 }
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
557
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
558 if(win->timer == 0)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
559 win->timer = gaim_timeout_add(5000, (GSourceFunc)regex_timer_cb, win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
560
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
561 regex_compile(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
562 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
563
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
564 static void
11450
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
565 regex_key_release_cb(GtkWidget *w, GdkEventKey *e, DebugWindow *win) {
11473
38b35dc600ce [gaim-migrate @ 13714]
Gary Kramlich <grim@reaperworld.com>
parents: 11450
diff changeset
566 if(e->keyval == GDK_Return &&
11450
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
567 GTK_WIDGET_IS_SENSITIVE(win->filter) &&
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
568 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter)))
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
569 {
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
570 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->filter), TRUE);
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
571 }
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
572 }
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
573
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
574 static void
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
575 regex_menu_cb(GtkWidget *item, const gchar *pref) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
576 gboolean active;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
577
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
578 active = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
579
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
580 gaim_prefs_set_bool(pref, active);
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
581 }
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
582
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
583 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
584 regex_popup_cb(GtkEntry *entry, GtkWidget *menu, DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
585 gaim_separator(menu);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
586 gaim_new_check_item(menu, _("Invert"),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
587 G_CALLBACK(regex_menu_cb),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
588 "/gaim/gtk/debug/invert", win->invert);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
589 gaim_new_check_item(menu, _("Highlight matches"),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
590 G_CALLBACK(regex_menu_cb),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
591 "/gaim/gtk/debug/highlight", win->highlight);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
592 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
593
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
594 static void
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
595 regex_filter_toggled_cb(GtkToggleButton *button, DebugWindow *win) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
596 gboolean active;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
597
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
598 active = gtk_toggle_button_get_active(button);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
599
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
600 gaim_prefs_set_bool("/gaim/gtk/debug/filter", active);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
601
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
602 if(!GTK_IS_IMHTML(win->text))
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
603 return;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
604
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
605 if(active)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
606 regex_filter_all(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
607 else
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
608 regex_show_all(win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
609 }
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
610
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
611 #endif /* HAVE_REGEX_H */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
612
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
613 static DebugWindow *
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
614 debug_window_new(void)
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
615 {
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
616 DebugWindow *win;
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
617 GtkWidget *vbox;
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
618 GtkWidget *toolbar;
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 10087
diff changeset
619 GtkWidget *frame;
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
620 GtkWidget *button;
6094
e30f0bb2cde9 [gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents: 6009
diff changeset
621 GtkWidget *image;
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
622 gint width, height;
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
623 void *handle;
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
624
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
625 win = g_new0(DebugWindow, 1);
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
626
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
627 width = gaim_prefs_get_int("/gaim/gtk/debug/width");
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
628 height = gaim_prefs_get_int("/gaim/gtk/debug/height");
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
629
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
630 GAIM_DIALOG(win->window);
10309
073906008cb2 [gaim-migrate @ 11501]
Mark Doliner <markdoliner@pidgin.im>
parents: 10307
diff changeset
631 gaim_debug_info("gtkdebug", "Setting dimensions to %d, %d\n",
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
632 width, height);
5642
d7b8b62542a3 [gaim-migrate @ 6056]
Christian Hammond <chipx86@chipx86.com>
parents: 5636
diff changeset
633
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
634 gtk_window_set_default_size(GTK_WINDOW(win->window), width, height);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
635 gtk_window_set_role(GTK_WINDOW(win->window), "debug");
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
636 gtk_window_set_title(GTK_WINDOW(win->window), _("Debug Window"));
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
637
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
638 g_signal_connect(G_OBJECT(win->window), "delete_event",
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
639 G_CALLBACK(debug_window_destroy), NULL);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
640 g_signal_connect(G_OBJECT(win->window), "configure_event",
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
641 G_CALLBACK(configure_cb), win);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
642
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
643 handle = gaim_gtk_debug_get_handle();
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
644
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
645 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
646 /* the list store for all the messages */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
647 win->store = gtk_list_store_new(1, G_TYPE_STRING);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
648
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
649 /* row-changed gets called when we do gtk_list_store_set, and row-inserted
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
650 * gets called with gtk_list_store_append, which is a
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
651 * completely empty row. So we just ignore row-inserted, and deal with row
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
652 * changed. -Gary
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
653 */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
654 g_signal_connect(G_OBJECT(win->store), "row-changed",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
655 G_CALLBACK(regex_row_changed_cb), win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
656
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
657 #endif /* HAVE_REGEX_H */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
658
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
659 /* Setup the vbox */
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
660 vbox = gtk_vbox_new(FALSE, 0);
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
661 gtk_container_add(GTK_CONTAINER(win->window), vbox);
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
662
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
663 if (gaim_prefs_get_bool("/gaim/gtk/debug/toolbar")) {
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
664 /* Setup our top button bar thingie. */
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
665 toolbar = gtk_toolbar_new();
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
666 gtk_toolbar_set_tooltips(GTK_TOOLBAR(toolbar), TRUE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
667
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
668 gtk_toolbar_set_style(GTK_TOOLBAR(toolbar),
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
669 GTK_TOOLBAR_BOTH_HORIZ);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
670 gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
671 GTK_ICON_SIZE_SMALL_TOOLBAR);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
672
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
673 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
674
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
675 #ifndef HAVE_REGEX_H
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
676 /* Find button */
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
677 gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_FIND,
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
678 _("Find"), NULL, G_CALLBACK(find_cb),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
679 win, -1);
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
680 #endif /* HAVE_REGEX_H */
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
681
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
682 /* Save */
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
683 gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_SAVE,
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
684 _("Save"), NULL, G_CALLBACK(save_cb),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
685 win, -1);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
686
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
687 /* Clear button */
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
688 gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_CLEAR,
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
689 _("Clear"), NULL, G_CALLBACK(clear_cb),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
690 win, -1);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
691
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
692 gtk_toolbar_insert_space(GTK_TOOLBAR(toolbar), -1);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
693
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
694 /* Pause */
6094
e30f0bb2cde9 [gaim-migrate @ 6553]
Christian Hammond <chipx86@chipx86.com>
parents: 6009
diff changeset
695 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
696 button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
697 GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
698 NULL, _("Pause"), _("Pause"),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
699 NULL, image,
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
700 G_CALLBACK(pause_cb), win);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
701
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
702 /* Timestamps */
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
703 button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
704 GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
705 NULL, _("Timestamps"),
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
706 _("Timestamps"), NULL, NULL,
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
707 G_CALLBACK(timestamps_cb),
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
708 win);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
709
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
710 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
711 gaim_prefs_get_bool("/core/debug/timestamps"));
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
712
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
713 gaim_prefs_connect_callback(handle, "/core/debug/timestamps",
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
714 timestamps_pref_cb, button);
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
715
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
716 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
717 /* regex stuff */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
718 gtk_toolbar_insert_space(GTK_TOOLBAR(toolbar), -1);
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
719
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
720 /* regex toggle button */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
721 win->filter =
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
722 gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
723 GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
724 NULL, _("Filter"), _("Filter"),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
725 NULL, NULL,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
726 G_CALLBACK(regex_filter_toggled_cb),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
727 win);
11450
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
728 /* we purposely disable the toggle button here in case
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
729 * /gaim/gtk/debug/expression has an empty string. If it does not have
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
730 * an empty string, the change signal will get called and make the
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
731 * toggle button sensitive.
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
732 */
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
733 gtk_widget_set_sensitive(win->filter, FALSE);
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
734 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->filter),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
735 gaim_prefs_get_bool("/gaim/gtk/debug/filter"));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
736 gaim_prefs_connect_callback(handle, "/gaim/gtk/debug/filter",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
737 regex_pref_filter_cb, win);
8953
6705ad4595b0 [gaim-migrate @ 9726]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8735
diff changeset
738
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
739 /* regex entry */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
740 win->expression = gtk_entry_new();
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
741 gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
742 GTK_TOOLBAR_CHILD_WIDGET, win->expression,
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
743 NULL, _("Right click for more options."),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
744 NULL, NULL, NULL, NULL);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
745 /* this needs to be before the text is set from the pref if we want it
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
746 * to colorize a stored expression.
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
747 */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
748 g_signal_connect(G_OBJECT(win->expression), "changed",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
749 G_CALLBACK(regex_changed_cb), win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
750 gtk_entry_set_text(GTK_ENTRY(win->expression),
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
751 gaim_prefs_get_string("/gaim/gtk/debug/regex"));
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
752 g_signal_connect(G_OBJECT(win->expression), "populate-popup",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
753 G_CALLBACK(regex_popup_cb), win);
11450
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
754 g_signal_connect(G_OBJECT(win->expression), "key-release-event",
52e566659430 [gaim-migrate @ 13689]
Gary Kramlich <grim@reaperworld.com>
parents: 11312
diff changeset
755 G_CALLBACK(regex_key_release_cb), win);
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
756 gaim_prefs_connect_callback(handle, "/gaim/gtk/debug/regex",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
757 regex_pref_expression_cb, win);
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
758
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
759 /* connect the rest of our pref callbacks */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
760 win->invert = gaim_prefs_get_bool("/gaim/gtk/debug/invert");
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
761 gaim_prefs_connect_callback(handle, "/gaim/gtk/debug/invert",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
762 regex_pref_invert_cb, win);
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
763
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
764 win->highlight = gaim_prefs_get_bool("/gaim/gtk/debug/highlight");
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
765 gaim_prefs_connect_callback(handle, "/gaim/gtk/debug/highlight",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
766 regex_pref_highlight_cb, win);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
767
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
768 #endif /* HAVE_REGEX_H */
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
769 }
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
770
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 10087
diff changeset
771 /* Add the gtkimhtml */
13281
3558cb15ebb9 [gaim-migrate @ 15646]
Richard Laager <rlaager@pidgin.im>
parents: 13120
diff changeset
772 frame = gaim_gtk_create_imhtml(FALSE, &win->text, NULL, NULL);
10739
9c7926312a4d [gaim-migrate @ 12341]
Mark Doliner <markdoliner@pidgin.im>
parents: 10589
diff changeset
773 gtk_imhtml_set_format_functions(GTK_IMHTML(win->text),
9c7926312a4d [gaim-migrate @ 12341]
Mark Doliner <markdoliner@pidgin.im>
parents: 10589
diff changeset
774 GTK_IMHTML_ALL ^ GTK_IMHTML_SMILEY ^ GTK_IMHTML_IMAGE);
10175
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 10087
diff changeset
775 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
2bf5ed145e8a [gaim-migrate @ 11290]
Mark Doliner <markdoliner@pidgin.im>
parents: 10087
diff changeset
776 gtk_widget_show(frame);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
777
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
778 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
779 /* add the tag for regex highlighting */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
780 gtk_text_buffer_create_tag(GTK_IMHTML(win->text)->text_buffer, "regex",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
781 "background", "#FFAFAF",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
782 "weight", "bold",
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
783 NULL);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
784 #endif /* HAVE_REGEX_H */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
785
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
786 gtk_widget_show_all(win->window);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
787
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
788 return win;
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
789 }
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
790
5625
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
791 static void
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
792 debug_enabled_cb(const char *name, GaimPrefType type,
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12231
diff changeset
793 gconstpointer value, gpointer data)
5625
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
794 {
5636
e4f0898ba2cd [gaim-migrate @ 6043]
Nathan Walp <nwalp@pidgin.im>
parents: 5631
diff changeset
795 if (value)
5625
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
796 gaim_gtk_debug_window_show();
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
797 else
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
798 gaim_gtk_debug_window_hide();
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
799 }
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
800
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
801 static void
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
802 gaim_glib_log_handler(const gchar *domain, GLogLevelFlags flags,
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
803 const gchar *msg, gpointer user_data)
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
804 {
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
805 GaimDebugLevel level;
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
806 char *new_msg = NULL;
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
807 char *new_domain = NULL;
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
808
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
809 if ((flags & G_LOG_LEVEL_ERROR) == G_LOG_LEVEL_ERROR)
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
810 level = GAIM_DEBUG_ERROR;
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
811 else if ((flags & G_LOG_LEVEL_CRITICAL) == G_LOG_LEVEL_CRITICAL)
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
812 level = GAIM_DEBUG_FATAL;
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
813 else if ((flags & G_LOG_LEVEL_WARNING) == G_LOG_LEVEL_WARNING)
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
814 level = GAIM_DEBUG_WARNING;
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
815 else if ((flags & G_LOG_LEVEL_MESSAGE) == G_LOG_LEVEL_MESSAGE)
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
816 level = GAIM_DEBUG_INFO;
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
817 else if ((flags & G_LOG_LEVEL_INFO) == G_LOG_LEVEL_INFO)
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
818 level = GAIM_DEBUG_INFO;
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
819 else if ((flags & G_LOG_LEVEL_DEBUG) == G_LOG_LEVEL_DEBUG)
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
820 level = GAIM_DEBUG_MISC;
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
821 else
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
822 {
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
823 gaim_debug_warning("gtkdebug",
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
824 "Unknown glib logging level in %d\n", flags);
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
825
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
826 level = GAIM_DEBUG_MISC; /* This will never happen. */
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
827 }
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
828
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
829 if (msg != NULL)
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
830 new_msg = gaim_utf8_try_convert(msg);
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
831
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
832 if (domain != NULL)
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
833 new_domain = gaim_utf8_try_convert(domain);
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
834
7152
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
835 if (new_msg != NULL)
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
836 {
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
837 gaim_debug(level, (new_domain != NULL ? new_domain : "g_log"),
112d0e52d04b [gaim-migrate @ 7719]
Christian Hammond <chipx86@chipx86.com>
parents: 7150
diff changeset
838 "%s\n", new_msg);
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
839
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
840 g_free(new_msg);
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
841 }
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
842
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
843 if (new_domain != NULL)
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
844 g_free(new_domain);
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
845 }
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
846
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
847 #ifdef _WIN32
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
848 static void
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
849 gaim_glib_dummy_print_handler(const gchar *string)
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
850 {
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
851 }
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
852 #endif
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
853
5625
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
854 void
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
855 gaim_gtk_debug_init(void)
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
856 {
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
857 /* Debug window preferences. */
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
858 /*
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
859 * NOTE: This must be set before prefs are loaded, and the callbacks
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
860 * set after they are loaded, since prefs sets the enabled
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
861 * 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
862 * configure event, which overrides the width and height! :P
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
863 */
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
864
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
865 gaim_prefs_add_none("/gaim/gtk/debug");
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
866
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
867 /* Controls printing to the debug window */
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
868 gaim_prefs_add_bool("/gaim/gtk/debug/enabled", FALSE);
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
869
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
870 gaim_prefs_add_bool("/gaim/gtk/debug/toolbar", TRUE);
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
871 gaim_prefs_add_int("/gaim/gtk/debug/width", 450);
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
872 gaim_prefs_add_int("/gaim/gtk/debug/height", 250);
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5642
diff changeset
873
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
874 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
875 gaim_prefs_add_string("/gaim/gtk/debug/regex", "");
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
876 gaim_prefs_add_bool("/gaim/gtk/debug/filter", FALSE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
877 gaim_prefs_add_bool("/gaim/gtk/debug/invert", FALSE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
878 gaim_prefs_add_bool("/gaim/gtk/debug/case_insensitive", FALSE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
879 gaim_prefs_add_bool("/gaim/gtk/debug/highlight", FALSE);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
880 #endif /* HAVE_REGEX_H */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
881
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
882 gaim_prefs_connect_callback(NULL, "/gaim/gtk/debug/enabled",
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5738
diff changeset
883 debug_enabled_cb, NULL);
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
884
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
885 #define REGISTER_G_LOG_HANDLER(name) \
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
886 g_log_set_handler((name), G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL \
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
887 | G_LOG_FLAG_RECURSION, \
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
888 gaim_glib_log_handler, NULL)
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
889
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
890 /* Register the glib/gtk log handlers. */
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
891 REGISTER_G_LOG_HANDLER(NULL);
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
892 REGISTER_G_LOG_HANDLER("Gdk");
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
893 REGISTER_G_LOG_HANDLER("Gtk");
7229
0f85b503c030 [gaim-migrate @ 7799]
Herman Bloggs <herman@bluedigits.com>
parents: 7152
diff changeset
894 REGISTER_G_LOG_HANDLER("GdkPixbuf");
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
895 REGISTER_G_LOG_HANDLER("GLib");
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
896 REGISTER_G_LOG_HANDLER("GModule");
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
897 REGISTER_G_LOG_HANDLER("GLib-GObject");
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
898 REGISTER_G_LOG_HANDLER("GThread");
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
899
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
900 #ifdef _WIN32
10314
ef9e6a50e424 [gaim-migrate @ 11512]
Andrew Hart <arhart@users.sourceforge.net>
parents: 10309
diff changeset
901 if (!gaim_debug_is_enabled())
7150
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
902 g_set_print_handler(gaim_glib_dummy_print_handler);
25deb3b41da3 [gaim-migrate @ 7717]
Sean Egan <seanegan@pidgin.im>
parents: 7108
diff changeset
903 #endif
5625
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
904 }
ac8c09def58a [gaim-migrate @ 6032]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
905
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
906 void
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
907 gaim_gtk_debug_uninit(void)
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
908 {
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
909 gaim_debug_set_ui_ops(NULL);
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
910 }
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
911
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
912 void
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
913 gaim_gtk_debug_window_show(void)
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
914 {
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
915 if (debug_win == NULL)
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
916 debug_win = debug_window_new();
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
917
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
918 gtk_widget_show(debug_win->window);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
919
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
920 gaim_prefs_set_bool("/gaim/gtk/debug/enabled", TRUE);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
921 }
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
922
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
923 void
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
924 gaim_gtk_debug_window_hide(void)
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
925 {
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
926 if (debug_win != NULL) {
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
927 gtk_widget_destroy(debug_win->window);
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
928 debug_window_destroy(NULL, NULL, NULL);
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
929 }
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
930 }
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
931
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
932 static void
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
933 gaim_gtk_debug_print(GaimDebugLevel level, const char *category,
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
934 const char *format, va_list args)
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
935 {
11262
561da6ec5c26 [gaim-migrate @ 13440]
Mark Doliner <markdoliner@pidgin.im>
parents: 11256
diff changeset
936 #ifdef HAVE_REGEX_H
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
937 GtkTreeIter iter;
11262
561da6ec5c26 [gaim-migrate @ 13440]
Mark Doliner <markdoliner@pidgin.im>
parents: 11256
diff changeset
938 #endif /* HAVE_REGEX_H */
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
939 gboolean timestamps;
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
940 gchar *arg_s, *ts_s;
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
941 gchar *esc_s, *cat_s, *tmp, *s;
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
942
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
943 if (!gaim_prefs_get_bool("/gaim/gtk/debug/enabled") ||
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
944 (debug_win == NULL))
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
945 {
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
946 return;
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
947 }
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
948
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
949 timestamps = gaim_prefs_get_bool("/core/debug/timestamps");
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
950
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
951 arg_s = g_strdup_vprintf(format, args);
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
952
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
953 /*
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
954 * For some reason we only print the timestamp if category is
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
955 * not NULL. Why the hell do we do that? --Mark
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
956 */
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
957 if ((category != NULL) && (timestamps)) {
13105
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13033
diff changeset
958 const char *mdate;
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
959
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
960 time_t mtime = time(NULL);
13105
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13033
diff changeset
961 mdate = gaim_utf8_strftime("%H:%M:%S", localtime(&mtime));
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
962 ts_s = g_strdup_printf("(%s) ", mdate);
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
963 } else {
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
964 ts_s = g_strdup("");
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
965 }
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5430
diff changeset
966
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
967 if (category == NULL)
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
968 cat_s = g_strdup("");
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
969 else
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
970 cat_s = g_strdup_printf("<b>%s:</b> ", category);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
971
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
972 esc_s = g_markup_escape_text(arg_s, -1);
5428
5788d3bc050a [gaim-migrate @ 5808]
Christian Hammond <chipx86@chipx86.com>
parents: 5314
diff changeset
973
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
974 g_free(arg_s);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
975
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
976 s = g_strdup_printf("<font color=\"%s\">%s%s%s</font>",
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
977 debug_fg_colors[level], ts_s, cat_s, esc_s);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
978
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
979 g_free(ts_s);
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
980 g_free(cat_s);
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
981 g_free(esc_s);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
982
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
983 tmp = gaim_utf8_try_convert(s);
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
984 g_free(s);
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
985 s = tmp;
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
986
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
987 if (level == GAIM_DEBUG_FATAL) {
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
988 tmp = g_strdup_printf("<b>%s</b>", s);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
989 g_free(s);
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
990 s = tmp;
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
991 }
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
992
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
993 #ifdef HAVE_REGEX_H
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
994 /* add the text to the list store */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
995 gtk_list_store_append(debug_win->store, &iter);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
996 gtk_list_store_set(debug_win->store, &iter, 0, s, -1);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
997 #else /* HAVE_REGEX_H */
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
998 if(!debug_win->paused)
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
999 gtk_imhtml_append_text(GTK_IMHTML(debug_win->text), s, 0);
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11243
diff changeset
1000 #endif /* !HAVE_REGEX_H */
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1001
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
1002 g_free(s);
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1003 }
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1004
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1005 static GaimDebugUiOps ops =
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1006 {
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 10739
diff changeset
1007 gaim_gtk_debug_print,
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1008 };
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1009
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1010 GaimDebugUiOps *
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
1011 gaim_gtk_debug_get_ui_ops(void)
5212
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1012 {
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1013 return &ops;
ad90ea13028b [gaim-migrate @ 5582]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1014 }
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
1015
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
1016 void *
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
1017 gaim_gtk_debug_get_handle() {
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
1018 static int handle;
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
1019
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
1020 return &handle;
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
1021 }

mercurial