Thu, 13 Mar 2003 20:29:58 +0000
[gaim-migrate @ 5065]
This has always bugged me. Now it has a shadow in like it should.
|
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); |
| 4601 | 269 | |
| 270 | save_list(); | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
271 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
272 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
273 | 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
|
274 | GtkTreeIter *iter, gpointer data) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
275 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
276 | GSList **list = (GSList **)data; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
277 | *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
|
278 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
279 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
280 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
281 | static void remove_row(void *data1, gpointer data2) |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
282 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
283 | GtkTreePath *path = (GtkTreePath*)data1; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
284 | GtkTreeIter iter; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
285 | 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
|
286 | gtk_list_store_remove(model, &iter); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
287 | gtk_tree_path_free(path); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
288 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
289 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
290 | static void list_delete() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
291 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
292 | GtkTreeSelection *sel; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
293 | GSList *list = NULL; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
294 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
295 | 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
|
296 | 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
|
297 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
298 | g_slist_foreach(list, remove_row, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
299 | g_slist_free(list); |
| 4601 | 300 | |
| 301 | save_list(); | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
302 | } |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
303 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
304 | static void save_list() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
305 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
306 | FILE *f; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
307 | char *name; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
308 | GtkTreeIter iter; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
309 | char tempfilename[BUF_LONG]; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
310 | int fd; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
311 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
312 | 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
|
313 | strcpy(tempfilename, name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
314 | strcat(tempfilename,".XXXXXX"); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
315 | fd = g_mkstemp(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
316 | if(fd<0) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
317 | perror(tempfilename); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
318 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
319 | return; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
320 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
321 | if (!(f = fdopen(fd, "w"))) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
322 | perror("fdopen"); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
323 | close(fd); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
324 | g_free(name); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
325 | return; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
326 | } |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
327 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
328 | fchmod(fd, S_IRUSR | S_IWUSR); |
|
4373
fb2ae2f5edd3
[gaim-migrate @ 4639]
Herman Bloggs <herman@bluedigits.com>
parents:
4363
diff
changeset
|
329 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
330 | 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
|
331 | do { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
332 | GValue val0, val1; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
333 | memset(&val0, 0, sizeof(val0)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
334 | memset(&val1, 0, sizeof(val1)); |
|
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, 0, &val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
336 | 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
|
337 | 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
|
338 | g_value_unset(&val0); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
339 | g_value_unset(&val1); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
340 | } 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
|
341 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
342 | if(fclose(f)) { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
343 | debug_printf("Error writing to %s: %m\n", tempfilename); |
|
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 | } |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
348 | rename(tempfilename, name); |
|
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 | { |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
369 | while(*s && isspace(*s)) |
|
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 | ||
| 385 | G_MODULE_EXPORT char *gaim_plugin_init(GModule *handle) { | |
| 386 | load_conf(); | |
| 387 | ||
| 388 | gaim_signal_connect(handle, event_im_send, substitute_words, NULL); | |
| 389 | gaim_signal_connect(handle, event_chat_send, substitute_words, NULL); | |
| 390 | return NULL; | |
| 391 | } | |
| 392 | ||
| 393 | G_MODULE_EXPORT void gaim_plugin_remove() { | |
| 394 | } | |
| 395 | ||
| 396 | struct gaim_plugin_description desc; | |
| 397 | G_MODULE_EXPORT struct gaim_plugin_description *gaim_plugin_desc() { | |
| 398 | desc.api_version = PLUGIN_API_VERSION; | |
| 4585 | 399 | desc.name = g_strdup(_("Text replacement")); |
| 3630 | 400 | desc.version = g_strdup(VERSION); |
| 4585 | 401 | desc.description = g_strdup(_("Replaces text in outgoing messages according to user-defined rules.")); |
| 3630 | 402 | desc.authors = g_strdup("Eric Warmehoven <eric@warmenhoven.org>"); |
| 403 | desc.url = g_strdup(WEBSITE); | |
| 404 | return &desc; | |
| 405 | } | |
| 406 | ||
| 407 | G_MODULE_EXPORT char *name() { | |
| 4585 | 408 | return _("Text replacement"); |
| 3630 | 409 | } |
| 410 | ||
| 411 | G_MODULE_EXPORT char *description() { | |
| 4585 | 412 | return _("Replaces text in outgoing messages according to user-defined rules."); |
| 3630 | 413 | } |
| 414 | ||
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
415 | G_MODULE_EXPORT GtkWidget *gaim_plugin_config_gtk() |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
416 | { |
| 3565 | 417 | GtkWidget *ret, *vbox, *win; |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
418 | GtkWidget *hbox, *label; |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
419 | GtkWidget *button; |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
420 | GtkSizeGroup *sg; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
421 | GtkCellRenderer *renderer; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
422 | GtkTreeViewColumn *column; |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
423 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
424 | sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 3565 | 425 | |
| 426 | ret = gtk_vbox_new(FALSE, 18); | |
| 427 | gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
428 | |
| 3565 | 429 | vbox = make_frame(ret, _("Text Replacements")); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
430 | 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
|
431 | gtk_widget_set_size_request(vbox, 300, -1); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
432 | gtk_widget_show (vbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
433 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
434 | win = gtk_scrolled_window_new(0, 0); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
435 | gtk_container_add(GTK_CONTAINER(vbox), win); |
|
4750
65e08e21fbd9
[gaim-migrate @ 5065]
Christian Hammond <chipx86@chipx86.com>
parents:
4601
diff
changeset
|
436 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(win), |
|
65e08e21fbd9
[gaim-migrate @ 5065]
Christian Hammond <chipx86@chipx86.com>
parents:
4601
diff
changeset
|
437 | GTK_SHADOW_IN); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
438 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (win), |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
439 | GTK_POLICY_AUTOMATIC, |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
440 | GTK_POLICY_AUTOMATIC); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
441 | gtk_widget_show(win); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
442 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
443 | 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
|
444 | /* 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
|
445 | gtk_widget_set_size_request(tree, 260,200); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
446 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
447 | renderer = gtk_cell_renderer_text_new (); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
448 | g_object_set (G_OBJECT (renderer), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
449 | "editable", TRUE, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
450 | NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
451 | g_signal_connect(G_OBJECT(renderer), "edited", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
452 | G_CALLBACK(on_edited), GINT_TO_POINTER(0)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
453 | 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
|
454 | renderer, "text", BAD_COLUMN, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
455 | 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
|
456 | gtk_tree_view_column_set_fixed_width(column, 130); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
457 | /* gtk_tree_view_column_set_resizable(column, TRUE); */ |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
458 | 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
|
459 | renderer = gtk_cell_renderer_text_new (); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
460 | g_object_set (G_OBJECT (renderer), |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
461 | "editable", TRUE, |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
462 | NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
463 | g_signal_connect(G_OBJECT(renderer), "edited", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
464 | G_CALLBACK(on_edited), GINT_TO_POINTER(1)); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
465 | 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
|
466 | renderer, "text", GOOD_COLUMN, NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
467 | 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
|
468 | gtk_tree_view_column_set_fixed_width(column, 130); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
469 | /* gtk_tree_view_column_set_resizable(column, TRUE); */ |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
470 | 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
|
471 | 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
|
472 | GTK_SELECTION_MULTIPLE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
473 | gtk_container_add(GTK_CONTAINER(win), tree); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
474 | gtk_widget_show(tree); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
475 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
476 | hbox = gtk_hbutton_box_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
477 | 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
|
478 | gtk_widget_show(hbox); |
|
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 | button = gtk_button_new_from_stock(GTK_STOCK_DELETE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
481 | g_signal_connect(G_OBJECT(button), "clicked", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
482 | G_CALLBACK(list_delete), NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
483 | 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
|
484 | gtk_widget_set_sensitive(button, FALSE); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
485 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
486 | 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
|
487 | "changed", G_CALLBACK(on_selection_changed), button); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
488 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
489 | gtk_widget_show(button); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
490 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
491 | vbox = make_frame(ret, _("Add a new text replacement")); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
492 | gtk_widget_set_size_request(vbox, 300, -1); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
493 | |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
494 | hbox = gtk_hbox_new(FALSE, 2); |
|
4348
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); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
496 | gtk_widget_show(hbox); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
497 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
498 | label = gtk_label_new_with_mnemonic(_("You _type:")); |
|
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); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
500 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
501 | bad_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(bad_entry), 40); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
503 | 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
|
504 | gtk_size_group_add_widget(sg, bad_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), bad_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
506 | gtk_widget_show(bad_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
507 | |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
508 | hbox = gtk_hbox_new(FALSE, 2); |
|
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); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
510 | gtk_widget_show(hbox); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
511 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
512 | label = gtk_label_new_with_mnemonic(_("You _send:")); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
513 | 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
|
514 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
515 | good_entry = gtk_entry_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
516 | 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
|
517 | 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
|
518 | gtk_size_group_add_widget(sg, good_entry); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
519 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), good_entry); |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
520 | gtk_widget_show(good_entry); |
|
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
521 | |
|
4348
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
522 | hbox = gtk_hbutton_box_new(); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
523 | 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
|
524 | button = gtk_button_new_from_stock(GTK_STOCK_ADD); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
525 | g_signal_connect(G_OBJECT(button), "clicked", |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
526 | G_CALLBACK(list_add_new), NULL); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
527 | 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
|
528 | 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
|
529 | 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
|
530 | gtk_widget_set_sensitive(button, FALSE); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
531 | gtk_widget_show(button); |
|
74cba81defc4
[gaim-migrate @ 4613]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4202
diff
changeset
|
532 | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
533 | |
| 3565 | 534 | gtk_widget_show_all(ret); |
| 535 | return ret; | |
|
111
36f6e0baf0a0
[gaim-migrate @ 121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
106
diff
changeset
|
536 | } |