Wed, 01 Dec 2004 01:17:19 +0000
[gaim-migrate @ 11451]
Patch from Scott Shedden to have the blist hidden when Gaim starts.
This actually probably won't work for most people currently, because
on X11, the docklet is added asynchrously, so we usually won't realize the
docklet exists until we've already created the blist. I'm sure there
must be some way around this, though (Scott's solution was to manually hide
the buddy list when the docklet was finally embedded. I may fall back on
that).
committer: Sean Egan <seanegan@pidgin.im>
|
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 | 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 | 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 | 30 | }; |
| 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 | 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 | 42 | int i, l; |
| 43 | int word; | |
| 44 | char *tmp; | |
| 45 | ||
| 46 | if (message == NULL || *message == NULL) | |
|
6780
66775151d7a7
[gaim-migrate @ 7319]
Christian Hammond <chipx86@chipx86.com>
parents:
6735
diff
changeset
|
47 | return FALSE; |
| 103 | 48 | |
| 49 | l = num_words(*message); | |
| 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 | 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 | 74 | } |
| 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 | 78 | } |
| 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 | 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 | 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 | 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 | 141 | |
| 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 | 144 | int count = 0; |
| 7631 | 145 | guint pos; |
| 103 | 146 | int state = 0; |
| 147 | ||
| 148 | for (pos = 0; pos < strlen(m); pos++) { | |
| 149 | switch (state) { | |
| 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 | 152 | count++; |
| 153 | state = 1; | |
| 154 | } else if (m[pos] == '<') | |
| 155 | state = 2; | |
| 156 | break; | |
| 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 | 161 | state = 0; |
| 162 | break; | |
| 163 | case 2: /* inside HTML tag */ | |
| 164 | if (m[pos] == '>') | |
| 165 | state = 0; | |
| 166 | break; | |
| 167 | } | |
| 168 | } | |
| 169 | return count; | |
| 170 | } | |
| 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 | 173 | int count = 0; |
| 7631 | 174 | guint pos = 0; |
| 103 | 175 | int state = 0; |
| 176 | ||
| 177 | for (pos = 0; pos < strlen(m) && count <= word; pos++) { | |
| 178 | switch (state) { | |
| 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 | 181 | count++; |
| 182 | state = 1; | |
| 183 | } else if (m[pos] == '<') | |
| 184 | state = 2; | |
| 185 | break; | |
| 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 | 190 | state = 0; |
| 191 | break; | |
| 192 | case 2: | |
| 193 | if (m[pos] == '>') | |
| 194 | state = 0; | |
| 195 | break; | |
| 196 | } | |
| 197 | } | |
| 198 | return pos - 1; | |
| 199 | } | |
| 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 | 202 | char *tmp = strpbrk(&m[pos], "' \t\f\r\n\"><.?!-,/"); |
| 103 | 203 | int len = (int)(tmp - &m[pos]); |
| 204 | ||
| 205 | if (tmp == NULL) { | |
| 206 | tmp = strdup(&m[pos]); | |
| 207 | return tmp; | |
| 208 | } | |
| 209 | ||
| 210 | tmp = malloc(len + 1); | |
| 211 | tmp[0] = 0; | |
| 212 | strncat(tmp, &m[pos], len); | |
| 213 | ||
| 214 | return tmp; | |
| 215 | } | |
| 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 | 219 | char *tmp; |
| 103 | 220 | new[0] = 0; |
| 221 | ||
| 222 | strncat(new, *mes, pos); | |
| 223 | strcat(new, text); | |
| 224 | ||
| 225 | strcat(new, &(*mes)[pos + m]); | |
| 8673 | 226 | tmp = *mes; |
| 103 | 227 | *mes = new; |
| 8673 | 228 | g_free(tmp); |
| 103 | 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 | 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); |
|
10234
5519489ebcb9
[gaim-migrate @ 11369]
Mark Doliner <markdoliner@pidgin.im>
parents:
9943
diff
changeset
|
265 | gtk_editable_delete_text(GTK_EDITABLE(bad_entry), 0, -1); |
|
5519489ebcb9
[gaim-migrate @ 11369]
Mark Doliner <markdoliner@pidgin.im>
parents:
9943
diff
changeset
|
266 | gtk_editable_delete_text(GTK_EDITABLE(good_entry), 0, -1); |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
267 | gtk_widget_grab_focus(bad_entry); |
| 4601 | 268 | |
| 269 | save_list(); | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
270 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
271 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
272 | 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
|
273 | GtkTreeIter *iter, gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
274 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
275 | GSList **list = (GSList **)data; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
276 | *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
|
277 | } |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
278 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
279 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
280 | static void remove_row(void *data1, gpointer data2) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
281 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
282 | GtkTreePath *path = (GtkTreePath*)data1; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
283 | GtkTreeIter iter; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
284 | 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
|
285 | gtk_list_store_remove(model, &iter); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
286 | gtk_tree_path_free(path); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
287 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
288 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
289 | static void list_delete() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
290 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
291 | GtkTreeSelection *sel; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
292 | GSList *list = NULL; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
293 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
294 | 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
|
295 | 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
|
296 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
297 | g_slist_foreach(list, remove_row, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
298 | g_slist_free(list); |
| 4601 | 299 | |
| 300 | save_list(); | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
301 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
302 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
303 | static void save_list() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
304 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
305 | FILE *f; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
306 | char *name; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
307 | GtkTreeIter iter; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
308 | char tempfilename[BUF_LONG]; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
309 | int fd; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
310 | |
| 8596 | 311 | 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
|
312 | strcpy(tempfilename, name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
313 | strcat(tempfilename,".XXXXXX"); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
314 | fd = g_mkstemp(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
315 | if(fd<0) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
316 | perror(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
317 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
318 | return; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
319 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
320 | if (!(f = fdopen(fd, "w"))) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
321 | perror("fdopen"); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
322 | close(fd); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
323 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
324 | return; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
325 | } |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
326 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
327 | fchmod(fd, S_IRUSR | S_IWUSR); |
|
4373
fb2ae2f5edd3
[gaim-migrate @ 4639]
Herman Bloggs <herman@bluedigits.com>
parents:
4363
diff
changeset
|
328 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
329 | 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
|
330 | do { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
331 | GValue val0, val1; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
332 | memset(&val0, 0, sizeof(val0)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
333 | memset(&val1, 0, sizeof(val1)); |
|
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, 0, &val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
335 | 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
|
336 | 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
|
337 | g_value_unset(&val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
338 | g_value_unset(&val1); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
339 | } 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
|
340 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
341 | if(fclose(f)) { |
|
5227
6b44f7901f94
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
342 | gaim_debug(GAIM_DEBUG_ERROR, "spellchk", |
|
6b44f7901f94
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
343 | "Error writing to %s: %m\n", tempfilename); |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
344 | unlink(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
345 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
346 | return; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
347 | } |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
348 | rename(tempfilename, name); |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
349 | g_free(name); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
350 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
351 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
352 | static void |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
353 | check_if_something_is_selected(GtkTreeModel *model, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
354 | GtkTreePath *path, GtkTreeIter *iter, gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
355 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
356 | *((gboolean*)data) = TRUE; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
357 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
358 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
359 | static void on_selection_changed(GtkTreeSelection *sel, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
360 | gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
361 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
362 | gboolean is = FALSE; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
363 | 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
|
364 | gtk_widget_set_sensitive((GtkWidget*)data, is); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
365 | } |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
366 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
367 | static gboolean non_empty(const char *s) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
368 | { |
|
6250
28e627163c3c
[gaim-migrate @ 6746]
Herman Bloggs <herman@bluedigits.com>
parents:
6116
diff
changeset
|
369 | while(*s && g_ascii_isspace(*s)) |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
370 | s++; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
371 | return *s; |
|
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 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
374 | static void on_entry_changed(GtkEditable *editable, gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
375 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
376 | gtk_widget_set_sensitive((GtkWidget*)data, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
377 | 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
|
378 | non_empty(gtk_entry_get_text(GTK_ENTRY(good_entry)))); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
379 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
380 | |
| 3630 | 381 | /* |
| 382 | * EXPORTED FUNCTIONS | |
| 383 | */ | |
| 384 | ||
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
385 | static gboolean |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
386 | plugin_load(GaimPlugin *plugin) |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
387 | { |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
388 | void *conv_handle = gaim_conversations_get_handle(); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
389 | |
| 3630 | 390 | load_conf(); |
| 391 | ||
|
8579
412554510a7e
[gaim-migrate @ 9329]
Mark Doliner <markdoliner@pidgin.im>
parents:
7631
diff
changeset
|
392 | gaim_signal_connect(conv_handle, "writing-im-msg", |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
393 | plugin, GAIM_CALLBACK(substitute_words), NULL); |
|
8579
412554510a7e
[gaim-migrate @ 9329]
Mark Doliner <markdoliner@pidgin.im>
parents:
7631
diff
changeset
|
394 | gaim_signal_connect(conv_handle, "writing-chat-msg", |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
395 | plugin, GAIM_CALLBACK(substitute_words), NULL); |
| 3630 | 396 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
397 | return TRUE; |
| 3630 | 398 | } |
| 399 | ||
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
400 | static GtkWidget * |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
401 | get_config_frame(GaimPlugin *plugin) |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
402 | { |
| 3565 | 403 | GtkWidget *ret, *vbox, *win; |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
404 | GtkWidget *hbox, *label; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
405 | GtkWidget *button; |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
406 | GtkSizeGroup *sg; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
407 | GtkCellRenderer *renderer; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
408 | GtkTreeViewColumn *column; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
409 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
410 | sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 3565 | 411 | |
| 412 | ret = gtk_vbox_new(FALSE, 18); | |
| 413 | gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
414 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5227
diff
changeset
|
415 | vbox = gaim_gtk_make_frame(ret, _("Text Replacements")); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
416 | 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
|
417 | gtk_widget_set_size_request(vbox, 300, -1); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
418 | gtk_widget_show (vbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
419 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
420 | win = gtk_scrolled_window_new(0, 0); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
421 | gtk_container_add(GTK_CONTAINER(vbox), win); |
|
4750
65e08e21fbd9
[gaim-migrate @ 5065]
Christian Hammond <chipx86@chipx86.com>
parents:
4601
diff
changeset
|
422 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(win), |
|
65e08e21fbd9
[gaim-migrate @ 5065]
Christian Hammond <chipx86@chipx86.com>
parents:
4601
diff
changeset
|
423 | GTK_SHADOW_IN); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
424 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (win), |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
425 | GTK_POLICY_AUTOMATIC, |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
426 | GTK_POLICY_AUTOMATIC); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
427 | gtk_widget_show(win); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
428 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
429 | 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
|
430 | /* 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
|
431 | gtk_widget_set_size_request(tree, 260,200); |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
432 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
433 | renderer = gtk_cell_renderer_text_new (); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
434 | g_object_set (G_OBJECT (renderer), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
435 | "editable", TRUE, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
436 | NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
437 | g_signal_connect(G_OBJECT(renderer), "edited", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
438 | G_CALLBACK(on_edited), GINT_TO_POINTER(0)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
439 | 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
|
440 | renderer, "text", BAD_COLUMN, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
441 | 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
|
442 | gtk_tree_view_column_set_fixed_width(column, 130); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
443 | /* gtk_tree_view_column_set_resizable(column, TRUE); */ |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
444 | 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
|
445 | renderer = gtk_cell_renderer_text_new (); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
446 | g_object_set (G_OBJECT (renderer), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
447 | "editable", TRUE, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
448 | NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
449 | g_signal_connect(G_OBJECT(renderer), "edited", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
450 | G_CALLBACK(on_edited), GINT_TO_POINTER(1)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
451 | 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
|
452 | renderer, "text", GOOD_COLUMN, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
453 | 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
|
454 | gtk_tree_view_column_set_fixed_width(column, 130); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
455 | /* gtk_tree_view_column_set_resizable(column, TRUE); */ |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
456 | 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
|
457 | 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
|
458 | GTK_SELECTION_MULTIPLE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
459 | gtk_container_add(GTK_CONTAINER(win), tree); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
460 | gtk_widget_show(tree); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
461 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
462 | hbox = gtk_hbutton_box_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
463 | 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
|
464 | gtk_widget_show(hbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
465 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
466 | button = gtk_button_new_from_stock(GTK_STOCK_DELETE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
467 | g_signal_connect(G_OBJECT(button), "clicked", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
468 | G_CALLBACK(list_delete), NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
469 | 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
|
470 | gtk_widget_set_sensitive(button, FALSE); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
471 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
472 | 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
|
473 | "changed", G_CALLBACK(on_selection_changed), button); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
474 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
475 | gtk_widget_show(button); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
476 | |
|
5530
ba1ad464b56f
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5227
diff
changeset
|
477 | 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
|
478 | gtk_widget_set_size_request(vbox, 300, -1); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
479 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
480 | hbox = gtk_hbox_new(FALSE, 2); |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
481 | 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
|
482 | gtk_widget_show(hbox); |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6392
diff
changeset
|
483 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
484 | label = gtk_label_new_with_mnemonic(_("You _type:")); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
485 | 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
|
486 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
487 | bad_entry = gtk_entry_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
488 | 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
|
489 | 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
|
490 | gtk_size_group_add_widget(sg, bad_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
491 | 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
|
492 | gtk_widget_show(bad_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
493 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
494 | hbox = gtk_hbox_new(FALSE, 2); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
495 | 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
|
496 | gtk_widget_show(hbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
497 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
498 | label = gtk_label_new_with_mnemonic(_("You _send:")); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
499 | 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
|
500 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
501 | good_entry = gtk_entry_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
502 | 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
|
503 | 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
|
504 | gtk_size_group_add_widget(sg, good_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
505 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), good_entry); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
506 | gtk_widget_show(good_entry); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
507 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
508 | hbox = gtk_hbutton_box_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
509 | 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
|
510 | button = gtk_button_new_from_stock(GTK_STOCK_ADD); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
511 | g_signal_connect(G_OBJECT(button), "clicked", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
512 | G_CALLBACK(list_add_new), NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
513 | 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
|
514 | 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
|
515 | 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
|
516 | gtk_widget_set_sensitive(button, FALSE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
517 | gtk_widget_show(button); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
518 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
519 | |
| 3565 | 520 | gtk_widget_show_all(ret); |
| 521 | return ret; | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
522 | } |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
523 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
524 | static GaimGtkPluginUiInfo ui_info = |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
525 | { |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
526 | get_config_frame |
|
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 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
529 | static GaimPluginInfo info = |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
530 | { |
| 9943 | 531 | GAIM_PLUGIN_MAGIC, |
| 532 | GAIM_MAJOR_VERSION, | |
| 533 | GAIM_MINOR_VERSION, | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
534 | GAIM_PLUGIN_STANDARD, |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
535 | GAIM_GTK_PLUGIN_TYPE, |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
536 | 0, |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
537 | NULL, |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
538 | GAIM_PRIORITY_DEFAULT, |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
539 | SPELLCHECK_PLUGIN_ID, |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
540 | N_("Text replacement"), |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
541 | VERSION, |
|
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."), |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
543 | 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
|
544 | "Eric Warmenhoven <eric@warmenhoven.org>", |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6250
diff
changeset
|
545 | GAIM_WEBSITE, |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
546 | plugin_load, |
|
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 | NULL, |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
549 | &ui_info, |
| 8993 | 550 | NULL, |
| 551 | NULL, | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
552 | NULL |
|
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 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
555 | static void |
|
5920
963bfdefee02
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5873
diff
changeset
|
556 | init_plugin(GaimPlugin *plugin) |
|
5205
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 | } |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4750
diff
changeset
|
559 | |
| 6063 | 560 | GAIM_INIT_PLUGIN(spellcheck, init_plugin, info) |