Mon, 17 Feb 2003 15:22:21 +0000
[gaim-migrate @ 4869]
Matthew Smith (smigs) writes:
" - spelling+spec.diff corrects "formated" to "formatted"
in oscar.c & all the translations, and removes
"--disable-artsc" from gaim.spec.in as that configure
option no longer exists.
- plugins.diff marks up the plugin descriptions and
names with _() if it wasn't already present, and
removes the differences between the two
descriptions/names (i.e. *char name and desc.name) that
were present for some plugins. I only did this for
plugins that get compiled by default, though.. not much
point in doing the others =P "
committer: Luke Schierer <lschiere@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 | * |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
5 | * TODO: |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
6 | * ? I think i did everything i want to with it. |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
7 | * |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
8 | * BUGS: |
|
112
232fe3aea76f
[gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
111
diff
changeset
|
9 | * ? I think i fixed them all. |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
10 | */ |
|
4202
8b92de3b1c07
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
11 | #include "config.h" |
|
8b92de3b1c07
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
12 | |
|
8b92de3b1c07
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
13 | #ifndef GAIM_PLUGINS |
| 103 | 14 | #define GAIM_PLUGINS |
|
4202
8b92de3b1c07
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
15 | #endif |
|
8b92de3b1c07
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
16 | |
| 103 | 17 | #include "gaim.h" |
| 18 | ||
| 19 | #include <string.h> | |
| 20 | #include <ctype.h> | |
| 21 | #include <stdlib.h> | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
22 | #include <sys/stat.h> |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
23 | #include <sys/types.h> |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
24 | #include <unistd.h> |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
25 | #include <fcntl.h> |
| 3630 | 26 | #ifdef _WIN32 |
| 27 | #include "win32dep.h" | |
| 28 | #endif | |
| 103 | 29 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
30 | enum { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
31 | BAD_COLUMN, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
32 | GOOD_COLUMN, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
33 | N_COLUMNS |
| 103 | 34 | }; |
| 35 | ||
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
36 | static int num_words(const char *); |
|
1081
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
37 | static int get_word(char *, int); |
|
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
38 | static char *have_word(char *, int); |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
39 | static void substitute(char **, int, int, const char *); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
40 | static GtkListStore *model; |
| 103 | 41 | |
|
1081
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
42 | static void substitute_words(struct gaim_connection *gc, char *who, char **message, void *m) { |
| 103 | 43 | int i, l; |
| 44 | int word; | |
| 45 | char *tmp; | |
| 46 | ||
| 47 | if (message == NULL || *message == NULL) | |
| 48 | return; | |
| 49 | ||
| 50 | l = num_words(*message); | |
| 51 | for (i = 0; i < l; i++) { | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
52 | GtkTreeIter iter; |
| 103 | 53 | word = get_word(*message, i); |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
54 | 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
|
55 | do { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
56 | GValue val0, val1; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
57 | const char *bad, *good; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
58 | memset(&val0, 0, sizeof(val0)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
59 | memset(&val1, 0, sizeof(val1)); |
|
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, 0, &val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
61 | 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
|
62 | tmp = have_word(*message, word); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
63 | bad = g_value_get_string(&val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
64 | good = g_value_get_string(&val1); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
65 | if (!strcmp(tmp, bad)) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
66 | substitute(message, word, strlen(bad), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
67 | good); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
68 | l += num_words(good) - num_words(bad); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
69 | i += num_words(good) - num_words(bad); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
70 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
71 | free(tmp); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
72 | g_value_unset(&val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
73 | g_value_unset(&val1); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
74 | } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter)); |
| 103 | 75 | } |
| 76 | } | |
| 77 | } | |
| 78 | ||
|
1081
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
79 | 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
|
80 | int pos = *position, spos = pos; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
81 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
82 | if (pos == len) |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
83 | return 0; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
84 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
85 | while (ibuf[pos++] != '\n') { |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
86 | if (pos == len) |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
87 | return 0; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
88 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
89 | pos--; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
90 | ibuf[pos] = 0; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
91 | *buf = &ibuf[spos]; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
92 | pos++; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
93 | *position = pos; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
94 | return 1; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
95 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
96 | |
|
1081
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
97 | static void load_conf() { |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
98 | const char * const defaultconf = "BAD r\nGOOD are\n\n" |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
99 | "BAD u\nGOOD you\n\n" |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
100 | "BAD teh\nGOOD the\n\n"; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
101 | char *buf, *ibuf; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
102 | char name[82]; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
103 | char cmd[256]; |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
104 | int pnt = 0; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
105 | gsize size; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
106 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
107 | model = gtk_list_store_new((gint)N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING); |
| 103 | 108 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
109 | buf = g_build_filename(gaim_home_dir(), ".gaim", "dict", NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
110 | g_file_get_contents(buf, &ibuf, &size, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
111 | free(buf); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
112 | if(!ibuf) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
113 | ibuf = g_strdup(defaultconf); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
114 | size = strlen(defaultconf); |
|
106
420c81f47ca3
[gaim-migrate @ 116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
103
diff
changeset
|
115 | } |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
116 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
117 | cmd[0] = 0; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
118 | name[0] = 0; |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
119 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
120 | while(buf_get_line(ibuf, &buf, &pnt, size)) { |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
121 | if (*buf != '#') { |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
122 | if (!strncasecmp(buf, "BAD ", 4)) |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
123 | strncpy(name, buf + 4, 81); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
124 | if (!strncasecmp(buf, "GOOD ", 5)) { |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
125 | strncpy(cmd, buf + 5, 255); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
126 | if (*name) { |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
127 | GtkTreeIter iter; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
128 | gtk_list_store_append(model, &iter); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
129 | gtk_list_store_set(model, &iter, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
130 | 0, g_strdup(name), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
131 | 1, g_strdup(cmd), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
132 | -1); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
133 | } |
|
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 | free(ibuf); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
138 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
139 | |
| 103 | 140 | |
| 141 | ||
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
142 | static int num_words(const char *m) { |
| 103 | 143 | int count = 0; |
| 144 | int pos; | |
| 145 | int state = 0; | |
| 146 | ||
| 147 | for (pos = 0; pos < strlen(m); pos++) { | |
| 148 | switch (state) { | |
| 149 | case 0: /* expecting word */ | |
|
1873
66c5f8b3f7fe
[gaim-migrate @ 1883]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1862
diff
changeset
|
150 | if (!isspace(m[pos]) && !ispunct(m[pos])) { |
| 103 | 151 | count++; |
| 152 | state = 1; | |
| 153 | } else if (m[pos] == '<') | |
| 154 | state = 2; | |
| 155 | break; | |
| 156 | case 1: /* inside word */ | |
|
112
232fe3aea76f
[gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
111
diff
changeset
|
157 | if (m[pos] == '<') |
|
232fe3aea76f
[gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
111
diff
changeset
|
158 | state = 2; |
|
1873
66c5f8b3f7fe
[gaim-migrate @ 1883]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1862
diff
changeset
|
159 | else if (isspace(m[pos]) || ispunct(m[pos])) |
| 103 | 160 | state = 0; |
| 161 | break; | |
| 162 | case 2: /* inside HTML tag */ | |
| 163 | if (m[pos] == '>') | |
| 164 | state = 0; | |
| 165 | break; | |
| 166 | } | |
| 167 | } | |
| 168 | return count; | |
| 169 | } | |
| 170 | ||
|
1081
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
171 | static int get_word(char *m, int word) { |
| 103 | 172 | int count = 0; |
| 173 | int pos = 0; | |
| 174 | int state = 0; | |
| 175 | ||
| 176 | for (pos = 0; pos < strlen(m) && count <= word; pos++) { | |
| 177 | switch (state) { | |
| 178 | case 0: | |
|
1862
930fbe4f89cf
[gaim-migrate @ 1872]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1740
diff
changeset
|
179 | if (!isspace(m[pos]) && !ispunct(m[pos])) { |
| 103 | 180 | count++; |
| 181 | state = 1; | |
| 182 | } else if (m[pos] == '<') | |
| 183 | state = 2; | |
| 184 | break; | |
| 185 | case 1: | |
|
112
232fe3aea76f
[gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
111
diff
changeset
|
186 | if (m[pos] == '<') |
|
232fe3aea76f
[gaim-migrate @ 122]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
111
diff
changeset
|
187 | state = 2; |
|
1862
930fbe4f89cf
[gaim-migrate @ 1872]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1740
diff
changeset
|
188 | else if (isspace(m[pos]) || ispunct(m[pos])) |
| 103 | 189 | state = 0; |
| 190 | break; | |
| 191 | case 2: | |
| 192 | if (m[pos] == '>') | |
| 193 | state = 0; | |
| 194 | break; | |
| 195 | } | |
| 196 | } | |
| 197 | return pos - 1; | |
| 198 | } | |
| 199 | ||
|
1081
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
200 | static char *have_word(char *m, int pos) { |
| 3733 | 201 | char *tmp = strpbrk(&m[pos], "' \t\f\r\n\"><.?!-,/"); |
| 103 | 202 | int len = (int)(tmp - &m[pos]); |
| 203 | ||
| 204 | if (tmp == NULL) { | |
| 205 | tmp = strdup(&m[pos]); | |
| 206 | return tmp; | |
| 207 | } | |
| 208 | ||
| 209 | tmp = malloc(len + 1); | |
| 210 | tmp[0] = 0; | |
| 211 | strncat(tmp, &m[pos], len); | |
| 212 | ||
| 213 | return tmp; | |
| 214 | } | |
| 215 | ||
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
216 | 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
|
217 | char *new = g_malloc(strlen(*mes) + strlen(text) + 1); |
| 103 | 218 | char *tmp; |
| 219 | new[0] = 0; | |
| 220 | ||
| 221 | strncat(new, *mes, pos); | |
| 222 | strcat(new, text); | |
| 223 | ||
| 224 | strcat(new, &(*mes)[pos + m]); | |
| 225 | tmp = *mes; | |
| 226 | *mes = new; | |
|
257
11380f0ee73e
[gaim-migrate @ 267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
208
diff
changeset
|
227 | g_free(tmp); |
| 103 | 228 | } |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
229 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
230 | static GtkWidget *tree; |
|
1081
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
231 | static GtkWidget *bad_entry; |
|
0fb24c9d4c7d
[gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1047
diff
changeset
|
232 | static GtkWidget *good_entry; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
233 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
234 | static void save_list(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
235 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
236 | static void on_edited(GtkCellRendererText *cellrenderertext, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
237 | gchar *path, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
238 | gchar *arg2, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
239 | gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
240 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
241 | GtkTreeIter iter; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
242 | GValue val; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
243 | if(arg2[0] == '\0') { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
244 | gdk_beep(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
245 | return; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
246 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
247 | memset(&val, 0, sizeof(val)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
248 | 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
|
249 | 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
|
250 | if(strcmp(arg2, g_value_get_string(&val))) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
251 | 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
|
252 | save_list(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
253 | printf("Editado! %s, %s\n", path, arg2); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
254 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
255 | g_value_unset(&val); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
256 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
257 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
258 | static void list_add_new() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
259 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
260 | GtkTreeIter iter; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
261 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
262 | gtk_list_store_append(model, &iter); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
263 | gtk_list_store_set(model, &iter, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
264 | 0, gtk_entry_get_text(GTK_ENTRY(bad_entry)), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
265 | 1, gtk_entry_get_text(GTK_ENTRY(good_entry)), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
266 | -1); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
267 | 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
|
268 | gtk_widget_grab_focus(bad_entry); |
|
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 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
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); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
298 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
299 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
300 | static void save_list() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
301 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
302 | FILE *f; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
303 | char *name; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
304 | GtkTreeIter iter; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
305 | char tempfilename[BUF_LONG]; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
306 | int fd; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
307 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
308 | name = g_build_filename(gaim_home_dir(), ".gaim", "dict", NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
309 | strcpy(tempfilename, name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
310 | strcat(tempfilename,".XXXXXX"); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
311 | fd = g_mkstemp(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
312 | if(fd<0) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
313 | perror(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
314 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
315 | return; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
316 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
317 | if (!(f = fdopen(fd, "w"))) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
318 | perror("fdopen"); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
319 | close(fd); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
320 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
321 | return; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
322 | } |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
323 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
324 | fchmod(fd, S_IRUSR | S_IWUSR); |
|
4373
fb2ae2f5edd3
[gaim-migrate @ 4639]
Herman Bloggs <herman@bluedigits.com>
parents:
4363
diff
changeset
|
325 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
326 | 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
|
327 | do { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
328 | GValue val0, val1; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
329 | memset(&val0, 0, sizeof(val0)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
330 | memset(&val1, 0, sizeof(val1)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
331 | 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
|
332 | 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
|
333 | 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
|
334 | g_value_unset(&val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
335 | g_value_unset(&val1); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
336 | } 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
|
337 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
338 | if(fclose(f)) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
339 | debug_printf("Error writing to %s: %m\n", tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
340 | unlink(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
341 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
342 | return; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
343 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
344 | rename(tempfilename, name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
345 | g_free(name); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
346 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
347 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
348 | static void |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
349 | check_if_something_is_selected(GtkTreeModel *model, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
350 | GtkTreePath *path, GtkTreeIter *iter, gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
351 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
352 | *((gboolean*)data) = TRUE; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
353 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
354 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
355 | static void on_selection_changed(GtkTreeSelection *sel, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
356 | gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
357 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
358 | gboolean is = FALSE; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
359 | 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
|
360 | gtk_widget_set_sensitive((GtkWidget*)data, is); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
361 | } |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
362 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
363 | static gboolean non_empty(const char *s) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
364 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
365 | while(*s && isspace(*s)) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
366 | s++; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
367 | return *s; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
368 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
369 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
370 | static void on_entry_changed(GtkEditable *editable, gpointer data) |
|
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 | gtk_widget_set_sensitive((GtkWidget*)data, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
373 | 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
|
374 | non_empty(gtk_entry_get_text(GTK_ENTRY(good_entry)))); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
375 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
376 | |
| 3630 | 377 | /* |
| 378 | * EXPORTED FUNCTIONS | |
| 379 | */ | |
| 380 | ||
| 381 | G_MODULE_EXPORT char *gaim_plugin_init(GModule *handle) { | |
| 382 | load_conf(); | |
| 383 | ||
| 384 | gaim_signal_connect(handle, event_im_send, substitute_words, NULL); | |
| 385 | gaim_signal_connect(handle, event_chat_send, substitute_words, NULL); | |
| 386 | return NULL; | |
| 387 | } | |
| 388 | ||
| 389 | G_MODULE_EXPORT void gaim_plugin_remove() { | |
| 390 | } | |
| 391 | ||
| 392 | struct gaim_plugin_description desc; | |
| 393 | G_MODULE_EXPORT struct gaim_plugin_description *gaim_plugin_desc() { | |
| 394 | desc.api_version = PLUGIN_API_VERSION; | |
| 4585 | 395 | desc.name = g_strdup(_("Text replacement")); |
| 3630 | 396 | desc.version = g_strdup(VERSION); |
| 4585 | 397 | desc.description = g_strdup(_("Replaces text in outgoing messages according to user-defined rules.")); |
| 3630 | 398 | desc.authors = g_strdup("Eric Warmehoven <eric@warmenhoven.org>"); |
| 399 | desc.url = g_strdup(WEBSITE); | |
| 400 | return &desc; | |
| 401 | } | |
| 402 | ||
| 403 | G_MODULE_EXPORT char *name() { | |
| 4585 | 404 | return _("Text replacement"); |
| 3630 | 405 | } |
| 406 | ||
| 407 | G_MODULE_EXPORT char *description() { | |
| 4585 | 408 | return _("Replaces text in outgoing messages according to user-defined rules."); |
| 3630 | 409 | } |
| 410 | ||
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
411 | G_MODULE_EXPORT GtkWidget *gaim_plugin_config_gtk() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
412 | { |
| 3565 | 413 | GtkWidget *ret, *vbox, *win; |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
414 | GtkWidget *hbox, *label; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
415 | GtkWidget *button; |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
416 | GtkSizeGroup *sg; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
417 | GtkCellRenderer *renderer; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
418 | GtkTreeViewColumn *column; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
419 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
420 | sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 3565 | 421 | |
| 422 | ret = gtk_vbox_new(FALSE, 18); | |
| 423 | gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
424 | |
| 3565 | 425 | vbox = make_frame(ret, _("Text Replacements")); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
426 | 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
|
427 | gtk_widget_set_size_request(vbox, 300, -1); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
428 | gtk_widget_show (vbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
429 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
430 | win = gtk_scrolled_window_new(0, 0); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
431 | gtk_container_add(GTK_CONTAINER(vbox), win); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
432 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (win), |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
433 | GTK_POLICY_AUTOMATIC, |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
434 | GTK_POLICY_AUTOMATIC); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
435 | gtk_widget_show(win); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
436 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
437 | 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
|
438 | /* 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
|
439 | gtk_widget_set_size_request(tree, 260,200); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
440 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
441 | renderer = gtk_cell_renderer_text_new (); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
442 | g_object_set (G_OBJECT (renderer), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
443 | "editable", TRUE, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
444 | NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
445 | g_signal_connect(G_OBJECT(renderer), "edited", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
446 | G_CALLBACK(on_edited), GINT_TO_POINTER(0)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
447 | 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
|
448 | renderer, "text", BAD_COLUMN, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
449 | 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
|
450 | gtk_tree_view_column_set_fixed_width(column, 130); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
451 | /* gtk_tree_view_column_set_resizable(column, TRUE); */ |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
452 | 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
|
453 | renderer = gtk_cell_renderer_text_new (); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
454 | g_object_set (G_OBJECT (renderer), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
455 | "editable", TRUE, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
456 | NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
457 | g_signal_connect(G_OBJECT(renderer), "edited", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
458 | G_CALLBACK(on_edited), GINT_TO_POINTER(1)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
459 | 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
|
460 | renderer, "text", GOOD_COLUMN, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
461 | 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
|
462 | gtk_tree_view_column_set_fixed_width(column, 130); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
463 | /* gtk_tree_view_column_set_resizable(column, TRUE); */ |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
464 | 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
|
465 | 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
|
466 | GTK_SELECTION_MULTIPLE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
467 | gtk_container_add(GTK_CONTAINER(win), tree); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
468 | gtk_widget_show(tree); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
469 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
470 | hbox = gtk_hbutton_box_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
471 | 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
|
472 | gtk_widget_show(hbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
473 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
474 | button = gtk_button_new_from_stock(GTK_STOCK_DELETE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
475 | g_signal_connect(G_OBJECT(button), "clicked", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
476 | G_CALLBACK(list_delete), NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
477 | 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
|
478 | gtk_widget_set_sensitive(button, FALSE); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
479 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
480 | 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
|
481 | "changed", G_CALLBACK(on_selection_changed), button); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
482 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
483 | gtk_widget_show(button); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
484 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
485 | vbox = make_frame(ret, _("Add a new text replacement")); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
486 | gtk_widget_set_size_request(vbox, 300, -1); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
487 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
488 | hbox = gtk_hbox_new(FALSE, 2); |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
489 | 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
|
490 | gtk_widget_show(hbox); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
491 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
492 | label = gtk_label_new_with_mnemonic(_("You _type:")); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
493 | 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
|
494 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
495 | bad_entry = gtk_entry_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
496 | 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
|
497 | 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
|
498 | gtk_size_group_add_widget(sg, bad_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
499 | 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
|
500 | gtk_widget_show(bad_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
501 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
502 | hbox = gtk_hbox_new(FALSE, 2); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
503 | 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
|
504 | gtk_widget_show(hbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
505 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
506 | label = gtk_label_new_with_mnemonic(_("You _send:")); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
507 | 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
|
508 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
509 | good_entry = gtk_entry_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
510 | 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
|
511 | 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
|
512 | gtk_size_group_add_widget(sg, good_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
513 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), good_entry); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
514 | gtk_widget_show(good_entry); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
515 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
516 | hbox = gtk_hbutton_box_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
517 | 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
|
518 | button = gtk_button_new_from_stock(GTK_STOCK_ADD); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
519 | g_signal_connect(G_OBJECT(button), "clicked", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
520 | G_CALLBACK(list_add_new), NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
521 | 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
|
522 | 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
|
523 | 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
|
524 | gtk_widget_set_sensitive(button, FALSE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
525 | gtk_widget_show(button); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
526 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
527 | |
| 3565 | 528 | gtk_widget_show_all(ret); |
| 529 | return ret; | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
530 | } |