Tue, 30 Sep 2003 23:31:35 +0000
[gaim-migrate @ 7654]
Fixed a crash on dragging buddies into conv windows. Closes 814887.
| 1 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 4 | * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
5 | * |
| 1 | 6 | * This program is free software; you can redistribute it and/or modify |
| 7 | * it under the terms of the GNU General Public License as published by | |
| 8 | * the Free Software Foundation; either version 2 of the License, or | |
| 9 | * (at your option) any later version. | |
| 10 | * | |
| 11 | * This program is distributed in the hope that it will be useful, | |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 | * GNU General Public License for more details. | |
| 15 | * | |
| 16 | * You should have received a copy of the GNU General Public License | |
| 17 | * along with this program; if not, write to the Free Software | |
| 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 | */ | |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
20 | #include "gtkinternal.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
21 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
22 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
23 | #include "log.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
24 | #include "multi.h" |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
25 | #include "notify.h" |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
26 | #include "prefs.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
27 | #include "prpl.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
28 | #include "request.h" |
| 6065 | 29 | #include "status.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
30 | #include "util.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
31 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
32 | #include "gtkblist.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
33 | #include "gtkconv.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
34 | #include "gtkimhtml.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
35 | #include "gtkprefs.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
36 | #include "gtkutils.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
37 | #include "stock.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
38 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
39 | #include "ui.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
40 | |
|
7060
717cbeb22b6d
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
41 | #ifdef USE_GTKSPELL |
|
717cbeb22b6d
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
42 | # include <gtkspell/gtkspell.h> |
|
717cbeb22b6d
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
43 | #endif |
|
717cbeb22b6d
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
44 | |
|
6646
b9a0b5eb74e6
[gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents:
6640
diff
changeset
|
45 | /* XXX */ |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
46 | #include "gaim.h" |
| 1035 | 47 | |
|
7057
65e49a3e314c
[gaim-migrate @ 7620]
Herman Bloggs <herman@bluedigits.com>
parents:
7055
diff
changeset
|
48 | #ifdef _WIN32 |
|
65e49a3e314c
[gaim-migrate @ 7620]
Herman Bloggs <herman@bluedigits.com>
parents:
7055
diff
changeset
|
49 | # include "wspell.h" |
|
65e49a3e314c
[gaim-migrate @ 7620]
Herman Bloggs <herman@bluedigits.com>
parents:
7055
diff
changeset
|
50 | #endif |
|
65e49a3e314c
[gaim-migrate @ 7620]
Herman Bloggs <herman@bluedigits.com>
parents:
7055
diff
changeset
|
51 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
52 | static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ |
| 1 | 53 | static GList *dialogwindows = NULL; |
|
2493
ec90aa48cd51
[gaim-migrate @ 2506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2472
diff
changeset
|
54 | static GtkWidget *importdialog; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
55 | static GaimConnection *importgc; |
| 2344 | 56 | static GtkWidget *icondlg; |
| 1729 | 57 | static GtkWidget *rename_dialog = NULL; |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
58 | static GtkWidget *fontseld = NULL; |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
59 | |
| 3649 | 60 | |
| 2743 | 61 | struct confirm_del { |
| 62 | GtkWidget *window; | |
| 63 | GtkWidget *label; | |
| 64 | GtkWidget *ok; | |
| 65 | GtkWidget *cancel; | |
| 66 | char name[1024]; | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
67 | GaimConnection *gc; |
| 2743 | 68 | }; |
| 69 | ||
| 1 | 70 | struct create_away { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
71 | GtkWidget *window; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
72 | GtkWidget *entry; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
73 | GtkWidget *text; |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
74 | struct away_message *mess; |
| 1 | 75 | }; |
| 76 | ||
| 77 | struct warning { | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
78 | GtkWidget *window; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
79 | GtkWidget *anon; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
80 | char *who; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
81 | GaimConnection *gc; |
| 1 | 82 | }; |
| 83 | ||
| 84 | struct findbyemail { | |
| 85 | GtkWidget *window; | |
| 86 | GtkWidget *emailentry; | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
87 | GaimConnection *gc; |
| 1 | 88 | }; |
| 89 | ||
| 90 | struct findbyinfo { | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
91 | GaimConnection *gc; |
| 1 | 92 | GtkWidget *window; |
| 93 | GtkWidget *firstentry; | |
| 94 | GtkWidget *middleentry; | |
| 95 | GtkWidget *lastentry; | |
| 96 | GtkWidget *maidenentry; | |
| 97 | GtkWidget *cityentry; | |
| 98 | GtkWidget *stateentry; | |
| 99 | GtkWidget *countryentry; | |
| 100 | }; | |
| 101 | ||
| 102 | struct info_dlg { | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
103 | GaimConnection *gc; |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
104 | char *who; |
| 1 | 105 | GtkWidget *window; |
| 106 | GtkWidget *text; | |
| 107 | }; | |
| 3197 | 108 | |
| 109 | struct getuserinfo { | |
| 110 | GtkWidget *window; | |
| 111 | GtkWidget *entry; | |
| 112 | GtkWidget *account; | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
113 | GaimConnection *gc; |
| 3197 | 114 | }; |
| 115 | ||
|
6334
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
116 | typedef struct |
|
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
117 | { |
|
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
118 | char *username; |
|
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
119 | gboolean block; |
|
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
120 | GaimConnection *gc; |
|
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
121 | |
|
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
122 | } GaimGtkBlockData; |
|
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
123 | |
| 1 | 124 | struct set_info_dlg { |
| 125 | GtkWidget *window; | |
|
960
c4012584334f
[gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
940
diff
changeset
|
126 | GtkWidget *menu; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
127 | GaimAccount *account; |
| 1 | 128 | GtkWidget *text; |
| 129 | GtkWidget *save; | |
| 130 | GtkWidget *cancel; | |
| 131 | }; | |
| 132 | ||
| 2344 | 133 | struct set_icon_dlg { |
| 134 | GtkWidget *window; | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
135 | GaimAccount *account; |
| 2344 | 136 | GtkWidget *ok; |
| 137 | GtkWidget *cancel; | |
| 138 | GtkWidget *entry; | |
| 139 | }; | |
| 140 | ||
| 1 | 141 | struct set_dir_dlg { |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
142 | GaimConnection *gc; |
| 1 | 143 | GtkWidget *window; |
| 144 | GtkWidget *first; | |
| 145 | GtkWidget *middle; | |
| 146 | GtkWidget *last; | |
| 147 | GtkWidget *maiden; | |
| 148 | GtkWidget *city; | |
| 149 | GtkWidget *state; | |
| 150 | GtkWidget *country; | |
| 151 | GtkWidget *web; | |
| 152 | GtkWidget *cancel; | |
| 153 | GtkWidget *save; | |
| 154 | }; | |
| 155 | ||
| 156 | struct linkdlg { | |
| 157 | GtkWidget *ok; | |
| 158 | GtkWidget *cancel; | |
| 159 | GtkWidget *window; | |
| 160 | GtkWidget *url; | |
| 161 | GtkWidget *text; | |
| 162 | GtkWidget *toggle; | |
| 163 | GtkWidget *entry; | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
164 | GaimConversation *c; |
| 1 | 165 | }; |
| 166 | ||
| 146 | 167 | struct passwddlg { |
| 168 | GtkWidget *window; | |
| 169 | GtkWidget *ok; | |
| 170 | GtkWidget *cancel; | |
| 171 | GtkWidget *original; | |
| 172 | GtkWidget *new1; | |
| 173 | GtkWidget *new2; | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
174 | GaimConnection *gc; |
| 146 | 175 | }; |
| 1 | 176 | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
177 | struct view_log { |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
178 | long offset; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
179 | int options; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
180 | char *name; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
181 | GtkWidget *bbox; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
182 | GtkWidget *window; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
183 | GtkWidget *layout; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
184 | }; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
185 | |
| 4119 | 186 | /* Wrapper to get all the text from a GtkTextView */ |
| 187 | gchar* gtk_text_view_get_text(GtkTextView *text, gboolean include_hidden_chars) | |
| 188 | { | |
| 189 | GtkTextBuffer *buffer; | |
| 190 | GtkTextIter start, end; | |
| 191 | ||
| 192 | buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); | |
| 193 | gtk_text_buffer_get_start_iter(buffer, &start); | |
| 194 | gtk_text_buffer_get_end_iter(buffer, &end); | |
| 195 | ||
| 196 | return gtk_text_buffer_get_text(buffer, &start, &end, include_hidden_chars); | |
| 197 | } | |
| 198 | ||
| 1 | 199 | /*------------------------------------------------------------------------*/ |
| 200 | /* Destroys */ | |
| 201 | /*------------------------------------------------------------------------*/ | |
| 202 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
203 | static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, GaimConversation *c) |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
204 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
205 | GaimGtkConversation *gtkconv; |
|
605
3d93a5c09c8f
[gaim-migrate @ 615]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
603
diff
changeset
|
206 | gchar *object_data; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
207 | |
| 4635 | 208 | object_data = g_object_get_data(G_OBJECT(w), "dialog_type"); |
|
605
3d93a5c09c8f
[gaim-migrate @ 615]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
603
diff
changeset
|
209 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
210 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
211 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
212 | if (GTK_IS_COLOR_SELECTION_DIALOG(w)) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
213 | if (w == gtkconv->dialogs.fg_color) { |
| 4635 | 214 | gtk_toggle_button_set_active( |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
215 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
216 | gtkconv->dialogs.fg_color = NULL; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
217 | } else { |
| 4635 | 218 | gtk_toggle_button_set_active( |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
219 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
220 | gtkconv->dialogs.bg_color = NULL; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
221 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
222 | } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) { |
| 4635 | 223 | gtk_toggle_button_set_active( |
| 4685 | 224 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
225 | gtkconv->dialogs.font = NULL; |
| 4793 | 226 | } else if (!g_ascii_strcasecmp(object_data, "smiley dialog")) { |
| 4635 | 227 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
228 | FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
229 | gtkconv->dialogs.smiley = NULL; |
| 4793 | 230 | } else if (!g_ascii_strcasecmp(object_data, "log dialog")) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
231 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->toolbar.log), |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
232 | FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
233 | gtkconv->dialogs.log = NULL; |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
234 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
235 | |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
236 | dialogwindows = g_list_remove(dialogwindows, w); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
237 | gtk_widget_destroy(w); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
238 | |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
239 | return FALSE; |
|
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
240 | } |
| 1 | 241 | |
| 242 | static void destroy_dialog(GtkWidget *w, GtkWidget *w2) | |
| 243 | { | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
244 | GtkWidget *dest; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
245 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
246 | if (!GTK_IS_WIDGET(w2)) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
247 | dest = w; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
248 | else |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
249 | dest = w2; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
250 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
251 | if (dest == imdialog) |
| 1 | 252 | imdialog = NULL; |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
253 | else if (dest == importdialog) { |
| 1 | 254 | importdialog = NULL; |
|
2493
ec90aa48cd51
[gaim-migrate @ 2506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2472
diff
changeset
|
255 | importgc = NULL; |
|
ec90aa48cd51
[gaim-migrate @ 2506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2472
diff
changeset
|
256 | } |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
257 | else if (dest == icondlg) |
| 2344 | 258 | icondlg = NULL; |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
259 | else if (dest == rename_dialog) |
| 1729 | 260 | rename_dialog = NULL; |
| 261 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
262 | dialogwindows = g_list_remove(dialogwindows, dest); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
263 | gtk_widget_destroy(dest); |
| 1 | 264 | } |
| 265 | ||
| 266 | ||
| 267 | void destroy_all_dialogs() | |
| 268 | { | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
269 | while (dialogwindows) |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
270 | destroy_dialog(NULL, dialogwindows->data); |
| 1 | 271 | |
|
391
677e4414a83f
[gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
350
diff
changeset
|
272 | if (awaymessage) |
|
677e4414a83f
[gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
350
diff
changeset
|
273 | do_im_back(NULL, NULL); |
|
84
419c24cfe582
[gaim-migrate @ 94]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
274 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
275 | if (imdialog) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
276 | destroy_dialog(NULL, imdialog); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
277 | imdialog = NULL; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
278 | } |
| 935 | 279 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
280 | if (importdialog) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
281 | destroy_dialog(NULL, importdialog); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
282 | importdialog = NULL; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
283 | } |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
284 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
285 | if (icondlg) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
286 | destroy_dialog(NULL, icondlg); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
287 | icondlg = NULL; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
288 | } |
| 1 | 289 | } |
| 290 | ||
| 3757 | 291 | static void do_warn(GtkWidget *widget, gint resp, struct warning *w) |
| 1 | 292 | { |
| 3757 | 293 | if (resp == GTK_RESPONSE_OK) |
| 294 | serv_warn(w->gc, w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? 1 : 0); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
295 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
296 | destroy_dialog(NULL, w->window); |
|
1288
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
297 | g_free(w); |
|
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
298 | } |
| 1 | 299 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
300 | void show_warn_dialog(GaimConnection *gc, char *who) |
| 1 | 301 | { |
| 3757 | 302 | char *labeltext; |
| 303 | GtkWidget *hbox, *vbox; | |
| 1 | 304 | GtkWidget *label; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
305 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); |
|
6640
007eb21016b4
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
306 | GaimConversation *c = gaim_find_conversation_with_account(who, gc->account); |
| 441 | 307 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
308 | struct warning *w = g_new0(struct warning, 1); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
309 | w->who = who; |
|
1288
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
310 | w->gc = gc; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
311 | |
| 3757 | 312 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 313 | ||
| 6112 | 314 | w->window = gtk_dialog_new_with_buttons(_("Warn User"), |
| 315 | GTK_WINDOW(GAIM_GTK_WINDOW(c->window)->window), 0, | |
| 316 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | |
| 317 | _("_Warn"), GTK_RESPONSE_OK, NULL); | |
| 4118 | 318 | gtk_dialog_set_default_response (GTK_DIALOG(w->window), GTK_RESPONSE_OK); |
| 3757 | 319 | g_signal_connect(G_OBJECT(w->window), "response", G_CALLBACK(do_warn), w); |
| 320 | ||
| 321 | gtk_container_set_border_width (GTK_CONTAINER(w->window), 6); | |
| 322 | gtk_window_set_resizable(GTK_WINDOW(w->window), FALSE); | |
| 323 | gtk_dialog_set_has_separator(GTK_DIALOG(w->window), FALSE); | |
| 324 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(w->window)->vbox), 12); | |
| 325 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), 6); | |
| 326 | ||
| 327 | hbox = gtk_hbox_new(FALSE, 12); | |
| 328 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox); | |
| 329 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
330 | |
| 3757 | 331 | vbox = gtk_vbox_new(FALSE, 0); |
| 332 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 333 | labeltext = g_strdup_printf(_("<span weight=\"bold\" size=\"larger\">Warn %s?</span>\n\n" | |
| 334 | "This will increase %s's warning level and he or she will be subject to harsher rate limiting.\n"), who, who); | |
| 335 | label = gtk_label_new(NULL); | |
| 336 | gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 337 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 338 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 339 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 340 | g_free(labeltext); | |
| 341 | ||
| 342 | w->anon = gtk_check_button_new_with_mnemonic(_("Warn _anonymously?")); | |
| 343 | gtk_box_pack_start(GTK_BOX(vbox), w->anon, FALSE, FALSE, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
344 | |
| 3757 | 345 | hbox = gtk_hbox_new(FALSE, 6); |
| 346 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 347 | img = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_MENU); | |
| 348 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 349 | labeltext = _("<b>Anonymous warnings are less severe.</b>"); | |
| 350 | /* labeltext = _("Anonymous warnings are less severe."); */ | |
| 351 | label = gtk_label_new(NULL); | |
| 352 | gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 353 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 354 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 355 | ||
|
1288
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
356 | dialogwindows = g_list_prepend(dialogwindows, w->window); |
| 3757 | 357 | gtk_widget_show_all(w->window); |
| 1 | 358 | } |
| 359 | ||
|
6334
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
360 | static void |
| 6695 | 361 | do_remove_chat(GaimBlistChat *chat) |
| 5234 | 362 | { |
| 363 | gaim_blist_remove_chat(chat); | |
| 364 | gaim_blist_save(); | |
| 365 | } | |
| 366 | ||
|
6334
47a748d6fb0f
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
367 | static void |
| 6695 | 368 | do_remove_buddy(GaimBuddy *b) |
| 2743 | 369 | { |
| 6695 | 370 | GaimGroup *g; |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
371 | GaimConversation *c; |
|
4918
0600d084c97a
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
372 | gchar *name; |
|
6640
007eb21016b4
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
373 | GaimAccount *account; |
| 2743 | 374 | |
| 375 | if (!b) | |
| 376 | return; | |
| 377 | ||
| 4687 | 378 | g = gaim_find_buddys_group(b); |
|
6640
007eb21016b4
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
379 | name = g_strdup(b->name); /* b->name is a crasher after remove_buddy */ |
|
007eb21016b4
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
380 | account = b->account; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
381 | |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
382 | gaim_debug(GAIM_DEBUG_INFO, "blist", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
383 | "Removing '%s' from buddy list.\n", b->name); |
| 4491 | 384 | serv_remove_buddy(b->account->gc, name, g->name); |
| 4687 | 385 | gaim_blist_remove_buddy(b); |
| 4349 | 386 | gaim_blist_save(); |
| 2743 | 387 | |
|
6640
007eb21016b4
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
388 | c = gaim_find_conversation_with_account(name, account); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
389 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
390 | if (c != NULL) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
391 | gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); |
| 4397 | 392 | |
| 393 | g_free(name); | |
| 2743 | 394 | } |
| 395 | ||
| 6742 | 396 | static void do_remove_contact(GaimContact *c) |
| 397 | { | |
| 398 | GaimBlistNode *bnode, *cnode; | |
| 399 | GaimGroup *g; | |
| 400 | ||
| 401 | if(!c) | |
| 402 | return; | |
| 403 | ||
| 404 | cnode = (GaimBlistNode *)c; | |
| 405 | g = (GaimGroup*)cnode->parent; | |
| 406 | for(bnode = cnode->child; bnode; bnode = bnode->next) { | |
| 407 | GaimBuddy *b = (GaimBuddy*)bnode; | |
| 408 | if(b->account->gc) | |
| 409 | serv_remove_buddy(b->account->gc, b->name, g->name); | |
| 410 | } | |
| 411 | gaim_blist_remove_contact(c); | |
| 412 | } | |
| 413 | ||
| 6695 | 414 | void do_remove_group(GaimGroup *g) |
| 4916 | 415 | { |
| 6695 | 416 | GaimBlistNode *cnode, *bnode; |
|
6885
65132ebfc662
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6878
diff
changeset
|
417 | |
| 6695 | 418 | cnode = ((GaimBlistNode*)g)->child; |
|
6885
65132ebfc662
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6878
diff
changeset
|
419 | |
| 6695 | 420 | while(cnode) { |
| 421 | if(GAIM_BLIST_NODE_IS_CONTACT(cnode)) { | |
| 422 | bnode = cnode->child; | |
| 423 | cnode = cnode->next; | |
| 424 | while(bnode) { | |
| 425 | GaimBuddy *b; | |
| 426 | if(GAIM_BLIST_NODE_IS_BUDDY(bnode)) { | |
|
6745
68569c0a6865
[gaim-migrate @ 7277]
Herman Bloggs <herman@bluedigits.com>
parents:
6742
diff
changeset
|
427 | GaimConversation *c; |
|
68569c0a6865
[gaim-migrate @ 7277]
Herman Bloggs <herman@bluedigits.com>
parents:
6742
diff
changeset
|
428 | b = (GaimBuddy*)bnode; |
| 6695 | 429 | bnode = bnode->next; |
|
6745
68569c0a6865
[gaim-migrate @ 7277]
Herman Bloggs <herman@bluedigits.com>
parents:
6742
diff
changeset
|
430 | c = gaim_find_conversation_with_account(b->name, b->account); |
| 6695 | 431 | if(gaim_account_is_connected(b->account)) { |
| 432 | serv_remove_buddy(b->account->gc, b->name, g->name); | |
| 433 | gaim_blist_remove_buddy(b); | |
| 434 | if(c) | |
| 435 | gaim_conversation_update(c, | |
| 436 | GAIM_CONV_UPDATE_REMOVE); | |
| 437 | } | |
| 438 | } else { | |
| 439 | bnode = bnode->next; | |
| 440 | } | |
| 5234 | 441 | } |
| 6695 | 442 | } else if(GAIM_BLIST_NODE_IS_CHAT(cnode)) { |
| 443 | GaimBlistChat *chat = (GaimBlistChat *)cnode; | |
| 444 | cnode = cnode->next; | |
| 445 | if(gaim_account_is_connected(chat->account)) | |
| 6088 | 446 | gaim_blist_remove_chat(chat); |
| 6695 | 447 | } else { |
| 448 | cnode = cnode->next; | |
| 4938 | 449 | } |
| 4916 | 450 | } |
|
6885
65132ebfc662
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6878
diff
changeset
|
451 | |
| 4916 | 452 | gaim_blist_remove_group(g); |
| 453 | gaim_blist_save(); | |
| 454 | } | |
| 455 | ||
| 6695 | 456 | void show_confirm_del(GaimBuddy *b) |
| 2743 | 457 | { |
| 3753 | 458 | char *text; |
|
5975
13a28ae5e87d
[gaim-migrate @ 6422]
Mark Doliner <markdoliner@pidgin.im>
parents:
5970
diff
changeset
|
459 | if (!b) |
| 3753 | 460 | return; |
| 461 | ||
|
5975
13a28ae5e87d
[gaim-migrate @ 6422]
Mark Doliner <markdoliner@pidgin.im>
parents:
5970
diff
changeset
|
462 | text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), b->name); |
|
13a28ae5e87d
[gaim-migrate @ 6422]
Mark Doliner <markdoliner@pidgin.im>
parents:
5970
diff
changeset
|
463 | |
|
13a28ae5e87d
[gaim-migrate @ 6422]
Mark Doliner <markdoliner@pidgin.im>
parents:
5970
diff
changeset
|
464 | gaim_request_action(NULL, NULL, _("Remove Buddy"), text, -1, b, 2, |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
465 | _("Remove Buddy"), G_CALLBACK(do_remove_buddy), |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
466 | _("Cancel"), NULL); |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
467 | |
| 3753 | 468 | g_free(text); |
| 2743 | 469 | } |
| 470 | ||
| 6695 | 471 | void show_confirm_del_blist_chat(GaimBlistChat *chat) |
| 5234 | 472 | { |
| 6695 | 473 | char *name = gaim_blist_chat_get_display_name(chat); |
| 6034 | 474 | char *text = g_strdup_printf(_("You are about to remove the chat %s from your buddy list. Do you want to continue?"), name); |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
475 | |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
476 | gaim_request_action(NULL, NULL, _("Remove Chat"), text, -1, chat, 2, |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
477 | _("Remove Chat"), G_CALLBACK(do_remove_chat), |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
478 | _("Cancel"), NULL); |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
479 | |
| 6034 | 480 | g_free(name); |
| 5234 | 481 | g_free(text); |
| 482 | } | |
| 483 | ||
| 6695 | 484 | void show_confirm_del_group(GaimGroup *g) |
| 4916 | 485 | { |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
486 | char *text = g_strdup_printf(_("You are about to remove the group %s and all its members from your buddy list. Do you want to continue?"), |
| 4916 | 487 | g->name); |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
488 | |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
489 | gaim_request_action(NULL, NULL, _("Remove Group"), text, -1, g, 2, |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
490 | _("Remove Group"), G_CALLBACK(do_remove_group), |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
491 | _("Cancel"), NULL); |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
492 | |
| 4916 | 493 | g_free(text); |
| 494 | } | |
| 1 | 495 | |
| 6742 | 496 | void show_confirm_del_contact(GaimContact *c) |
| 497 | { | |
| 498 | GaimBuddy *b = gaim_contact_get_priority_buddy(c); | |
| 499 | ||
| 500 | if(!b) | |
| 501 | return; | |
| 502 | ||
| 503 | if(((GaimBlistNode*)c)->child == (GaimBlistNode*)b && | |
| 504 | !((GaimBlistNode*)b)->next) { | |
| 505 | show_confirm_del(b); | |
| 506 | } else { | |
| 507 | char *text = g_strdup_printf(_("You are about to remove the contact containing %s and %d other buddies from your buddy list. Do you want to continue?"), | |
| 508 | b->name, c->totalsize - 1); | |
| 509 | ||
| 510 | gaim_request_action(NULL, NULL, _("Remove Contact"), text, -1, c, 2, | |
| 511 | _("Remove Contact"), G_CALLBACK(do_remove_contact), | |
| 512 | _("Cancel"), NULL); | |
| 513 | ||
| 514 | g_free(text); | |
| 515 | } | |
| 516 | } | |
| 517 | ||
| 1 | 518 | /*------------------------------------------------------------------------*/ |
| 519 | /* The dialog for getting an error */ | |
| 520 | /*------------------------------------------------------------------------*/ | |
| 3816 | 521 | static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info) |
| 1 | 522 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
523 | const char *who; |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
524 | GaimConversation *conv; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
525 | GaimAccount *account; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
526 | |
| 3802 | 527 | if (resp == GTK_RESPONSE_OK) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
528 | who = gtk_entry_get_text(GTK_ENTRY(info->entry)); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
529 | |
| 4613 | 530 | if (!who || !*who) { |
| 531 | /* this shouldn't ever happen */ | |
| 3802 | 532 | return; |
| 533 | } | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
534 | |
| 4491 | 535 | account = (info->gc ? info->gc->account : NULL); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
536 | |
|
6640
007eb21016b4
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
537 | conv = gaim_find_conversation_with_account(who, account); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
538 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
539 | if (conv == NULL) |
| 4491 | 540 | conv = gaim_conversation_new(GAIM_CONV_IM, account, who); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
541 | else { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
542 | gaim_window_raise(gaim_conversation_get_window(conv)); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
543 | } |
| 1 | 544 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
545 | |
| 3816 | 546 | destroy_dialog(NULL, imdialog); |
| 547 | imdialog = NULL; | |
| 4138 | 548 | g_free(info); |
| 1 | 549 | } |
| 550 | ||
| 3802 | 551 | static void do_info(GtkWidget *widget, int resp, struct getuserinfo *info) |
| 935 | 552 | { |
| 553 | char *who; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
554 | |
| 3802 | 555 | if (resp == GTK_RESPONSE_OK) { |
| 556 | who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(info->entry)))); | |
| 557 | ||
| 4793 | 558 | if (!g_ascii_strcasecmp(who, "")) { |
| 3802 | 559 | g_free(who); |
| 560 | return; | |
| 561 | } | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
562 | |
| 3802 | 563 | /* what do we want to do about this case? */ |
| 564 | if (info->gc) | |
| 565 | serv_get_info(info->gc, who); | |
| 1729 | 566 | g_free(who); |
| 935 | 567 | } |
| 3802 | 568 | gtk_widget_destroy(GTK_WIDGET(widget)); |
| 4138 | 569 | g_free(info); |
| 935 | 570 | } |
| 571 | ||
| 1 | 572 | void show_ee_dialog(int ee) |
| 573 | { | |
| 3767 | 574 | GtkWidget *window; |
| 575 | GtkWidget *hbox; | |
| 1 | 576 | GtkWidget *label; |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
577 | struct gaim_gtk_buddy_list *gtkblist; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
578 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_COOL, GTK_ICON_SIZE_DIALOG); |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
579 | |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
580 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
581 | |
| 3767 | 582 | label = gtk_label_new(NULL); |
| 1 | 583 | if (ee == 0) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
584 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 585 | "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>"); |
| 1 | 586 | else if (ee == 1) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
587 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 588 | "<span weight=\"bold\" size=\"large\" foreground=\"#1f6bad\">Pimpin\' Penguin Style! *Waddle Waddle*</span>"); |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
337
diff
changeset
|
589 | else if (ee == 2) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
590 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 591 | "<span weight=\"bold\" size=\"large\" foreground=\"blue\">You should be me. I'm so cute!</span>"); |
| 2472 | 592 | else if (ee == 3) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
593 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 594 | "<span weight=\"bold\" size=\"large\" foreground=\"orange\">Now that's what I like!</span>"); |
| 2993 | 595 | else if (ee == 4) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
596 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 597 | "<span weight=\"bold\" size=\"large\" foreground=\"brown\">Ahh, and excellent choice!</span>"); |
| 3043 | 598 | else if (ee == 5) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
599 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 600 | "<span weight=\"bold\" size=\"large\" foreground=\"#009900\">Everytime you click my name, an angel gets its wings.</span>"); |
| 3152 | 601 | else if (ee == 6) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
602 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 603 | "<span weight=\"bold\" size=\"large\" foreground=\"red\">This sunflower seed taste like pizza.</span>"); |
| 3508 | 604 | else if (ee == 7) |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
605 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 606 | "<span weight=\"bold\" size=\"large\" foreground=\"#6364B1\">Hey! I was in that tumbleweed!</span>"); |
| 3508 | 607 | else |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
608 | gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 609 | "<span weight=\"bold\" size=\"large\" foreground=\"gray\">I'm not anything.</span>"); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
610 | |
| 5092 | 611 | window = gtk_dialog_new_with_buttons("", GTK_WINDOW(gtkblist->window), 0, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 3767 | 612 | gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); |
| 613 | g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(gtk_widget_destroy), NULL); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
614 | |
| 3767 | 615 | gtk_container_set_border_width (GTK_CONTAINER(window), 6); |
| 616 | gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 617 | gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 618 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 619 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 620 | ||
| 621 | hbox = gtk_hbox_new(FALSE, 12); | |
| 622 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 623 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
624 | |
| 3767 | 625 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 626 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 627 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 628 | |
| 3767 | 629 | gtk_widget_show_all(window); |
| 1 | 630 | } |
| 631 | ||
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
632 | static void |
|
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
633 | show_info_select_account(GObject *w, GaimAccount *account, |
|
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
634 | struct getuserinfo *info) |
| 3816 | 635 | { |
|
5880
f5335e81bb6c
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
636 | info->gc = gaim_account_get_connection(account); |
| 3816 | 637 | } |
| 638 | ||
| 4614 | 639 | static void dialog_set_ok_sensitive(GtkWidget *entry, GtkWidget *dlg) { |
| 4613 | 640 | const char *txt = gtk_entry_get_text(GTK_ENTRY(entry)); |
| 4614 | 641 | gtk_dialog_set_response_sensitive(GTK_DIALOG(dlg), GTK_RESPONSE_OK, |
| 4613 | 642 | (*txt != '\0')); |
| 643 | } | |
| 644 | ||
| 935 | 645 | void show_im_dialog() |
| 1 | 646 | { |
| 3802 | 647 | GtkWidget *hbox, *vbox; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
648 | GtkWidget *label; |
|
5880
f5335e81bb6c
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
649 | GtkWidget *table; |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
650 | struct gaim_gtk_buddy_list *gtkblist; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
651 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 3816 | 652 | struct getuserinfo *info = NULL; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
653 | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
654 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
655 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
656 | if (!imdialog) { |
| 3816 | 657 | info = g_new0(struct getuserinfo, 1); |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
658 | info->gc = gaim_connections_get_all()->data; |
| 5092 | 659 | imdialog = gtk_dialog_new_with_buttons(_("New Message"), gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
| 3802 | 660 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 661 | gtk_dialog_set_default_response (GTK_DIALOG(imdialog), GTK_RESPONSE_OK); | |
| 662 | gtk_container_set_border_width (GTK_CONTAINER(imdialog), 6); | |
| 663 | gtk_window_set_resizable(GTK_WINDOW(imdialog), FALSE); | |
| 664 | gtk_dialog_set_has_separator(GTK_DIALOG(imdialog), FALSE); | |
| 665 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(imdialog)->vbox), 12); | |
| 666 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), 6); | |
| 4613 | 667 | gtk_dialog_set_response_sensitive(GTK_DIALOG(imdialog), GTK_RESPONSE_OK, FALSE); |
| 668 | ||
| 3802 | 669 | hbox = gtk_hbox_new(FALSE, 12); |
| 670 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), hbox); | |
| 671 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 672 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 673 | ||
| 674 | vbox = gtk_vbox_new(FALSE, 0); | |
| 675 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 4613 | 676 | |
| 3802 | 677 | label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n")); |
| 3825 | 678 | gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); |
| 3802 | 679 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 680 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 681 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4613 | 682 | |
| 3802 | 683 | hbox = gtk_hbox_new(FALSE, 6); |
| 684 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 4613 | 685 | |
| 3816 | 686 | table = gtk_table_new(2, 2, FALSE); |
| 687 | gtk_table_set_row_spacings(GTK_TABLE(table), 6); | |
| 688 | gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 689 | gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 690 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 4613 | 691 | |
| 3802 | 692 | label = gtk_label_new(NULL); |
| 3816 | 693 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); |
| 3823 | 694 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 3816 | 695 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 696 | ||
| 697 | info->entry = gtk_entry_new(); | |
| 698 | gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 699 | gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); | |
| 700 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4613 | 701 | g_signal_connect(G_OBJECT(info->entry), "changed", |
| 4614 | 702 | G_CALLBACK(dialog_set_ok_sensitive), imdialog); |
| 3816 | 703 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
704 | if (gaim_connections_get_all()->next) { |
| 3816 | 705 | |
| 706 | label = gtk_label_new(NULL); | |
| 707 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 708 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); | |
| 709 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 4613 | 710 | |
|
5880
f5335e81bb6c
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
711 | info->account = gaim_gtk_account_option_menu_new(NULL, FALSE, |
|
6646
b9a0b5eb74e6
[gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents:
6640
diff
changeset
|
712 | G_CALLBACK(show_info_select_account), NULL, info); |
|
5880
f5335e81bb6c
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
713 | |
| 3816 | 714 | gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); |
| 715 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); | |
| 716 | } | |
| 4613 | 717 | |
| 3816 | 718 | g_signal_connect(G_OBJECT(imdialog), "response", G_CALLBACK(do_im), info); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
719 | } |
| 4613 | 720 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
721 | gtk_widget_show_all(imdialog); |
| 3816 | 722 | if (info) |
| 723 | gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
| 3197 | 724 | } |
| 725 | ||
| 935 | 726 | void show_info_dialog() |
| 727 | { | |
| 3802 | 728 | GtkWidget *window, *hbox, *vbox; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
729 | GtkWidget *label; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
730 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
|
5880
f5335e81bb6c
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
731 | GtkWidget *table; |
| 3197 | 732 | struct getuserinfo *info = g_new0(struct getuserinfo, 1); |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
733 | struct gaim_gtk_buddy_list *gtkblist; |
| 3802 | 734 | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
735 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
736 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
737 | info->gc = gaim_connections_get_all()->data; |
| 3197 | 738 | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
739 | window = gtk_dialog_new_with_buttons(_("Get User Info"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
| 3802 | 740 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 741 | gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); | |
| 742 | gtk_container_set_border_width (GTK_CONTAINER(window), 6); | |
| 743 | gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 744 | gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 745 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 746 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 4614 | 747 | |
| 3802 | 748 | hbox = gtk_hbox_new(FALSE, 12); |
| 749 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 750 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 751 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 4614 | 752 | gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, |
| 753 | FALSE); | |
| 754 | ||
| 3802 | 755 | vbox = gtk_vbox_new(FALSE, 0); |
| 756 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
757 | |
| 3802 | 758 | label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n")); |
| 759 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 760 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 761 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
762 | |
| 3197 | 763 | table = gtk_table_new(2, 2, FALSE); |
| 3802 | 764 | gtk_table_set_row_spacings(GTK_TABLE(table), 6); |
| 765 | gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 766 | gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 767 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
768 | |
| 3802 | 769 | label = gtk_label_new(NULL); |
| 770 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
| 3822 | 771 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3197 | 772 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 773 | ||
| 774 | info->entry = gtk_entry_new(); | |
| 775 | gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 3802 | 776 | gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); |
| 777 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4614 | 778 | |
| 779 | g_signal_connect(G_OBJECT(info->entry), "changed", | |
| 780 | G_CALLBACK(dialog_set_ok_sensitive), window); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
781 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
782 | if (gaim_connections_get_all()->next) { |
| 3197 | 783 | |
| 3802 | 784 | label = gtk_label_new(NULL); |
| 3197 | 785 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
| 3802 | 786 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); |
| 787 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1225 | 788 | |
|
5880
f5335e81bb6c
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
789 | info->account = gaim_gtk_account_option_menu_new(NULL, FALSE, |
|
6646
b9a0b5eb74e6
[gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents:
6640
diff
changeset
|
790 | G_CALLBACK(show_info_select_account), NULL, info); |
|
5880
f5335e81bb6c
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
791 | |
| 3197 | 792 | gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); |
| 3802 | 793 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
794 | } |
| 3197 | 795 | |
| 3802 | 796 | g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
797 | |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
798 | |
| 3802 | 799 | gtk_widget_show_all(window); |
| 800 | if (info->entry) | |
| 801 | gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
| 935 | 802 | } |
| 803 | ||
| 1 | 804 | |
|
6330
cbb78f7eb436
[gaim-migrate @ 6829]
Christian Hammond <chipx86@chipx86.com>
parents:
6329
diff
changeset
|
805 | static void |
|
7060
717cbeb22b6d
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
806 | free_dialog(GtkWidget *w, void *data) |
| 1 | 807 | { |
|
7060
717cbeb22b6d
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
808 | g_free(data); |
| 5234 | 809 | } |
| 810 | ||
| 1 | 811 | /*------------------------------------------------------------------------*/ |
| 812 | /* The dialog for SET INFO / SET DIR INFO */ | |
| 813 | /*------------------------------------------------------------------------*/ | |
| 814 | ||
| 815 | void do_save_info(GtkWidget *widget, struct set_info_dlg *b) | |
| 816 | { | |
| 817 | gchar *junk; | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
818 | GaimConnection *gc; |
| 1 | 819 | |
| 4119 | 820 | junk = gtk_text_view_get_text(GTK_TEXT_VIEW(b->text), FALSE); |
| 1 | 821 | |
| 4491 | 822 | if (b->account) { |
|
6019
5be866245659
[gaim-migrate @ 6469]
Decklin Foster <decklin@red-bean.com>
parents:
5975
diff
changeset
|
823 | gaim_account_set_user_info(b->account, junk); |
| 4491 | 824 | gc = b->account->gc; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
825 | |
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1288
diff
changeset
|
826 | if (gc) |
|
5954
58e43cf2dc1f
[gaim-migrate @ 6398]
Mark Doliner <markdoliner@pidgin.im>
parents:
5943
diff
changeset
|
827 | serv_set_info(gc, gaim_account_get_user_info(b->account)); |
|
122
c59d41332d82
[gaim-migrate @ 132]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
84
diff
changeset
|
828 | } |
| 25 | 829 | g_free(junk); |
| 1 | 830 | destroy_dialog(NULL, b->window); |
| 831 | g_free(b); | |
| 832 | } | |
| 833 | ||
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
834 | void show_set_info(GaimConnection *gc) |
| 1 | 835 | { |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
836 | GtkWidget *buttons; |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
837 | GtkWidget *label; |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
838 | GtkWidget *vbox; |
| 4119 | 839 | GtkTextBuffer *buffer; |
| 840 | GtkWidget *frame; | |
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1288
diff
changeset
|
841 | gchar *buf; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
842 | GaimAccount *account; |
|
5924
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
843 | const char *user_info; |
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1288
diff
changeset
|
844 | |
| 1 | 845 | struct set_info_dlg *b = g_new0(struct set_info_dlg, 1); |
| 4491 | 846 | account = gc->account; |
| 847 | b->account = account; | |
| 1 | 848 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
849 | GAIM_DIALOG(b->window); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
850 | gtk_window_set_role(GTK_WINDOW(b->window), "set_info"); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
851 | dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 4703 | 852 | gtk_window_set_title(GTK_WINDOW(b->window), _("Set User Info")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
853 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
960
c4012584334f
[gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
940
diff
changeset
|
854 | gtk_widget_realize(b->window); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
855 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
856 | vbox = gtk_vbox_new(FALSE, 5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
857 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
858 | gtk_container_add(GTK_CONTAINER(b->window), vbox); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
859 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
860 | buf = g_malloc(256); |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
861 | g_snprintf(buf, 256, _("Changing info for %s:"), |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
862 | gaim_account_get_username(account)); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
863 | label = gtk_label_new(buf); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
864 | g_free(buf); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
865 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
| 4491 | 866 | |
| 4119 | 867 | frame = gtk_frame_new(NULL); |
| 868 | gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 869 | gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); | |
| 870 | ||
| 871 | b->text = gtk_text_view_new(); | |
|
5105
3565a4c4de6a
[gaim-migrate @ 5468]
David J. Brigada <brigada@prism.net>
parents:
5092
diff
changeset
|
872 | gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->text), GTK_WRAP_WORD_CHAR); |
| 7002 | 873 | #ifdef USE_GTKSPELL |
|
7060
717cbeb22b6d
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
874 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) |
| 7002 | 875 | gtkspell_new_attach(GTK_TEXT_VIEW(b->text), NULL, NULL); |
| 876 | #endif | |
| 4119 | 877 | gtk_widget_set_size_request(b->text, 300, 200); |
|
5924
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
878 | |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
879 | if ((user_info = gaim_account_get_user_info(account)) != NULL) { |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
880 | buf = g_malloc(strlen(user_info) + 1); |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
881 | strncpy_nohtml(buf, user_info, strlen(user_info) + 1); |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
882 | buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(b->text)); |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
883 | gtk_text_buffer_set_text(buffer, buf, -1); |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
884 | g_free(buf); |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
885 | } |
|
2fc5a210c085
[gaim-migrate @ 6364]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
886 | |
| 4119 | 887 | gtk_container_add(GTK_CONTAINER(frame), b->text); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
888 | gtk_window_set_focus(GTK_WINDOW(b->window), b->text); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
889 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
890 | buttons = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
891 | gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
892 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
893 | b->save = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
| 4092 | 894 | gtk_box_pack_end(GTK_BOX(buttons), b->save, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
895 | g_signal_connect(G_OBJECT(b->save), "clicked", G_CALLBACK(do_save_info), b); |
| 4092 | 896 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
897 | b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
898 | gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
899 | g_signal_connect(G_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
900 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
901 | gtk_widget_show_all(b->window); |
| 1 | 902 | } |
| 903 | ||
| 904 | ||
| 905 | /*------------------------------------------------------------------------*/ | |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
906 | /* Functions Called To Add A Log */ |
| 1 | 907 | /*------------------------------------------------------------------------*/ |
| 908 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
909 | void cancel_log(GtkWidget *widget, GaimConversation *c) |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
910 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
911 | GaimGtkConversation *gtkconv; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
912 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
913 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
914 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
915 | if (gtkconv->toolbar.log) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
916 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->toolbar.log), |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
917 | FALSE); |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
918 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
919 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
920 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.log); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
921 | gtk_widget_destroy(gtkconv->dialogs.log); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
922 | gtkconv->dialogs.log = NULL; |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
923 | } |
|
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
924 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
925 | void do_log(GtkWidget *w, GaimConversation *c) |
| 1 | 926 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
927 | GaimGtkConversation *gtkconv; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
928 | struct log_conversation *l; |
| 3466 | 929 | const char *file; |
| 1035 | 930 | char path[PATHSIZE]; |
| 1 | 931 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
932 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
933 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
934 | if (!find_log_info(c->name)) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
935 | file = gtk_file_selection_get_filename( |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
936 | GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
937 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
938 | strncpy(path, file, PATHSIZE - 1); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
939 | |
|
5966
91a208b3e979
[gaim-migrate @ 6413]
Mark Doliner <markdoliner@pidgin.im>
parents:
5959
diff
changeset
|
940 | if (gaim_gtk_check_if_dir(path, GTK_FILE_SELECTION(gtkconv->dialogs.log))) |
| 1035 | 941 | return; |
| 942 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
943 | l = (struct log_conversation *)g_new0(struct log_conversation, 1); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
944 | strcpy(l->name, gaim_conversation_get_name(c)); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
945 | strcpy(l->filename, file); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
946 | log_conversations = g_list_append(log_conversations, l); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
947 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
948 | if (c != NULL) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
949 | gaim_conversation_set_logging(c, TRUE); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
950 | } |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
951 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
952 | cancel_log(NULL, c); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
953 | } |
| 1 | 954 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
955 | void show_log_dialog(GaimConversation *c) |
| 1 | 956 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
957 | GaimGtkConversation *gtkconv; |
| 1 | 958 | char *buf = g_malloc(BUF_LEN); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
959 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
960 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
961 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
962 | if (!gtkconv->dialogs.log) { |
| 4703 | 963 | gtkconv->dialogs.log = gtk_file_selection_new(_("Log Conversation")); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
964 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
965 | gtk_file_selection_hide_fileop_buttons( |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
966 | GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
967 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
968 | g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.log", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
969 | gaim_home_dir(), normalize(c->name)); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
970 | g_object_set_data(G_OBJECT(gtkconv->dialogs.log), "dialog_type", |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
971 | "log dialog"); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
972 | gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log), |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
973 | buf); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
974 | g_signal_connect(G_OBJECT(gtkconv->dialogs.log), "delete_event", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
975 | G_CALLBACK(delete_event_dialog), c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
976 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->ok_button), "clicked", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
977 | G_CALLBACK(do_log), c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
978 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->cancel_button), "clicked", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
979 | G_CALLBACK(cancel_log), c); |
| 1 | 980 | } |
| 981 | ||
| 25 | 982 | g_free(buf); |
| 983 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
984 | gtk_widget_show(gtkconv->dialogs.log); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
985 | gdk_window_raise(gtkconv->dialogs.log->window); |
| 1 | 986 | } |
| 987 | ||
| 988 | /*------------------------------------------------------*/ | |
| 989 | /* Link Dialog */ | |
| 990 | /*------------------------------------------------------*/ | |
| 991 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
992 | void cancel_link(GtkWidget *widget, GaimConversation *c) |
| 1 | 993 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
994 | GaimGtkConversation *gtkconv; |
|
7055
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
995 | GtkWidget *link_dialog; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
996 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
997 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
998 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
999 | if (gtkconv->toolbar.link) { |
| 4635 | 1000 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1001 | FALSE); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1002 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1003 | |
|
7055
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1004 | link_dialog = gtkconv->dialogs.link; |
| 4685 | 1005 | gtkconv->dialogs.link = NULL; |
|
7055
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1006 | destroy_dialog(NULL, link_dialog); |
| 1 | 1007 | } |
| 1008 | ||
| 4262 | 1009 | void do_insert_link(GtkWidget *w, int resp, struct linkdlg *b) |
| 1 | 1010 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1011 | GaimGtkConversation *gtkconv; |
| 1 | 1012 | char *open_tag; |
| 3466 | 1013 | const char *urltext, *showtext; |
| 4262 | 1014 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1015 | gtkconv = GAIM_GTK_CONVERSATION(b->c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1016 | |
| 4262 | 1017 | if (resp == GTK_RESPONSE_OK) { |
| 1018 | ||
| 1019 | open_tag = g_malloc(2048); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1020 | |
| 4262 | 1021 | urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); |
| 1022 | showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); | |
| 1023 | ||
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1024 | if (!strlen(showtext)) |
| 4262 | 1025 | showtext = urltext; |
| 1026 | ||
| 1027 | g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext); | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1028 | gaim_gtk_surround(gtkconv, open_tag, "</A>"); |
| 4262 | 1029 | |
| 1030 | g_free(open_tag); | |
| 1031 | } | |
| 1032 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1033 | if (gtkconv->toolbar.link) { |
| 4635 | 1034 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1035 | FALSE); |
| 4262 | 1036 | } |
| 1037 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1038 | gtkconv->dialogs.link = NULL; |
| 1 | 1039 | destroy_dialog(NULL, b->window); |
| 1040 | } | |
| 1041 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1042 | void show_insert_link(GtkWidget *linky, GaimConversation *c) |
| 1 | 1043 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1044 | GaimGtkConversation *gtkconv; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1045 | GaimGtkWindow *gtkwin; |
| 4262 | 1046 | GtkWidget *table; |
| 1047 | GtkWidget *label; | |
| 1048 | GtkWidget *hbox; | |
| 1 | 1049 | GtkWidget *vbox; |
| 1050 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1051 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1052 | gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1053 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1054 | if (gtkconv->dialogs.link == NULL) { |
| 4262 | 1055 | struct linkdlg *a = g_new0(struct linkdlg, 1); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1056 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 4262 | 1057 | |
| 1058 | a->c = c; | |
| 4703 | 1059 | a->window = gtk_dialog_new_with_buttons(_("Insert Link"), |
| 5092 | 1060 | GTK_WINDOW(gtkwin->window), 0, GTK_STOCK_CANCEL, |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1061 | GTK_RESPONSE_CANCEL, _("Insert"), GTK_RESPONSE_OK, NULL); |
|
7055
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1062 | gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); |
|
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1063 | g_signal_connect(G_OBJECT(a->window), "response", |
|
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1064 | G_CALLBACK(do_insert_link), a); |
| 4262 | 1065 | |
| 1066 | gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 1067 | gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 1068 | gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 1069 | gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 1070 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1071 | gtk_container_set_border_width( |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1072 | GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); |
| 4262 | 1073 | gtk_window_set_role(GTK_WINDOW(a->window), "insert_link"); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1074 | |
| 4262 | 1075 | hbox = gtk_hbox_new(FALSE, 12); |
| 1076 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 1077 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 1078 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1079 | |
| 4262 | 1080 | vbox = gtk_vbox_new(FALSE, 0); |
| 1081 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1082 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1083 | label = gtk_label_new(_("Please enter the URL and description of " |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1084 | "the link that you want to insert. The " |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1085 | "description is optional.\n")); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1086 | |
| 4262 | 1087 | gtk_widget_set_size_request(GTK_WIDGET(label), 335, -1); |
| 1088 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 1089 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1090 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1091 | |
| 4262 | 1092 | hbox = gtk_hbox_new(FALSE, 6); |
| 1093 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1094 | |
| 4262 | 1095 | table = gtk_table_new(4, 2, FALSE); |
| 1096 | gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 1097 | gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 1098 | gtk_container_set_border_width(GTK_CONTAINER(table), 0); | |
| 1099 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1100 | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
1101 | label = gtk_label_new(_("URL")); |
| 4262 | 1102 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 1103 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1104 | |
| 4262 | 1105 | a->url = gtk_entry_new(); |
| 1106 | gtk_table_attach_defaults(GTK_TABLE(table), a->url, 1, 2, 0, 1); | |
| 1107 | gtk_widget_grab_focus(a->url); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1108 | |
| 4262 | 1109 | gtk_entry_set_activates_default (GTK_ENTRY(a->url), TRUE); |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1110 | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
1111 | label = gtk_label_new(_("Description")); |
| 4262 | 1112 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 1113 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1114 | |
| 4262 | 1115 | a->text = gtk_entry_new(); |
| 1116 | gtk_table_attach_defaults(GTK_TABLE(table), a->text, 1, 2, 1, 2); | |
| 1117 | gtk_entry_set_activates_default (GTK_ENTRY(a->text), TRUE); | |
| 1118 | ||
|
7055
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1119 | g_signal_connect(G_OBJECT(a->window), "destroy", |
|
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1120 | G_CALLBACK(free_dialog), a); |
|
5a323955a9e3
[gaim-migrate @ 7618]
Mark Doliner <markdoliner@pidgin.im>
parents:
7049
diff
changeset
|
1121 | dialogwindows = g_list_prepend(dialogwindows, a->window); |
| 4262 | 1122 | |
| 1123 | a->toggle = linky; | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1124 | gtkconv->dialogs.link = a->window; |
| 1 | 1125 | } |
| 1126 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1127 | gtk_widget_show_all(gtkconv->dialogs.link); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1128 | gdk_window_raise(gtkconv->dialogs.link->window); |
| 1 | 1129 | } |
| 1130 | ||
| 1131 | /*------------------------------------------------------*/ | |
| 1132 | /* Color Selection Dialog */ | |
| 1133 | /*------------------------------------------------------*/ | |
| 1134 | ||
| 3367 | 1135 | GtkWidget *fgcseld = NULL; |
| 1136 | GtkWidget *bgcseld = NULL; | |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1137 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1138 | void cancel_fgcolor(GtkWidget *widget, GaimConversation *c) |
| 1 | 1139 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1140 | GaimGtkConversation *gtkconv; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1141 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1142 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1143 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1144 | if (gtkconv->toolbar.fgcolor && widget) { |
| 4635 | 1145 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1146 | FALSE); |
| 61 | 1147 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1148 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1149 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1150 | gtk_widget_destroy(gtkconv->dialogs.fg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1151 | gtkconv->dialogs.fg_color = NULL; |
| 1 | 1152 | } |
| 1153 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1154 | void cancel_bgcolor(GtkWidget *widget, GaimConversation *c) |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1155 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1156 | GaimGtkConversation *gtkconv; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1157 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1158 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1159 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1160 | if (gtkconv->toolbar.bgcolor && widget) { |
| 4635 | 1161 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1162 | FALSE); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1163 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1164 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1165 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1166 | gtk_widget_destroy(gtkconv->dialogs.bg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1167 | gtkconv->dialogs.bg_color = NULL; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1168 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1169 | |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1170 | void do_fgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
| 1 | 1171 | { |
| 1172 | GdkColor text_color; | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1173 | GaimConversation *c; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1174 | GaimGtkConversation *gtkconv; |
| 1 | 1175 | char *open_tag; |
| 1176 | ||
| 1177 | open_tag = g_malloc(30); | |
| 1178 | ||
| 3557 | 1179 | gtk_color_selection_get_current_color(colorsel, &text_color); |
| 1 | 1180 | |
| 4635 | 1181 | c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
411
4e2ed8c4c0f8
[gaim-migrate @ 421]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
401
diff
changeset
|
1182 | /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
1183 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1184 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1185 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1186 | gtkconv->fg_color = text_color; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1187 | g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1188 | text_color.red / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1189 | text_color.green / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1190 | text_color.blue / 256); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1191 | gaim_gtk_surround(gtkconv, open_tag, "</FONT>"); |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1192 | |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1193 | gaim_debug(GAIM_DEBUG_MISC, "fgcolor dialog", "#%02X%02X%02X\n", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1194 | text_color.red / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1195 | text_color.green / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1196 | text_color.blue / 256); |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
1197 | g_free(open_tag); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1198 | cancel_fgcolor(NULL, c); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1199 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1200 | |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1201 | void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1202 | { |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1203 | GdkColor text_color; |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1204 | GaimConversation *c; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1205 | GaimGtkConversation *gtkconv; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1206 | char *open_tag; |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1207 | |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1208 | open_tag = g_malloc(30); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1209 | |
| 3557 | 1210 | gtk_color_selection_get_current_color(colorsel, &text_color); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1211 | |
| 4635 | 1212 | c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1213 | /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1214 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1215 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1216 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1217 | gtkconv->bg_color = text_color; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1218 | g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1219 | text_color.red / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1220 | text_color.green / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1221 | text_color.blue / 256); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1222 | gaim_gtk_surround(gtkconv, open_tag, "</BODY>"); |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1223 | gaim_debug(GAIM_DEBUG_MISC, "bgcolor dialog", "#%02X%02X%02X\n", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1224 | text_color.red / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1225 | text_color.green / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1226 | text_color.blue / 256); |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1227 | |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1228 | g_free(open_tag); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1229 | cancel_bgcolor(NULL, c); |
| 1 | 1230 | } |
| 1231 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1232 | void show_fgcolor_dialog(GaimConversation *c, GtkWidget *color) |
| 1 | 1233 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1234 | GaimGtkConversation *gtkconv; |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
1235 | GtkWidget *colorsel; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1236 | GdkColor fgcolor; |
| 1 | 1237 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1238 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1239 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1240 | gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1241 | &fgcolor); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1242 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1243 | if (color == NULL) { /* we came from the prefs */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1244 | if (fgcseld) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1245 | return; |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
1246 | |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1247 | fgcseld = gtk_color_selection_dialog_new(_("Select Text Color")); |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
1248 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
|
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
1249 | (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), &fgcolor); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1250 | g_signal_connect(G_OBJECT(fgcseld), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1251 | G_CALLBACK(destroy_colorsel), (void *)1); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1252 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1253 | "clicked", G_CALLBACK(destroy_colorsel), (void *)1); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1254 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1255 | G_CALLBACK(apply_color_dlg), (void *)1); |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1256 | gtk_widget_realize(fgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1257 | gtk_widget_show(fgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1258 | gdk_window_raise(fgcseld->window); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1259 | return; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1260 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1261 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1262 | if (!gtkconv->dialogs.fg_color) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1263 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1264 | gtkconv->dialogs.fg_color = gtk_color_selection_dialog_new(_("Select Text Color")); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1265 | colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel; |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
1266 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); |
| 4635 | 1267 | g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
1268 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1269 | g_signal_connect(G_OBJECT(gtkconv->dialogs.fg_color), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1270 | G_CALLBACK(delete_event_dialog), c); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1271 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->ok_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1272 | "clicked", G_CALLBACK(do_fgcolor), colorsel); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1273 | g_signal_connect(G_OBJECT |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1274 | (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1275 | "clicked", G_CALLBACK(cancel_fgcolor), c); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1276 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1277 | gtk_widget_realize(gtkconv->dialogs.fg_color); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1278 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1279 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1280 | gtk_widget_show(gtkconv->dialogs.fg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1281 | gdk_window_raise(gtkconv->dialogs.fg_color->window); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1282 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1283 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1284 | void show_bgcolor_dialog(GaimConversation *c, GtkWidget *color) |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1285 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1286 | GaimGtkConversation *gtkconv; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1287 | GtkWidget *colorsel; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1288 | GdkColor bgcolor; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1289 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1290 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1291 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1292 | gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"), |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1293 | &bgcolor); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1294 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1295 | if (color == NULL) { /* we came from the prefs */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1296 | if (bgcseld) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1297 | return; |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
1298 | |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1299 | bgcseld = gtk_color_selection_dialog_new(_("Select Background Color")); |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
1300 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
|
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
1301 | (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), &bgcolor); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1302 | g_signal_connect(G_OBJECT(bgcseld), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1303 | G_CALLBACK(destroy_colorsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1304 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1305 | "clicked", G_CALLBACK(destroy_colorsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1306 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1307 | G_CALLBACK(apply_color_dlg), (void *)2); |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1308 | gtk_widget_realize(bgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1309 | gtk_widget_show(bgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1310 | gdk_window_raise(bgcseld->window); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1311 | return; |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1312 | } |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
1313 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1314 | if (!gtkconv->dialogs.bg_color) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1315 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1316 | gtkconv->dialogs.bg_color = gtk_color_selection_dialog_new(_("Select Background Color")); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1317 | colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel; |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
1318 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); |
| 4635 | 1319 | g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
1320 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1321 | g_signal_connect(G_OBJECT(gtkconv->dialogs.bg_color), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1322 | G_CALLBACK(delete_event_dialog), c); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1323 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->ok_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1324 | "clicked", G_CALLBACK(do_bgcolor), colorsel); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1325 | g_signal_connect(G_OBJECT |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1326 | (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1327 | "clicked", G_CALLBACK(cancel_bgcolor), c); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
1328 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1329 | gtk_widget_realize(gtkconv->dialogs.bg_color); |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
1330 | } |
| 1 | 1331 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1332 | gtk_widget_show(gtkconv->dialogs.bg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1333 | gdk_window_raise(gtkconv->dialogs.bg_color->window); |
| 1 | 1334 | } |
| 1335 | ||
| 1336 | /*------------------------------------------------------------------------*/ | |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1337 | /* Font Selection Dialog */ |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1338 | /*------------------------------------------------------------------------*/ |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1339 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1340 | void cancel_font(GtkWidget *widget, GaimConversation *c) |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1341 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1342 | GaimGtkConversation *gtkconv; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1343 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1344 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1345 | |
| 4685 | 1346 | if (gtkconv->toolbar.font && widget) { |
| 4635 | 1347 | gtk_toggle_button_set_active( |
| 4685 | 1348 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
1349 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1350 | |
|
5970
797f5f43c1bd
[gaim-migrate @ 6417]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1351 | if (gtkconv->dialogs.font) { |
|
797f5f43c1bd
[gaim-migrate @ 6417]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1352 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font); |
|
797f5f43c1bd
[gaim-migrate @ 6417]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1353 | gtk_widget_destroy(gtkconv->dialogs.font); |
|
797f5f43c1bd
[gaim-migrate @ 6417]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1354 | gtkconv->dialogs.font = NULL; |
|
797f5f43c1bd
[gaim-migrate @ 6417]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1355 | } |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1356 | } |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1357 | |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1358 | void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1359 | { |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1360 | /* this could be expanded to include font size, weight, etc. |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1361 | but for now only works with font face */ |
|
666
0a313fec9a15
[gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
657
diff
changeset
|
1362 | char *fontname; |
| 7079 | 1363 | char *space; |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1364 | GaimConversation *c = g_object_get_data(G_OBJECT(fontsel), |
| 4635 | 1365 | "gaim_conversation"); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1366 | |
| 7079 | 1367 | if(!c) |
| 1368 | return; | |
| 1369 | ||
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1370 | fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1371 | |
| 7079 | 1372 | space = strrchr(fontname, ' '); |
| 1373 | if(space && isdigit(*(space+1))) | |
| 1374 | *space = '\0'; | |
| 1375 | ||
| 1376 | gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1377 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1378 | g_free(fontname); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1379 | |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
1380 | cancel_font(NULL, c); |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1381 | } |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1382 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1383 | void destroy_fontsel(GtkWidget *w, gpointer d) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1384 | { |
|
334
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1385 | gtk_widget_destroy(fontseld); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1386 | fontseld = NULL; |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1387 | } |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1388 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1389 | void show_font_dialog(GaimConversation *c, GtkWidget *font) |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1390 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1391 | GaimGtkConversation *gtkconv; |
| 3473 | 1392 | char fonttif[128]; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1393 | const char *fontface; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1394 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1395 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1396 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1397 | if (!font) { /* we came from the prefs dialog */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1398 | if (fontseld) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1399 | return; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1400 | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
1401 | fontseld = gtk_font_selection_dialog_new(_("Select Font")); |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1402 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1403 | fontface = gaim_prefs_get_string("/gaim/gtk/conversations/font_face"); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1404 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1405 | if (fontface != NULL && *fontface != '\0') { |
| 3473 | 1406 | g_snprintf(fonttif, sizeof(fonttif), "%s 12", fontface); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
1407 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 1408 | fonttif); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
1409 | } else { |
|
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
1410 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 1411 | DEFAULT_FONT_FACE " 12"); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
1412 | } |
|
334
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1413 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1414 | g_signal_connect(G_OBJECT(fontseld), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1415 | G_CALLBACK(destroy_fontsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1416 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1417 | "clicked", G_CALLBACK(destroy_fontsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1418 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1419 | G_CALLBACK(apply_font_dlg), fontseld); |
|
334
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1420 | gtk_widget_realize(fontseld); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1421 | gtk_widget_show(fontseld); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1422 | gdk_window_raise(fontseld->window); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1423 | return; |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
1424 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1425 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1426 | if (!gtkconv->dialogs.font) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1427 | gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font")); |
|
234
100138758e8d
[gaim-migrate @ 244]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
231
diff
changeset
|
1428 | |
| 4635 | 1429 | g_object_set_data(G_OBJECT(gtkconv->dialogs.font), "gaim_conversation", c); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1430 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1431 | if (gtkconv->fontface[0]) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1432 | g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1433 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 1434 | fonttif); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
1435 | } else { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1436 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 1437 | DEFAULT_FONT_FACE); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
1438 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1439 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1440 | g_signal_connect(G_OBJECT(gtkconv->dialogs.font), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1441 | G_CALLBACK(delete_event_dialog), c); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1442 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->ok_button), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1443 | "clicked", G_CALLBACK(apply_font), gtkconv->dialogs.font); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1444 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1445 | "clicked", G_CALLBACK(cancel_font), c); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1446 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1447 | gtk_widget_realize(gtkconv->dialogs.font); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1448 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1449 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1450 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1451 | gtk_widget_show(gtkconv->dialogs.font); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1452 | gdk_window_raise(gtkconv->dialogs.font->window); |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1453 | } |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1454 | |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
1455 | /*------------------------------------------------------------------------*/ |
| 1 | 1456 | /* The dialog for new away messages */ |
| 1457 | /*------------------------------------------------------------------------*/ | |
| 1458 | ||
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1459 | static struct away_message *save_away_message(struct create_away *ca) |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1460 | { |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1461 | struct away_message *am; |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1462 | gchar *away_message; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1463 | |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
1464 | if (!ca->mess) |
|
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
1465 | am = g_new0(struct away_message, 1); |
|
2851
b2bc75288ea1
[gaim-migrate @ 2864]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
1466 | else { |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
1467 | am = ca->mess; |
|
2851
b2bc75288ea1
[gaim-migrate @ 2864]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
1468 | } |
| 1387 | 1469 | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1470 | |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1471 | g_snprintf(am->name, sizeof(am->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 1472 | away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1473 | |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1474 | g_snprintf(am->message, sizeof(am->message), "%s", away_message); |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1475 | g_free(away_message); |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1476 | |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
1477 | if (!ca->mess) { |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1478 | away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list); |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
1479 | } |
|
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
1480 | |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
1481 | do_away_menu(NULL); |
| 6065 | 1482 | gaim_status_sync(); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1483 | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1484 | return am; |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1485 | } |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1486 | |
| 1387 | 1487 | int check_away_mess(struct create_away *ca, int type) |
| 1488 | { | |
| 4630 | 1489 | char *msg; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1490 | if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) { |
| 1387 | 1491 | /* We shouldn't allow a blank title */ |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1492 | gaim_notify_error(NULL, NULL, |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1493 | _("You cannot save an away message with a " |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1494 | "blank title"), |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1495 | _("Please give the message a title, or choose " |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1496 | "\"Use\" to use without saving.")); |
| 1387 | 1497 | return 0; |
| 1498 | } | |
| 1499 | ||
| 4630 | 1500 | msg = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 1501 | ||
| 1502 | if (!msg && (type <= 1)) { | |
| 1387 | 1503 | /* We shouldn't allow a blank message */ |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1504 | gaim_notify_error(NULL, NULL, |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1505 | _("You cannot create an empty away message"), NULL); |
| 1387 | 1506 | return 0; |
| 1507 | } | |
| 1508 | ||
| 4630 | 1509 | g_free(msg); |
| 1510 | ||
| 1387 | 1511 | return 1; |
| 1512 | } | |
| 1513 | ||
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1514 | void save_away_mess(GtkWidget *widget, struct create_away *ca) |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1515 | { |
| 1387 | 1516 | if (!check_away_mess(ca, 1)) |
| 1517 | return; | |
| 1518 | ||
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1519 | save_away_message(ca); |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1520 | destroy_dialog(NULL, ca->window); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1521 | g_free(ca); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1522 | } |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1523 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1524 | void use_away_mess(GtkWidget *widget, struct create_away *ca) |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1525 | { |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1526 | static struct away_message am; |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1527 | gchar *away_message; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1528 | |
| 1387 | 1529 | if (!check_away_mess(ca, 0)) |
| 1530 | return; | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1531 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1532 | g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 1533 | away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1534 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1535 | g_snprintf(am.message, sizeof(am.message), "%s", away_message); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1536 | g_free(away_message); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1537 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1538 | do_away_message(NULL, &am); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1539 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1540 | destroy_dialog(NULL, ca->window); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1541 | g_free(ca); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1542 | } |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1543 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1544 | void su_away_mess(GtkWidget *widget, struct create_away *ca) |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1545 | { |
| 1387 | 1546 | if (!check_away_mess(ca, 1)) |
| 1547 | return; | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1548 | do_away_message(NULL, save_away_message(ca)); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1549 | destroy_dialog(NULL, ca->window); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1550 | g_free(ca); |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
1551 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1552 | |
| 1 | 1553 | void create_away_mess(GtkWidget *widget, void *dummy) |
| 1554 | { | |
| 439 | 1555 | GtkWidget *hbox; |
| 1 | 1556 | GtkWidget *titlebox; |
| 1557 | GtkWidget *tbox; | |
| 1558 | GtkWidget *label; | |
| 439 | 1559 | GtkWidget *frame; |
| 1560 | GtkWidget *fbox; | |
| 441 | 1561 | GtkWidget *button; |
| 1 | 1562 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1563 | struct create_away *ca = g_new0(struct create_away, 1); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1564 | |
| 1 | 1565 | /* Set up window */ |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
1566 | GAIM_DIALOG(ca->window); |
| 4635 | 1567 | gtk_widget_set_size_request(ca->window, -1, 250); |
| 1568 | gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5); | |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
1569 | gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); |
| 4703 | 1570 | gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1571 | g_signal_connect(G_OBJECT(ca->window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1572 | G_CALLBACK(destroy_dialog), ca->window); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1573 | gtk_widget_realize(ca->window); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1574 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1575 | tbox = gtk_vbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1576 | gtk_container_add(GTK_CONTAINER(ca->window), tbox); |
| 439 | 1577 | |
| 1578 | frame = gtk_frame_new(_("New away message")); | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1579 | gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1580 | |
|
1172
5c0e6410a272
[gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents:
1171
diff
changeset
|
1581 | fbox = gtk_vbox_new(FALSE, 5); |
|
1224
252fad5b9d30
[gaim-migrate @ 1234]
Decklin Foster <decklin@red-bean.com>
parents:
1216
diff
changeset
|
1582 | gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1583 | gtk_container_add(GTK_CONTAINER(frame), fbox); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1584 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1585 | titlebox = gtk_hbox_new(FALSE, 5); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1586 | gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1587 | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
1588 | label = gtk_label_new(_("Away title: ")); |
|
1172
5c0e6410a272
[gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents:
1171
diff
changeset
|
1589 | gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1590 | |
| 1 | 1591 | ca->entry = gtk_entry_new(); |
|
1172
5c0e6410a272
[gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents:
1171
diff
changeset
|
1592 | gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1593 | gtk_widget_grab_focus(ca->entry); |
| 1 | 1594 | |
| 4119 | 1595 | frame = gtk_frame_new(NULL); |
| 1596 | gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 1597 | gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0); | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1598 | |
| 4119 | 1599 | ca->text = gtk_text_view_new(); |
|
5105
3565a4c4de6a
[gaim-migrate @ 5468]
David J. Brigada <brigada@prism.net>
parents:
5092
diff
changeset
|
1600 | gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD_CHAR); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1601 | |
| 7002 | 1602 | #ifdef USE_GTKSPELL |
| 1603 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) | |
| 1604 | gtkspell_new_attach(GTK_TEXT_VIEW(ca->text), NULL, NULL); | |
| 1605 | #endif | |
| 1606 | ||
| 4119 | 1607 | gtk_container_add(GTK_CONTAINER(frame), ca->text); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1608 | |
| 3374 | 1609 | if (dummy) { |
| 1610 | struct away_message *amt; | |
| 1611 | GtkTreeIter iter; | |
| 1612 | int pos = 0; | |
| 1613 | GtkListStore *ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(dummy))); | |
| 1614 | GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dummy)); | |
| 1615 | GValue val = { 0, }; | |
| 4119 | 1616 | GtkTextIter start; |
| 1617 | GtkTextBuffer *buffer; | |
| 3374 | 1618 | |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
1619 | if (! gtk_tree_selection_get_selected (sel, (GtkTreeModel**)&ls, &iter)) |
| 3374 | 1620 | return; |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
1621 | gtk_tree_model_get_value (GTK_TREE_MODEL(ls), &iter, 1, &val); |
| 3374 | 1622 | amt = g_value_get_pointer (&val); |
| 1623 | gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name); | |
| 4119 | 1624 | buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ca->text)); |
| 1625 | gtk_text_buffer_get_iter_at_offset(buffer, &start, pos); | |
| 1626 | gtk_text_buffer_insert(buffer, &start, amt->message, strlen(amt->message)); | |
| 1627 | ||
| 3374 | 1628 | ca->mess = amt; |
| 1629 | } | |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
1630 | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1631 | hbox = gtk_hbox_new(FALSE, 5); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1632 | gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1633 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1634 | button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1635 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca); |
| 4092 | 1636 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 1637 | ||
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1638 | button = gaim_pixbuf_button_from_stock(_("Save & Use"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1639 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(su_away_mess), ca); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1640 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1641 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1642 | button = gaim_pixbuf_button_from_stock(_("Use"), GTK_STOCK_EXECUTE, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1643 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(use_away_mess), ca); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1644 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1645 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1646 | button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1647 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), ca->window); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
1648 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1649 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1650 | gtk_widget_show_all(ca->window); |
| 1 | 1651 | } |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1652 | |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1653 | /* smiley dialog */ |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1654 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1655 | void close_smiley_dialog(GtkWidget *widget, GaimConversation *c) |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1656 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1657 | GaimGtkConversation *gtkconv; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1658 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1659 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1660 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1661 | if (gtkconv->toolbar.smiley) { |
| 4635 | 1662 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1663 | FALSE); |
|
570
3450eeb314a1
[gaim-migrate @ 580]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
567
diff
changeset
|
1664 | } |
| 5275 | 1665 | if(gtkconv->dialogs.smiley) { |
| 1666 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley); | |
| 1667 | gtk_widget_destroy(gtkconv->dialogs.smiley); | |
| 1668 | gtkconv->dialogs.smiley = NULL; | |
| 1669 | } | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1670 | } |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1671 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1672 | void insert_smiley_text(GtkWidget *widget, GaimConversation *c) |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1673 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1674 | GaimGtkConversation *gtkconv; |
| 4667 | 1675 | char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text"); |
| 5275 | 1676 | GtkTextMark *select_mark, *insert_mark; |
| 1677 | GtkTextIter select_iter, insert_iter; | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1678 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1679 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1680 | |
| 5275 | 1681 | select_mark = gtk_text_buffer_get_selection_bound(gtkconv->entry_buffer); |
| 1682 | insert_mark = gtk_text_buffer_get_insert(gtkconv->entry_buffer); | |
| 1683 | ||
| 1684 | if(insert_mark != select_mark) { /* there is text selected */ | |
| 1685 | gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &select_iter, select_mark); | |
| 1686 | gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &insert_iter, insert_mark); | |
| 1687 | gtk_text_buffer_delete(gtkconv->entry_buffer, &select_iter, &insert_iter); | |
| 1688 | } | |
| 1689 | ||
| 4667 | 1690 | gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1691 | close_smiley_dialog(NULL, c); |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1692 | } |
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
1693 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1694 | static void add_smiley(GaimConversation *c, GtkWidget *table, int row, int col, char *filename, char *face) |
| 4034 | 1695 | { |
|
4061
0629287b4329
[gaim-migrate @ 4271]
Herman Bloggs <herman@bluedigits.com>
parents:
4060
diff
changeset
|
1696 | GtkWidget *image; |
| 4034 | 1697 | GtkWidget *button; |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1698 | GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(c); |
| 4667 | 1699 | |
| 1700 | image = gtk_image_new_from_file(filename); | |
| 1701 | button = gtk_button_new(); | |
| 1702 | gtk_container_add(GTK_CONTAINER(button), image); | |
| 1703 | g_object_set_data(G_OBJECT(button), "smiley_text", face); | |
| 1704 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), c); | |
| 1705 | ||
| 1706 | gtk_tooltips_set_tip(gtkconv->tooltips, button, face, NULL); | |
| 1707 | ||
| 1708 | gtk_table_attach_defaults(GTK_TABLE(table), button, col, col+1, row, row+1); | |
| 4034 | 1709 | |
| 1710 | /* these look really weird with borders */ | |
| 1711 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4667 | 1712 | |
| 1713 | gtk_widget_show(button); | |
| 1714 | } | |
| 1715 | ||
| 1716 | static gboolean smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) { | |
| 1717 | while(list) { | |
| 1718 | GtkIMHtmlSmiley *cur = list->data; | |
| 1719 | if(!strcmp(cur->file, smiley->file)) | |
| 1720 | return FALSE; | |
| 1721 | list = list->next; | |
| 1722 | } | |
| 1723 | return TRUE; | |
| 4034 | 1724 | } |
| 1725 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1726 | void show_smiley_dialog(GaimConversation *c, GtkWidget *widget) |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1727 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1728 | GaimGtkConversation *gtkconv; |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1729 | GtkWidget *dialog; |
| 4667 | 1730 | GtkWidget *smiley_table = NULL; |
| 1731 | GSList *smileys, *unique_smileys = NULL; | |
| 1732 | int width; | |
| 1733 | int row = 0, col = 0; | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1734 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1735 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1736 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1737 | if (gtkconv->dialogs.smiley) |
|
558
479c1b17d9d0
[gaim-migrate @ 568]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
555
diff
changeset
|
1738 | return; |
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
1739 | |
| 4667 | 1740 | if(c->account) |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5925
diff
changeset
|
1741 | smileys = get_proto_smileys( |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5925
diff
changeset
|
1742 | gaim_account_get_protocol(gaim_conversation_get_account(c))); |
| 4667 | 1743 | else |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1744 | smileys = get_proto_smileys(GAIM_PROTO_DEFAULT); |
| 4667 | 1745 | |
| 1746 | while(smileys) { | |
| 1747 | GtkIMHtmlSmiley *smiley = smileys->data; | |
| 1748 | if(!smiley->hidden) { | |
| 1749 | if(smiley_is_unique(unique_smileys, smiley)) | |
| 1750 | unique_smileys = g_slist_append(unique_smileys, smiley); | |
| 1751 | } | |
| 1752 | smileys = smileys->next; | |
| 1753 | } | |
| 1754 | ||
| 1755 | ||
| 1756 | width = floor(sqrt(g_slist_length(unique_smileys))); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1757 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
1758 | GAIM_DIALOG(dialog); |
| 4635 | 1759 | gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
1760 | gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog"); |
| 934 | 1761 | gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); |
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
1762 | |
| 4667 | 1763 | smiley_table = gtk_table_new(width, width, TRUE); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1764 | |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1765 | /* pack buttons */ |
| 4667 | 1766 | |
| 1767 | while(unique_smileys) { | |
| 1768 | GtkIMHtmlSmiley *smiley = unique_smileys->data; | |
| 1769 | if(!smiley->hidden) { | |
| 1770 | add_smiley(c, smiley_table, row, col, smiley->file, smiley->smile); | |
| 1771 | if(++col >= width) { | |
| 1772 | col = 0; | |
| 1773 | row++; | |
| 1774 | } | |
| 1775 | } | |
| 1776 | unique_smileys = unique_smileys->next; | |
| 1777 | } | |
| 1778 | ||
| 1779 | gtk_container_add(GTK_CONTAINER(dialog), smiley_table); | |
| 1780 | ||
| 1781 | gtk_widget_show(smiley_table); | |
| 1782 | ||
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
1783 | gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1784 | |
|
605
3d93a5c09c8f
[gaim-migrate @ 615]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
603
diff
changeset
|
1785 | /* connect signals */ |
| 4635 | 1786 | g_object_set_data(G_OBJECT(dialog), "dialog_type", "smiley dialog"); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1787 | g_signal_connect(G_OBJECT(dialog), "delete_event", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1788 | G_CALLBACK(delete_event_dialog), c); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1789 | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1790 | /* show everything */ |
|
567
046c1568bad5
[gaim-migrate @ 577]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
558
diff
changeset
|
1791 | gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!")); |
|
584
5fa247775aac
[gaim-migrate @ 594]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
582
diff
changeset
|
1792 | gtk_widget_show_all(dialog); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1793 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1794 | gtkconv->dialogs.smiley = dialog; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1795 | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
1796 | return; |
|
558
479c1b17d9d0
[gaim-migrate @ 568]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
555
diff
changeset
|
1797 | } |
|
710
55c2137a3d2a
[gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
699
diff
changeset
|
1798 | |
|
6329
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1799 | static void |
| 6695 | 1800 | alias_chat_cb(GaimBlistChat *chat, const char *new_alias) |
| 5234 | 1801 | { |
|
6329
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1802 | gaim_blist_alias_chat(chat, new_alias); |
|
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1803 | gaim_blist_save(); |
| 5234 | 1804 | } |
| 1805 | ||
|
6329
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1806 | void |
| 6695 | 1807 | alias_dialog_blist_chat(GaimBlistChat *chat) |
|
6329
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1808 | { |
|
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1809 | gaim_request_input(NULL, _("Alias Chat"), _("Alias chat"), |
|
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1810 | _("Please enter an aliased name for this chat."), |
|
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1811 | chat->alias, FALSE, FALSE, |
|
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1812 | _("OK"), G_CALLBACK(alias_chat_cb), |
|
21037bfe0ee7
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1813 | _("Cancel"), NULL, chat); |
| 5234 | 1814 | } |
| 1815 | ||
|
6327
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1816 | static void |
| 6695 | 1817 | alias_buddy_cb(GaimBuddy *buddy, GaimRequestFields *fields) |
|
6327
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1818 | { |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1819 | const char *alias; |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1820 | |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1821 | alias = gaim_request_fields_get_string(fields, "alias"); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1822 | |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1823 | gaim_blist_alias_buddy(buddy, |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1824 | (alias != NULL && *alias != '\0') ? alias : NULL); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1825 | serv_alias_buddy(buddy); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1826 | gaim_blist_save(); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1827 | } |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1828 | |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
1829 | void |
| 6695 | 1830 | alias_dialog_bud(GaimBuddy *b) |
|
1397
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
1831 | { |
|
6327
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1832 | GaimRequestFields *fields; |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1833 | GaimRequestFieldGroup *group; |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1834 | GaimRequestField *field; |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1835 | |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1836 | fields = gaim_request_fields_new(); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1837 | |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1838 | group = gaim_request_field_group_new(NULL); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1839 | gaim_request_fields_add_group(fields, group); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1840 | |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1841 | field = gaim_request_field_string_new("screenname", _("_Screenname"), |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1842 | b->name, FALSE); |
|
7049
7085b21b00bb
[gaim-migrate @ 7612]
Christian Hammond <chipx86@chipx86.com>
parents:
7002
diff
changeset
|
1843 | gaim_request_field_string_set_editable(field, FALSE); |
|
6327
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1844 | gaim_request_field_group_add_field(group, field); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1845 | |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1846 | field = gaim_request_field_string_new("alias", _("_Alias"), |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1847 | b->alias, FALSE); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1848 | gaim_request_field_group_add_field(group, field); |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1849 | |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1850 | gaim_request_fields(NULL, _("Alias Buddy"), |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1851 | _("Alias buddy"), |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1852 | _("Please enter an aliased name for the person " |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1853 | "below, or rename this contact in your buddy list."), |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1854 | fields, |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1855 | _("OK"), G_CALLBACK(alias_buddy_cb), |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1856 | _("Cancel"), NULL, |
|
2a17057a2913
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1857 | b); |
|
1397
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
1858 | } |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
1859 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1860 | static gboolean dont_destroy(gpointer a, gpointer b, gpointer c) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1861 | { |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
1862 | return TRUE; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
1863 | } |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
1864 | |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1865 | static void do_save_log(GtkWidget *w, GtkWidget *filesel) |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1866 | { |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
1867 | const char *file; |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1868 | char path[PATHSIZE]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1869 | char buf[BUF_LONG]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1870 | char error[BUF_LEN]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1871 | FILE *fp_old, *fp_new; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1872 | char filename[PATHSIZE]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1873 | char *name; |
|
1722
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
1874 | char *tmp; |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1875 | |
| 4635 | 1876 | name = g_object_get_data(G_OBJECT(filesel), "name"); |
|
1722
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
1877 | tmp = gaim_user_dir(); |
| 3630 | 1878 | g_snprintf(filename, PATHSIZE, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1879 | name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1880 | |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
1881 | file = (const char*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1882 | strncpy(path, file, PATHSIZE - 1); |
|
5966
91a208b3e979
[gaim-migrate @ 6413]
Mark Doliner <markdoliner@pidgin.im>
parents:
5959
diff
changeset
|
1883 | if (gaim_gtk_check_if_dir(path, GTK_FILE_SELECTION(filesel))) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1884 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1885 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1886 | if ((fp_new = fopen(path, "w")) == NULL) { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1887 | g_snprintf(error, BUF_LONG, |
| 3427 | 1888 | _("Couldn't write to %s."), path); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1889 | gaim_notify_error(NULL, NULL, error, strerror(errno)); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1890 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1891 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1892 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1893 | if ((fp_old = fopen(filename, "r")) == NULL) { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1894 | g_snprintf(error, BUF_LONG, |
| 3427 | 1895 | _("Couldn't write to %s."), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1896 | gaim_notify_error(NULL, NULL, error, strerror(errno)); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1897 | fclose(fp_new); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1898 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1899 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1900 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1901 | while (fgets(buf, BUF_LONG, fp_old)) |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1902 | fputs(buf, fp_new); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1903 | fclose(fp_old); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1904 | fclose(fp_new); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1905 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1906 | gtk_widget_destroy(filesel); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1907 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1908 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1909 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1910 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1911 | static void show_save_log(GtkWidget *w, gchar *name) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1912 | { |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1913 | GtkWidget *filesel; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1914 | gchar buf[BUF_LEN]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1915 | |
| 3630 | 1916 | g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s%s", gaim_home_dir(), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1917 | name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1918 | |
| 4703 | 1919 | filesel = gtk_file_selection_new(_("Save Log File")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1920 | g_signal_connect(G_OBJECT(filesel), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1921 | G_CALLBACK(destroy_dialog), filesel); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1922 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1923 | gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel)); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1924 | gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1925 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1926 | "clicked", G_CALLBACK(do_save_log), filesel); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1927 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1928 | "clicked", G_CALLBACK(destroy_dialog), filesel); |
| 4635 | 1929 | g_object_set_data(G_OBJECT(filesel), "name", name); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1930 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1931 | gtk_widget_realize(filesel); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1932 | gtk_widget_show(filesel); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1933 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1934 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1935 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1936 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1937 | static void do_clear_log_file(GtkWidget *w, gchar *name) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1938 | { |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1939 | gchar buf[256]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1940 | gchar filename[256]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1941 | GtkWidget *window; |
|
1722
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
1942 | char *tmp; |
|
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
1943 | |
|
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
1944 | tmp = gaim_user_dir(); |
| 3630 | 1945 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1946 | name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1947 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1948 | if ((remove(filename)) == -1) { |
| 3427 | 1949 | g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1950 | gaim_notify_error(NULL, NULL, buf, strerror(errno)); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1951 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1952 | |
| 4635 | 1953 | window = g_object_get_data(G_OBJECT(w), "log_window"); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1954 | destroy_dialog(NULL, window); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1955 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1956 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1957 | static void show_clear_log(GtkWidget *w, gchar *name) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1958 | { |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1959 | GtkWidget *window; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1960 | GtkWidget *box; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1961 | GtkWidget *hbox; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1962 | GtkWidget *button; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1963 | GtkWidget *label; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1964 | GtkWidget *hsep; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1965 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
1966 | GAIM_DIALOG(window); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
1967 | gtk_window_set_role(GTK_WINDOW(window), "dialog"); |
| 4703 | 1968 | gtk_window_set_title(GTK_WINDOW(window), _("Clear Log")); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1969 | gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 1970 | gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1971 | g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1972 | gtk_widget_realize(window); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1973 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1974 | box = gtk_vbox_new(FALSE, 5); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1975 | gtk_container_add(GTK_CONTAINER(window), box); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1976 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1977 | label = gtk_label_new(_("Really clear log?")); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1978 | gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 15); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1979 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1980 | hsep = gtk_hseparator_new(); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1981 | gtk_box_pack_start(GTK_BOX(box), hsep, FALSE, FALSE, 0); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1982 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1983 | hbox = gtk_hbox_new(FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1984 | gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1985 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1986 | button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
| 4635 | 1987 | g_object_set_data(G_OBJECT(button), "log_window", g_object_get_data(G_OBJECT(w), |
| 1988 | "log_window")); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1989 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(do_clear_log_file), name); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1990 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1991 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1992 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1993 | button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1994 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1995 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1996 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1997 | gtk_widget_show_all(window); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1998 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
1999 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2000 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2001 | |
| 4635 | 2002 | static void log_show_convo(struct view_log *view) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2003 | { |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2004 | gchar buf[BUF_LONG]; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2005 | FILE *fp; |
| 2570 | 2006 | char filename[256]; |
| 2007 | int i=0; | |
| 2008 | GString *string; | |
| 2602 | 2009 | guint block; |
| 2010 | ||
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2011 | string = g_string_new(""); |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2012 | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2013 | if (view->name) { |
| 1634 | 2014 | char *tmp = gaim_user_dir(); |
| 3630 | 2015 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(view->name)); |
| 1634 | 2016 | } else { |
| 2017 | char *tmp = gaim_user_dir(); | |
| 3630 | 2018 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "system", tmp); |
| 1634 | 2019 | } |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2020 | if ((fp = fopen(filename, "r")) == NULL) { |
|
4923
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
2021 | if (view->name) { |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
2022 | g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s."), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
2023 | gaim_notify_error(NULL, NULL, buf, strerror(errno)); |
|
4923
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
2024 | } |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
2025 | /* If the system log doesn't exist.. no message just show empty system log window. |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
2026 | That way user knows that the log is empty :) |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
2027 | */ |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2028 | return; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2029 | } |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2030 | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2031 | gtk_widget_set_sensitive(view->bbox, FALSE); |
| 4635 | 2032 | g_signal_handlers_disconnect_by_func(G_OBJECT(view->window), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2033 | G_CALLBACK(destroy_dialog), view->window); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2034 | block = g_signal_connect(G_OBJECT(view->window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2035 | G_CALLBACK(dont_destroy), view->window); |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2036 | |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2037 | fseek(fp, view->offset, SEEK_SET); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2038 | gtk_imhtml_clear(GTK_IMHTML(view->layout)); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2039 | /* |
| 2570 | 2040 | while (gtk_events_pending()) |
| 2041 | gtk_main_iteration(); | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2042 | */ |
| 2570 | 2043 | |
| 6431 | 2044 | while (fgets(buf, BUF_LONG, fp) && !strstr(buf, "---- New C")) { |
| 2570 | 2045 | i++; |
| 2046 | if (strlen(buf) >= 5 && (!strncmp(buf + strlen(buf) - 5, "<BR>\n", 5))) | |
| 2047 | /* take off the \n */ | |
| 2048 | buf[strlen(buf) - 1] = '\0'; | |
| 2049 | ||
|
2642
4f404f93e015
[gaim-migrate @ 2655]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2623
diff
changeset
|
2050 | /* don't lose the thirtieth line of conversation. thanks FeRD */ |
|
4f404f93e015
[gaim-migrate @ 2655]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2623
diff
changeset
|
2051 | g_string_append(string, buf); |
|
4f404f93e015
[gaim-migrate @ 2655]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2623
diff
changeset
|
2052 | |
| 2570 | 2053 | if (i == 30) { |
|
6982
12f08de92674
[gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents:
6885
diff
changeset
|
2054 | gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, view->options); |
| 2570 | 2055 | g_string_free(string, TRUE); |
| 2056 | string = g_string_new(""); | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2057 | /* you can't have these anymore. if someone clicks on another item while one is |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2058 | * drawing, it will try to move to that item, and that causes problems here. |
| 2570 | 2059 | while (gtk_events_pending()) |
| 2060 | gtk_main_iteration(); | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2061 | */ |
| 2570 | 2062 | i = 0; |
| 2063 | } | |
| 2064 | ||
| 2065 | } | |
|
6982
12f08de92674
[gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents:
6885
diff
changeset
|
2066 | gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, view->options); |
|
12f08de92674
[gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents:
6885
diff
changeset
|
2067 | gtk_imhtml_append_text(GTK_IMHTML(view->layout), "<BR>", view->options); |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2068 | |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2069 | gtk_widget_set_sensitive(view->bbox, TRUE); |
| 4635 | 2070 | g_signal_handler_disconnect(G_OBJECT(view->window), block); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2071 | g_signal_connect(G_OBJECT(view->window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2072 | G_CALLBACK(destroy_dialog), view->window); |
| 2570 | 2073 | g_string_free(string, TRUE); |
| 2074 | fclose(fp); | |
| 2075 | } | |
| 2076 | ||
| 4635 | 2077 | static void log_select_convo(GtkTreeSelection *sel, GtkTreeModel *model) |
| 2078 | { | |
| 2079 | GValue val = { 0, }; | |
| 2080 | GtkTreeIter iter; | |
| 2081 | ||
| 2082 | if(!gtk_tree_selection_get_selected(sel, &model, &iter)) | |
| 2083 | return; | |
| 2084 | gtk_tree_model_get_value(model, &iter, 1, &val); | |
| 2085 | log_show_convo(g_value_get_pointer(&val)); | |
| 2086 | } | |
| 2087 | ||
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2088 | static void des_view_item(GtkObject *obj, struct view_log *view) |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2089 | { |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2090 | if (view->name) |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2091 | g_free(view->name); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2092 | g_free(view); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2093 | } |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2094 | |
| 4635 | 2095 | static void des_log_win(GObject *win, gpointer data) |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
2096 | { |
| 4635 | 2097 | char *x = g_object_get_data(win, "log_window"); |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
2098 | if (x) |
|
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
2099 | g_free(x); |
| 4874 | 2100 | x = g_object_get_data(win, "name"); |
| 2101 | if (x) | |
| 2102 | g_free(x); | |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
2103 | } |
|
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
2104 | |
| 3484 | 2105 | void conv_show_log(GtkWidget *w, gpointer data) |
| 2106 | { | |
| 2107 | char *name = g_strdup(data); | |
| 2108 | show_log(name); | |
| 2109 | g_free(name); | |
| 2110 | } | |
| 2111 | ||
| 3532 | 2112 | void chat_show_log(GtkWidget *w, gpointer data) |
| 2113 | { | |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
2114 | char *name = g_strdup_printf("%s.chat", (char*)data); |
| 3532 | 2115 | show_log(name); |
| 2116 | g_free(name); | |
| 2117 | } | |
| 2118 | ||
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2119 | static void |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2120 | url_clicked_cb(GtkWidget *widget, const char *uri) |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2121 | { |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2122 | gaim_notify_uri(NULL, uri); |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2123 | } |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2124 | |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
2125 | void show_log(char *nm) |
| 2570 | 2126 | { |
| 2127 | gchar filename[256]; | |
| 2128 | gchar buf[BUF_LONG]; | |
| 2129 | FILE *fp; | |
| 2130 | GtkWidget *window; | |
| 2131 | GtkWidget *box; | |
| 2132 | GtkWidget *hbox; | |
| 2602 | 2133 | GtkWidget *bbox; |
| 2570 | 2134 | GtkWidget *sw; |
| 2135 | GtkWidget *layout; | |
| 2136 | GtkWidget *close_button; | |
| 2137 | GtkWidget *clear_button; | |
| 2138 | GtkWidget *save_button; | |
| 4635 | 2139 | GtkListStore *list_store; |
| 2140 | GtkWidget *tree_view; | |
| 2141 | GtkTreeSelection *sel = NULL; | |
| 2142 | GtkTreePath *path; | |
| 2612 | 2143 | GtkWidget *item = NULL; |
| 2144 | GtkWidget *last = NULL; | |
| 2570 | 2145 | GtkWidget *frame; |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2146 | struct view_log *view; |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
2147 | char *name = nm ? g_strdup(nm) : NULL; |
| 2570 | 2148 | |
| 2149 | int options; | |
| 2150 | guint block; | |
| 2151 | char convo_start[32]; | |
| 2152 | long offset = 0; | |
| 2153 | ||
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2154 | options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2155 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2156 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_colors")) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2157 | options ^= GTK_IMHTML_NO_COLOURS; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2158 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2159 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_fonts")) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2160 | options ^= GTK_IMHTML_NO_FONTS; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2161 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2162 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_font_sizes")) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2163 | options ^= GTK_IMHTML_NO_SIZES; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2164 | |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2165 | window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 4635 | 2166 | g_object_set_data(G_OBJECT(window), "name", name); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2167 | g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
2168 | gtk_window_set_role(GTK_WINDOW(window), "log"); |
|
1648
f33239360f10
[gaim-migrate @ 1658]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1634
diff
changeset
|
2169 | if (name) |
| 4703 | 2170 | g_snprintf(buf, BUF_LONG, _("Conversations with %s"), name); |
|
1648
f33239360f10
[gaim-migrate @ 1658]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1634
diff
changeset
|
2171 | else |
| 4703 | 2172 | g_snprintf(buf, BUF_LONG, _("System Log")); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2173 | gtk_window_set_title(GTK_WINDOW(window), buf); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2174 | gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 2175 | gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2176 | block = g_signal_connect(G_OBJECT(window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2177 | G_CALLBACK(dont_destroy), window); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2178 | gtk_widget_realize(window); |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2179 | |
| 2570 | 2180 | layout = gtk_imhtml_new(NULL, NULL); |
| 2602 | 2181 | bbox = gtk_hbox_new(FALSE, 0); |
| 2182 | ||
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2183 | box = gtk_vbox_new(FALSE, 5); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2184 | gtk_container_add(GTK_CONTAINER(window), box); |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2185 | |
| 2570 | 2186 | hbox = gtk_hbox_new(FALSE, 5); |
| 2187 | gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0); | |
| 2188 | ||
| 2189 | if (name) { | |
| 2190 | char *tmp = gaim_user_dir(); | |
| 3630 | 2191 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(name)); |
| 2570 | 2192 | if ((fp = fopen(filename, "r")) == NULL) { |
|
6623
75ba9eb9d3f8
[gaim-migrate @ 7147]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
6465
diff
changeset
|
2193 | g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s."), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
2194 | gaim_notify_error(NULL, NULL, buf, strerror(errno)); |
| 2570 | 2195 | return; |
| 2196 | } | |
| 2197 | ||
| 4635 | 2198 | list_store = gtk_list_store_new(2, |
| 2199 | G_TYPE_STRING, | |
| 2200 | G_TYPE_POINTER); | |
| 2201 | ||
| 2202 | tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store)); | |
| 2203 | ||
| 2204 | gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE); | |
| 2205 | ||
| 2206 | gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view), | |
| 2207 | -1, "", gtk_cell_renderer_text_new(), "text", 0, NULL); | |
| 2208 | ||
| 2209 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); | |
| 2210 | g_signal_connect(G_OBJECT(sel), "changed", | |
| 2211 | G_CALLBACK(log_select_convo), | |
| 2212 | NULL); | |
| 2570 | 2213 | |
| 2214 | frame = gtk_frame_new(_("Date")); | |
| 2215 | gtk_widget_show(frame); | |
| 2216 | ||
| 2217 | sw = gtk_scrolled_window_new(NULL, NULL); | |
| 2218 | gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | |
| 4635 | 2219 | gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), tree_view); |
|
2613
0a766cd74603
[gaim-migrate @ 2626]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2612
diff
changeset
|
2220 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
|
0a766cd74603
[gaim-migrate @ 2626]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2612
diff
changeset
|
2221 | GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 4635 | 2222 | gtk_widget_set_size_request(sw, 220, 220); |
| 2570 | 2223 | gtk_container_add(GTK_CONTAINER(frame), sw); |
| 2224 | gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 2225 | ||
| 2226 | while (fgets(buf, BUF_LONG, fp)) { | |
| 6431 | 2227 | if (strstr(buf, "---- New C")) { |
| 2570 | 2228 | int length; |
| 2229 | char *temp = strchr(buf, '@'); | |
| 4635 | 2230 | GtkTreeIter iter; |
| 2612 | 2231 | |
| 2570 | 2232 | if (temp == NULL || strlen(temp) < 2) |
| 2233 | continue; | |
| 2612 | 2234 | |
| 2570 | 2235 | temp++; |
| 2236 | length = strcspn(temp, "-"); | |
| 2237 | if (length > 31) length = 31; | |
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2238 | |
| 2570 | 2239 | offset = ftell(fp); |
| 2240 | g_snprintf(convo_start, length, "%s", temp); | |
| 4635 | 2241 | gtk_list_store_append(list_store, &iter); |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2242 | view = g_new0(struct view_log, 1); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2243 | view->options = options; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2244 | view->offset = offset; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2245 | view->name = g_strdup(name); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2246 | view->bbox = bbox; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2247 | view->window = window; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2248 | view->layout = layout; |
| 4635 | 2249 | gtk_list_store_set(list_store, &iter, |
| 2250 | 0, convo_start, | |
| 2251 | 1, view, | |
| 2252 | -1); | |
| 2253 | g_signal_connect(G_OBJECT(window), "destroy", | |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2254 | G_CALLBACK(des_view_item), view); |
| 2612 | 2255 | last = item; |
| 2570 | 2256 | } |
| 2257 | } | |
| 2258 | fclose(fp); | |
| 4635 | 2259 | |
| 2260 | path = gtk_tree_path_new_first(); | |
| 2261 | gtk_tree_selection_select_path(sel, path); | |
| 2262 | gtk_tree_path_free(path); | |
| 2263 | ||
| 2264 | g_object_unref(G_OBJECT(list_store)); | |
| 2612 | 2265 | } |
| 2266 | ||
| 4635 | 2267 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2268 | g_signal_handler_disconnect(G_OBJECT(window), block); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2269 | g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); |
| 2602 | 2270 | |
| 5400 | 2271 | frame = gtk_frame_new(_("Log")); |
| 2570 | 2272 | gtk_widget_show(frame); |
| 2273 | ||
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2274 | sw = gtk_scrolled_window_new(NULL, NULL); |
| 2570 | 2275 | gtk_container_set_border_width(GTK_CONTAINER(sw), 5); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2276 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4316
diff
changeset
|
2277 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 4635 | 2278 | gtk_widget_set_size_request(sw, 390, 220); |
| 2570 | 2279 | gtk_container_add(GTK_CONTAINER(frame), sw); |
| 2280 | gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 2281 | ||
|
6465
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2282 | g_signal_connect(G_OBJECT(layout), "url_clicked", |
|
bd201d637ff4
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
2283 | G_CALLBACK(url_clicked_cb), NULL); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2284 | gtk_container_add(GTK_CONTAINER(sw), layout); |
|
1815
e2b090284b19
[gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1805
diff
changeset
|
2285 | gaim_setup_imhtml(layout); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2286 | |
| 2602 | 2287 | gtk_box_pack_start(GTK_BOX(box), bbox, FALSE, FALSE, 0); |
| 2288 | gtk_widget_set_sensitive(bbox, FALSE); | |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2289 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2290 | close_button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL); |
| 2602 | 2291 | gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2292 | g_signal_connect(G_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2293 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2294 | clear_button = gaim_pixbuf_button_from_stock(_("Clear"), GTK_STOCK_CLEAR, GAIM_BUTTON_HORIZONTAL); |
| 4635 | 2295 | g_object_set_data(G_OBJECT(clear_button), "log_window", window); |
| 2602 | 2296 | gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2297 | g_signal_connect(G_OBJECT(clear_button), "clicked", G_CALLBACK(show_clear_log), name); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2298 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2299 | save_button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
| 2602 | 2300 | gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2301 | g_signal_connect(G_OBJECT(save_button), "clicked", G_CALLBACK(show_save_log), name); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
2302 | |
| 4635 | 2303 | gtk_widget_show_all(window); |
| 2304 | ||
| 2570 | 2305 | if (!name) { |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2306 | view = g_new0(struct view_log, 1); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2307 | view->options = options; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2308 | view->name = NULL; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2309 | view->bbox = bbox; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2310 | view->window = window; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
2311 | view->layout = layout; |
| 4635 | 2312 | log_show_convo(view); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2313 | g_signal_connect(G_OBJECT(layout), "destroy", G_CALLBACK(des_view_item), view); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2314 | } |
| 4635 | 2315 | |
| 2602 | 2316 | gtk_widget_set_sensitive(bbox, TRUE); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2317 | |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2318 | return; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2319 | } |
| 1729 | 2320 |