plugins/spellchk.c

Sun, 17 Oct 2004 23:55:49 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Sun, 17 Oct 2004 23:55:49 +0000
changeset 10108
0897c42d6cb9
parent 9943
b54a762f60fa
child 10234
5519489ebcb9
permissions
-rw-r--r--

[gaim-migrate @ 11141]
Two things:
a. Added Enter as a gtk_binding to GtkIMHtml. This fixes everything.
Input methods now work. The "Enter sends" and "Ctrl-Enter sends" preferences
were removed and defaulted to yes and no respectively, BUT, in a very super-cool
turn of events, you can now add your own bindings to .gtkrc to make WHATEVER
YOU WANT send. Awesome. Someone should use g_signal_accumulator_true_handled
or something to make profiles and away messages able to insert newlines.

b. Removed "Use multi-colored screennames in chats," defaulted to yes, and
wrote a nifty algorithm to automatically adjust the colors to accomodate the
background (see http://gaim.sf.net/sean/porn-chat.png). People should play
around and tweak it a bit. The algorithm takes into consideration the
luminosity of the current background and the base hue to use for the screenname
in generating the new colors. Note that it does this while maintaining the hues.
Someone should optimize this so it skips over the floating point arithmatic when
the background color is white.

111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
1 /*
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
2 * A lot of this code (especially the config code) was taken directly
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
3 * or nearly directly from xchat, version 1.4.2 by Peter Zelezny and others.
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
4 */
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5587
diff changeset
5 #include "internal.h"
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 8993
diff changeset
6 #include "gtkgaim.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5587
diff changeset
7
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5587
diff changeset
8 #include "debug.h"
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
9 #include "signals.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5587
diff changeset
10 #include "util.h"
9943
b54a762f60fa [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
11 #include "version.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5587
diff changeset
12
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5587
diff changeset
13 #include "gtkplugin.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5587
diff changeset
14 #include "gtkutils.h"
4202
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4165
diff changeset
15
6735
a8c70aeddbe7 [gaim-migrate @ 7267]
Mark Doliner <markdoliner@pidgin.im>
parents: 6485
diff changeset
16 #include <stdio.h>
a8c70aeddbe7 [gaim-migrate @ 7267]
Mark Doliner <markdoliner@pidgin.im>
parents: 6485
diff changeset
17 #include <string.h>
6849
e77910a0eb8d [gaim-migrate @ 7394]
Herman Bloggs <herman@bluedigits.com>
parents: 6780
diff changeset
18 #ifndef _WIN32
6735
a8c70aeddbe7 [gaim-migrate @ 7267]
Mark Doliner <markdoliner@pidgin.im>
parents: 6485
diff changeset
19 #include <strings.h>
6849
e77910a0eb8d [gaim-migrate @ 7394]
Herman Bloggs <herman@bluedigits.com>
parents: 6780
diff changeset
20 #endif
6735
a8c70aeddbe7 [gaim-migrate @ 7267]
Mark Doliner <markdoliner@pidgin.im>
parents: 6485
diff changeset
21 #include <sys/types.h>
a8c70aeddbe7 [gaim-migrate @ 7267]
Mark Doliner <markdoliner@pidgin.im>
parents: 6485
diff changeset
22 #include <sys/stat.h>
a8c70aeddbe7 [gaim-migrate @ 7267]
Mark Doliner <markdoliner@pidgin.im>
parents: 6485
diff changeset
23
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
24 #define SPELLCHECK_PLUGIN_ID "gtk-spellcheck"
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
25
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
26 enum {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
27 BAD_COLUMN,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
28 GOOD_COLUMN,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
29 N_COLUMNS
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
30 };
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
31
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
32 static int num_words(const char *);
1081
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
33 static int get_word(char *, int);
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
34 static char *have_word(char *, int);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
35 static void substitute(char **, int, int, const char *);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
36 static GtkListStore *model;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37
6780
66775151d7a7 [gaim-migrate @ 7319]
Christian Hammond <chipx86@chipx86.com>
parents: 6735
diff changeset
38 static gboolean
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
39 substitute_words(GaimAccount *account, GaimConversation *conv,
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
40 char **message, void *data)
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
41 {
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
42 int i, l;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
43 int word;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
44 char *tmp;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
45
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
46 if (message == NULL || *message == NULL)
6780
66775151d7a7 [gaim-migrate @ 7319]
Christian Hammond <chipx86@chipx86.com>
parents: 6735
diff changeset
47 return FALSE;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
48
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
49 l = num_words(*message);
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
50 for (i = 0; i < l; i++) {
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
51 GtkTreeIter iter;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52 word = get_word(*message, i);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
53 if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter)) {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
54 do {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
55 GValue val0, val1;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
56 const char *bad, *good;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
57 memset(&val0, 0, sizeof(val0));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
58 memset(&val1, 0, sizeof(val1));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
59 gtk_tree_model_get_value(GTK_TREE_MODEL(model), &iter, 0, &val0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
60 gtk_tree_model_get_value(GTK_TREE_MODEL(model), &iter, 1, &val1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
61 tmp = have_word(*message, word);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
62 bad = g_value_get_string(&val0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
63 good = g_value_get_string(&val1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
64 if (!strcmp(tmp, bad)) {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
65 substitute(message, word, strlen(bad),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
66 good);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
67 l += num_words(good) - num_words(bad);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
68 i += num_words(good) - num_words(bad);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
69 }
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
70 free(tmp);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
71 g_value_unset(&val0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
72 g_value_unset(&val1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
73 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter));
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
74 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
75 }
6780
66775151d7a7 [gaim-migrate @ 7319]
Christian Hammond <chipx86@chipx86.com>
parents: 6735
diff changeset
76
66775151d7a7 [gaim-migrate @ 7319]
Christian Hammond <chipx86@chipx86.com>
parents: 6735
diff changeset
77 return FALSE;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
78 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
79
1081
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
80 static int buf_get_line(char *ibuf, char **buf, int *position, int len) {
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
81 int pos = *position, spos = pos;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
82
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
83 if (pos == len)
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
84 return 0;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
85
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
86 while (ibuf[pos++] != '\n') {
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
87 if (pos == len)
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
88 return 0;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
89 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
90 pos--;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
91 ibuf[pos] = 0;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
92 *buf = &ibuf[spos];
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
93 pos++;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
94 *position = pos;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
95 return 1;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
96 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
97
1081
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
98 static void load_conf() {
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
99 const char * const defaultconf = "BAD r\nGOOD are\n\n"
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
100 "BAD u\nGOOD you\n\n"
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
101 "BAD teh\nGOOD the\n\n";
7466
1dd3ed07bc24 [gaim-migrate @ 8079]
Mark Doliner <markdoliner@pidgin.im>
parents: 6849
diff changeset
102 gchar *buf, *ibuf;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
103 char name[82];
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
104 char cmd[256];
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
105 int pnt = 0;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
106 gsize size;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
107
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
108 model = gtk_list_store_new((gint)N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
109
7466
1dd3ed07bc24 [gaim-migrate @ 8079]
Mark Doliner <markdoliner@pidgin.im>
parents: 6849
diff changeset
110 buf = g_build_filename(gaim_user_dir(), "dict", NULL);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
111 g_file_get_contents(buf, &ibuf, &size, NULL);
7606
189d2833dc99 [gaim-migrate @ 8229]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 7466
diff changeset
112 g_free(buf);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
113 if(!ibuf) {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
114 ibuf = g_strdup(defaultconf);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
115 size = strlen(defaultconf);
106
420c81f47ca3 [gaim-migrate @ 116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 103
diff changeset
116 }
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
117
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
118 cmd[0] = 0;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
119 name[0] = 0;
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
120
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
121 while(buf_get_line(ibuf, &buf, &pnt, size)) {
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
122 if (*buf != '#') {
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
123 if (!strncasecmp(buf, "BAD ", 4))
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
124 strncpy(name, buf + 4, 81);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
125 if (!strncasecmp(buf, "GOOD ", 5)) {
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
126 strncpy(cmd, buf + 5, 255);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
127 if (*name) {
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
128 GtkTreeIter iter;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
129 gtk_list_store_append(model, &iter);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
130 gtk_list_store_set(model, &iter,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
131 0, g_strdup(name),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
132 1, g_strdup(cmd),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
133 -1);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
134 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
135 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
136 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
137 }
7606
189d2833dc99 [gaim-migrate @ 8229]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 7466
diff changeset
138 g_free(ibuf);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
139 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
140
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
141
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
142
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
143 static int num_words(const char *m) {
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
144 int count = 0;
7631
0e9e516bb6c3 [gaim-migrate @ 8255]
Nathan Walp <nwalp@pidgin.im>
parents: 7606
diff changeset
145 guint pos;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
146 int state = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
147
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
148 for (pos = 0; pos < strlen(m); pos++) {
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
149 switch (state) {
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
150 case 0: /* expecting word */
6250
28e627163c3c [gaim-migrate @ 6746]
Herman Bloggs <herman@bluedigits.com>
parents: 6116
diff changeset
151 if (!g_ascii_isspace(m[pos]) && !g_ascii_ispunct(m[pos])) {
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
152 count++;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
153 state = 1;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
154 } else if (m[pos] == '<')
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
155 state = 2;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
156 break;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
157 case 1: /* inside word */
112
232fe3aea76f [gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 111
diff changeset
158 if (m[pos] == '<')
232fe3aea76f [gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 111
diff changeset
159 state = 2;
6250
28e627163c3c [gaim-migrate @ 6746]
Herman Bloggs <herman@bluedigits.com>
parents: 6116
diff changeset
160 else if (g_ascii_isspace(m[pos]) || g_ascii_ispunct(m[pos]))
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
161 state = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
162 break;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
163 case 2: /* inside HTML tag */
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
164 if (m[pos] == '>')
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
165 state = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
166 break;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
167 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
168 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
169 return count;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
170 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
171
1081
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
172 static int get_word(char *m, int word) {
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
173 int count = 0;
7631
0e9e516bb6c3 [gaim-migrate @ 8255]
Nathan Walp <nwalp@pidgin.im>
parents: 7606
diff changeset
174 guint pos = 0;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
175 int state = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
176
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
177 for (pos = 0; pos < strlen(m) && count <= word; pos++) {
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
178 switch (state) {
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
179 case 0:
6250
28e627163c3c [gaim-migrate @ 6746]
Herman Bloggs <herman@bluedigits.com>
parents: 6116
diff changeset
180 if (!g_ascii_isspace(m[pos]) && !g_ascii_ispunct(m[pos])) {
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
181 count++;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
182 state = 1;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
183 } else if (m[pos] == '<')
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
184 state = 2;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
185 break;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
186 case 1:
112
232fe3aea76f [gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 111
diff changeset
187 if (m[pos] == '<')
232fe3aea76f [gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 111
diff changeset
188 state = 2;
6250
28e627163c3c [gaim-migrate @ 6746]
Herman Bloggs <herman@bluedigits.com>
parents: 6116
diff changeset
189 else if (g_ascii_isspace(m[pos]) || g_ascii_ispunct(m[pos]))
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
190 state = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
191 break;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
192 case 2:
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
193 if (m[pos] == '>')
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
194 state = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
195 break;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
196 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
197 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
198 return pos - 1;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
199 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
200
1081
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
201 static char *have_word(char *m, int pos) {
3733
ebd730e54aa0 [gaim-migrate @ 3871]
Sean Egan <seanegan@pidgin.im>
parents: 3728
diff changeset
202 char *tmp = strpbrk(&m[pos], "' \t\f\r\n\"><.?!-,/");
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
203 int len = (int)(tmp - &m[pos]);
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
204
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
205 if (tmp == NULL) {
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
206 tmp = strdup(&m[pos]);
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
207 return tmp;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
208 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
209
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
210 tmp = malloc(len + 1);
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
211 tmp[0] = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
212 strncat(tmp, &m[pos], len);
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
213
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
214 return tmp;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
215 }
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
216
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
217 static void substitute(char **mes, int pos, int m, const char *text) {
257
11380f0ee73e [gaim-migrate @ 267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 208
diff changeset
218 char *new = g_malloc(strlen(*mes) + strlen(text) + 1);
8673
635af13bbcdb [gaim-migrate @ 9425]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8672
diff changeset
219 char *tmp;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
220 new[0] = 0;
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
221
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
222 strncat(new, *mes, pos);
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
223 strcat(new, text);
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
224
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
225 strcat(new, &(*mes)[pos + m]);
8673
635af13bbcdb [gaim-migrate @ 9425]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8672
diff changeset
226 tmp = *mes;
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
227 *mes = new;
8673
635af13bbcdb [gaim-migrate @ 9425]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8672
diff changeset
228 g_free(tmp);
103
b1da69279129 [gaim-migrate @ 113]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
229 }
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
230
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
231 static GtkWidget *tree;
1081
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
232 static GtkWidget *bad_entry;
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
233 static GtkWidget *good_entry;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
234
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
235 static void save_list();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
236
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
237 static void on_edited(GtkCellRendererText *cellrenderertext,
6116
18a2bf1a4f13 [gaim-migrate @ 6579]
Kevin Stange <kstange@pidgin.im>
parents: 6063
diff changeset
238 gchar *path, gchar *arg2, gpointer data)
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
239 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
240 GtkTreeIter iter;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
241 GValue val;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
242 if(arg2[0] == '\0') {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
243 gdk_beep();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
244 return;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
245 }
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
246 memset(&val, 0, sizeof(val));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
247 g_return_if_fail(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model), &iter, path));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
248 gtk_tree_model_get_value(GTK_TREE_MODEL(model), &iter, GPOINTER_TO_INT(data), &val);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
249 if(strcmp(arg2, g_value_get_string(&val))) {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
250 gtk_list_store_set(model, &iter, GPOINTER_TO_INT(data), arg2, -1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
251 save_list();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
252 }
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
253 g_value_unset(&val);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
254 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
255
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
256 static void list_add_new()
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
257 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
258 GtkTreeIter iter;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
259
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
260 gtk_list_store_append(model, &iter);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
261 gtk_list_store_set(model, &iter,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
262 0, gtk_entry_get_text(GTK_ENTRY(bad_entry)),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
263 1, gtk_entry_get_text(GTK_ENTRY(good_entry)),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
264 -1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
265 gtk_editable_select_region(GTK_EDITABLE(bad_entry), 0, -1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
266 gtk_widget_grab_focus(bad_entry);
4601
70567c022c26 [gaim-migrate @ 4888]
tony skuse
parents: 4585
diff changeset
267
70567c022c26 [gaim-migrate @ 4888]
tony skuse
parents: 4585
diff changeset
268 save_list();
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
269 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
270
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
271 static void add_selected_row_to_list(GtkTreeModel *model, GtkTreePath *path,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
272 GtkTreeIter *iter, gpointer data)
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
273 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
274 GSList **list = (GSList **)data;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
275 *list = g_slist_append(*list, gtk_tree_path_copy(path) );
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
276 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
277
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
278
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
279 static void remove_row(void *data1, gpointer data2)
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
280 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
281 GtkTreePath *path = (GtkTreePath*)data1;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
282 GtkTreeIter iter;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
283 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
284 gtk_list_store_remove(model, &iter);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
285 gtk_tree_path_free(path);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
286 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
287
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
288 static void list_delete()
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
289 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
290 GtkTreeSelection *sel;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
291 GSList *list = NULL;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
292
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
293 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
294 gtk_tree_selection_selected_foreach(sel, add_selected_row_to_list, &list);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
295
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
296 g_slist_foreach(list, remove_row, NULL);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
297 g_slist_free(list);
4601
70567c022c26 [gaim-migrate @ 4888]
tony skuse
parents: 4585
diff changeset
298
70567c022c26 [gaim-migrate @ 4888]
tony skuse
parents: 4585
diff changeset
299 save_list();
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
300 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
301
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
302 static void save_list()
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
303 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
304 FILE *f;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
305 char *name;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
306 GtkTreeIter iter;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
307 char tempfilename[BUF_LONG];
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
308 int fd;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
309
8596
6d70d45b8ea6 [gaim-migrate @ 9347]
Daniel Atallah <datallah@pidgin.im>
parents: 8579
diff changeset
310 name = g_build_filename(gaim_user_dir(), "dict", NULL);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
311 strcpy(tempfilename, name);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
312 strcat(tempfilename,".XXXXXX");
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
313 fd = g_mkstemp(tempfilename);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
314 if(fd<0) {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
315 perror(tempfilename);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
316 g_free(name);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
317 return;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
318 }
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
319 if (!(f = fdopen(fd, "w"))) {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
320 perror("fdopen");
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
321 close(fd);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
322 g_free(name);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
323 return;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
324 }
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
325
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
326 fchmod(fd, S_IRUSR | S_IWUSR);
4373
fb2ae2f5edd3 [gaim-migrate @ 4639]
Herman Bloggs <herman@bluedigits.com>
parents: 4363
diff changeset
327
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
328 if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter)) {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
329 do {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
330 GValue val0, val1;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
331 memset(&val0, 0, sizeof(val0));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
332 memset(&val1, 0, sizeof(val1));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
333 gtk_tree_model_get_value(GTK_TREE_MODEL(model), &iter, 0, &val0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
334 gtk_tree_model_get_value(GTK_TREE_MODEL(model), &iter, 1, &val1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
335 fprintf(f, "BAD %s\nGOOD %s\n\n", g_value_get_string(&val0), g_value_get_string(&val1));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
336 g_value_unset(&val0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
337 g_value_unset(&val1);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
338 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
339 }
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
340 if(fclose(f)) {
5227
6b44f7901f94 [gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
341 gaim_debug(GAIM_DEBUG_ERROR, "spellchk",
6b44f7901f94 [gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
342 "Error writing to %s: %m\n", tempfilename);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
343 unlink(tempfilename);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
344 g_free(name);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
345 return;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
346 }
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
347 rename(tempfilename, name);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
348 g_free(name);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
349 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
350
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
351 static void
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
352 check_if_something_is_selected(GtkTreeModel *model,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
353 GtkTreePath *path, GtkTreeIter *iter, gpointer data)
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
354 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
355 *((gboolean*)data) = TRUE;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
356 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
357
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
358 static void on_selection_changed(GtkTreeSelection *sel,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
359 gpointer data)
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
360 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
361 gboolean is = FALSE;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
362 gtk_tree_selection_selected_foreach(sel, check_if_something_is_selected, &is);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
363 gtk_widget_set_sensitive((GtkWidget*)data, is);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
364 }
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
365
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
366 static gboolean non_empty(const char *s)
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
367 {
6250
28e627163c3c [gaim-migrate @ 6746]
Herman Bloggs <herman@bluedigits.com>
parents: 6116
diff changeset
368 while(*s && g_ascii_isspace(*s))
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
369 s++;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
370 return *s;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
371 }
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
372
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
373 static void on_entry_changed(GtkEditable *editable, gpointer data)
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
374 {
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
375 gtk_widget_set_sensitive((GtkWidget*)data,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
376 non_empty(gtk_entry_get_text(GTK_ENTRY(bad_entry))) &&
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
377 non_empty(gtk_entry_get_text(GTK_ENTRY(good_entry))));
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
378 }
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
379
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
380 /*
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
381 * EXPORTED FUNCTIONS
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
382 */
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
383
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
384 static gboolean
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
385 plugin_load(GaimPlugin *plugin)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
386 {
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
387 void *conv_handle = gaim_conversations_get_handle();
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
388
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
389 load_conf();
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
390
8579
412554510a7e [gaim-migrate @ 9329]
Mark Doliner <markdoliner@pidgin.im>
parents: 7631
diff changeset
391 gaim_signal_connect(conv_handle, "writing-im-msg",
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
392 plugin, GAIM_CALLBACK(substitute_words), NULL);
8579
412554510a7e [gaim-migrate @ 9329]
Mark Doliner <markdoliner@pidgin.im>
parents: 7631
diff changeset
393 gaim_signal_connect(conv_handle, "writing-chat-msg",
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
394 plugin, GAIM_CALLBACK(substitute_words), NULL);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
395
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
396 return TRUE;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
397 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3565
diff changeset
398
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
399 static GtkWidget *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
400 get_config_frame(GaimPlugin *plugin)
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
401 {
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3551
diff changeset
402 GtkWidget *ret, *vbox, *win;
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
403 GtkWidget *hbox, *label;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
404 GtkWidget *button;
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
405 GtkSizeGroup *sg;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
406 GtkCellRenderer *renderer;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
407 GtkTreeViewColumn *column;
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
408
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
409 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3551
diff changeset
410
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3551
diff changeset
411 ret = gtk_vbox_new(FALSE, 18);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3551
diff changeset
412 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
413
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5227
diff changeset
414 vbox = gaim_gtk_make_frame(ret, _("Text Replacements"));
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
415 gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
416 gtk_widget_set_size_request(vbox, 300, -1);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
417 gtk_widget_show (vbox);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
418
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
419 win = gtk_scrolled_window_new(0, 0);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
420 gtk_container_add(GTK_CONTAINER(vbox), win);
4750
65e08e21fbd9 [gaim-migrate @ 5065]
Christian Hammond <chipx86@chipx86.com>
parents: 4601
diff changeset
421 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(win),
65e08e21fbd9 [gaim-migrate @ 5065]
Christian Hammond <chipx86@chipx86.com>
parents: 4601
diff changeset
422 GTK_SHADOW_IN);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
423 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (win),
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
424 GTK_POLICY_AUTOMATIC,
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
425 GTK_POLICY_AUTOMATIC);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
426 gtk_widget_show(win);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
427
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
428 tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
429 /* gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE); */
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
430 gtk_widget_set_size_request(tree, 260,200);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
431
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
432 renderer = gtk_cell_renderer_text_new ();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
433 g_object_set (G_OBJECT (renderer),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
434 "editable", TRUE,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
435 NULL);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
436 g_signal_connect(G_OBJECT(renderer), "edited",
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
437 G_CALLBACK(on_edited), GINT_TO_POINTER(0));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
438 column = gtk_tree_view_column_new_with_attributes (_("You type"),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
439 renderer, "text", BAD_COLUMN, NULL);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
440 gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
441 gtk_tree_view_column_set_fixed_width(column, 130);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
442 /* gtk_tree_view_column_set_resizable(column, TRUE); */
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
443 gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
444 renderer = gtk_cell_renderer_text_new ();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
445 g_object_set (G_OBJECT (renderer),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
446 "editable", TRUE,
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
447 NULL);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
448 g_signal_connect(G_OBJECT(renderer), "edited",
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
449 G_CALLBACK(on_edited), GINT_TO_POINTER(1));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
450 column = gtk_tree_view_column_new_with_attributes (_("You send"),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
451 renderer, "text", GOOD_COLUMN, NULL);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
452 gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
453 gtk_tree_view_column_set_fixed_width(column, 130);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
454 /* gtk_tree_view_column_set_resizable(column, TRUE); */
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
455 gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
456 gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
457 GTK_SELECTION_MULTIPLE);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
458 gtk_container_add(GTK_CONTAINER(win), tree);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
459 gtk_widget_show(tree);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
460
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
461 hbox = gtk_hbutton_box_new();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
462 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
463 gtk_widget_show(hbox);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
464
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
465 button = gtk_button_new_from_stock(GTK_STOCK_DELETE);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
466 g_signal_connect(G_OBJECT(button), "clicked",
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
467 G_CALLBACK(list_delete), NULL);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
468 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
469 gtk_widget_set_sensitive(button, FALSE);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
470
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
471 g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree))),
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
472 "changed", G_CALLBACK(on_selection_changed), button);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
473
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
474 gtk_widget_show(button);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
475
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5227
diff changeset
476 vbox = gaim_gtk_make_frame(ret, _("Add a new text replacement"));
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
477 gtk_widget_set_size_request(vbox, 300, -1);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
478
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
479 hbox = gtk_hbox_new(FALSE, 2);
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
480 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
481 gtk_widget_show(hbox);
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6392
diff changeset
482
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
483 label = gtk_label_new_with_mnemonic(_("You _type:"));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
484 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
485
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
486 bad_entry = gtk_entry_new();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
487 gtk_entry_set_max_length(GTK_ENTRY(bad_entry), 40);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
488 gtk_box_pack_start(GTK_BOX(hbox), bad_entry, TRUE, TRUE, 0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
489 gtk_size_group_add_widget(sg, bad_entry);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
490 gtk_label_set_mnemonic_widget(GTK_LABEL(label), bad_entry);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
491 gtk_widget_show(bad_entry);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
492
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
493 hbox = gtk_hbox_new(FALSE, 2);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
494 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
495 gtk_widget_show(hbox);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
496
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
497 label = gtk_label_new_with_mnemonic(_("You _send:"));
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
498 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
499
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
500 good_entry = gtk_entry_new();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
501 gtk_entry_set_max_length(GTK_ENTRY(good_entry), 255);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
502 gtk_box_pack_start(GTK_BOX(hbox), good_entry, TRUE, TRUE, 0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
503 gtk_size_group_add_widget(sg, good_entry);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
504 gtk_label_set_mnemonic_widget(GTK_LABEL(label), good_entry);
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
505 gtk_widget_show(good_entry);
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
506
4348
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
507 hbox = gtk_hbutton_box_new();
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
508 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
509 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
510 g_signal_connect(G_OBJECT(button), "clicked",
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
511 G_CALLBACK(list_add_new), NULL);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
512 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
513 g_signal_connect(G_OBJECT(bad_entry), "changed", G_CALLBACK(on_entry_changed), button);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
514 g_signal_connect(G_OBJECT(good_entry), "changed", G_CALLBACK(on_entry_changed), button);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
515 gtk_widget_set_sensitive(button, FALSE);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
516 gtk_widget_show(button);
74cba81defc4 [gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4202
diff changeset
517
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
518
3565
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3551
diff changeset
519 gtk_widget_show_all(ret);
66a8f8dcaacc [gaim-migrate @ 3660]
Sean Egan <seanegan@pidgin.im>
parents: 3551
diff changeset
520 return ret;
111
36f6e0baf0a0 [gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 106
diff changeset
521 }
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
522
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
523 static GaimGtkPluginUiInfo ui_info =
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
524 {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
525 get_config_frame
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
526 };
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
527
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
528 static GaimPluginInfo info =
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
529 {
9943
b54a762f60fa [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
530 GAIM_PLUGIN_MAGIC,
b54a762f60fa [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
531 GAIM_MAJOR_VERSION,
b54a762f60fa [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
532 GAIM_MINOR_VERSION,
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
533 GAIM_PLUGIN_STANDARD,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
534 GAIM_GTK_PLUGIN_TYPE,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
535 0,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
536 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
537 GAIM_PRIORITY_DEFAULT,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
538 SPELLCHECK_PLUGIN_ID,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
539 N_("Text replacement"),
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
540 VERSION,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
541 N_("Replaces text in outgoing messages according to user-defined rules."),
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
542 N_("Replaces text in outgoing messages according to user-defined rules."),
6392
3db2b3c7b5aa [gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
543 "Eric Warmenhoven <eric@warmenhoven.org>",
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6250
diff changeset
544 GAIM_WEBSITE,
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
545 plugin_load,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
546 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
547 NULL,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
548 &ui_info,
8993
41f67bceab41 [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
549 NULL,
41f67bceab41 [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
550 NULL,
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
551 NULL
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
552 };
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
553
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
554 static void
5920
963bfdefee02 [gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents: 5873
diff changeset
555 init_plugin(GaimPlugin *plugin)
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
556 {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
557 }
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4750
diff changeset
558
6063
8fbafa2e1846 [gaim-migrate @ 6513]
Nathan Walp <nwalp@pidgin.im>
parents: 5920
diff changeset
559 GAIM_INIT_PLUGIN(spellcheck, init_plugin, info)

mercurial