Mercurial > pidgin
annotate src/dialogs.c @ 7863:6ee2fe9bb74e
[gaim-migrate @ 8517]
"Patch 2: ssl-plugins.patch
Other plugins might need to use the NSS/GNUTLS libraries,
which shouldn't be initialized multiple times in the same
thread (at least NSS says this is a bad thing to do).
This patch
enables other plugins to load either the NSS or
GNUTLS plugin,
and
a) have them init on load, rather when sslconn inits them
b) have them not stomp on each other if the other one has
already loaded." --Bill Tompkins (obobo)
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Sun, 14 Dec 2003 16:46:28 +0000 |
| parents | 340df1652af1 |
| children | f9df510460d7 |
| rev | line source |
|---|---|
| 1 | 1 /* |
| 2 * gaim | |
| 3 * | |
| 4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
|
6465
fb64cc87bc96
[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
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
20 #include "gtkinternal.h" |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
21 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
22 #include "debug.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
23 #include "log.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
24 #include "multi.h" |
|
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
25 #include "notify.h" |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
26 #include "prefs.h" |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
27 #include "prpl.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
28 #include "request.h" |
| 6065 | 29 #include "status.h" |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
30 #include "util.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
31 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
32 #include "gtkblist.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
33 #include "gtkconv.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
34 #include "gtkimhtml.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
35 #include "gtkprefs.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
36 #include "gtkutils.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
37 #include "stock.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
38 |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
39 #include "ui.h" |
|
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
40 |
|
6646
b89d98f0bf79
[gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents:
6640
diff
changeset
|
41 /* XXX */ |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
42 #include "gaim.h" |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
43 |
| 1 | 44 static GList *dialogwindows = NULL; |
|
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
45 static GtkWidget *fontseld = NULL; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
46 |
| 2743 | 47 struct confirm_del { |
| 48 GtkWidget *window; | |
| 49 GtkWidget *label; | |
| 50 GtkWidget *ok; | |
| 51 GtkWidget *cancel; | |
| 52 char name[1024]; | |
|
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
53 GaimConnection *gc; |
| 2743 | 54 }; |
| 55 | |
| 1 | 56 struct create_away { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
57 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
58 GtkWidget *entry; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
59 GtkWidget *text; |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
60 struct away_message *mess; |
| 1 | 61 }; |
| 62 | |
| 63 struct warning { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
64 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
65 GtkWidget *anon; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
66 char *who; |
|
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
67 GaimConnection *gc; |
| 1 | 68 }; |
| 69 | |
| 3197 | 70 struct getuserinfo { |
| 71 GtkWidget *window; | |
| 72 GtkWidget *entry; | |
| 73 GtkWidget *account; | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
74 GaimConnection *gc; |
| 3197 | 75 }; |
| 76 | |
| 1 | 77 struct linkdlg { |
| 78 GtkWidget *ok; | |
| 79 GtkWidget *cancel; | |
| 80 GtkWidget *window; | |
| 81 GtkWidget *url; | |
| 82 GtkWidget *text; | |
| 83 GtkWidget *toggle; | |
| 84 GtkWidget *entry; | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
85 GaimConversation *c; |
| 1 | 86 }; |
| 87 | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
88 struct view_log { |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
89 long offset; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
90 int options; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
91 char *name; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
92 GtkWidget *bbox; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
93 GtkWidget *window; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
94 GtkWidget *layout; |
| 7330 | 95 void *clear_handle; |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
96 }; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
97 |
| 4119 | 98 /* Wrapper to get all the text from a GtkTextView */ |
| 99 gchar* gtk_text_view_get_text(GtkTextView *text, gboolean include_hidden_chars) | |
| 100 { | |
| 101 GtkTextBuffer *buffer; | |
| 102 GtkTextIter start, end; | |
| 103 | |
| 104 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); | |
| 105 gtk_text_buffer_get_start_iter(buffer, &start); | |
| 106 gtk_text_buffer_get_end_iter(buffer, &end); | |
| 107 | |
| 108 return gtk_text_buffer_get_text(buffer, &start, &end, include_hidden_chars); | |
| 109 } | |
| 110 | |
| 1 | 111 /*------------------------------------------------------------------------*/ |
| 112 /* Destroys */ | |
| 113 /*------------------------------------------------------------------------*/ | |
| 114 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
115 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, GaimConversation *c) |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
116 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
117 GaimGtkConversation *gtkconv; |
| 605 | 118 gchar *object_data; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
119 |
| 4635 | 120 object_data = g_object_get_data(G_OBJECT(w), "dialog_type"); |
| 605 | 121 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
122 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
123 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
124 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
125 if (w == gtkconv->dialogs.fg_color) { |
| 4635 | 126 gtk_toggle_button_set_active( |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
127 GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
128 gtkconv->dialogs.fg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
129 } else { |
| 4635 | 130 gtk_toggle_button_set_active( |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
131 GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
132 gtkconv->dialogs.bg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
133 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
134 } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) { |
| 4635 | 135 gtk_toggle_button_set_active( |
| 4685 | 136 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
137 gtkconv->dialogs.font = NULL; |
| 4793 | 138 } else if (!g_ascii_strcasecmp(object_data, "smiley dialog")) { |
| 4635 | 139 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
140 FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
141 gtkconv->dialogs.smiley = NULL; |
| 4793 | 142 } else if (!g_ascii_strcasecmp(object_data, "log dialog")) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
143 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->toolbar.log), |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
144 FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
145 gtkconv->dialogs.log = NULL; |
| 608 | 146 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
147 |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
148 dialogwindows = g_list_remove(dialogwindows, w); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
149 gtk_widget_destroy(w); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
150 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
151 return FALSE; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
152 } |
| 1 | 153 |
| 154 static void destroy_dialog(GtkWidget *w, GtkWidget *w2) | |
| 155 { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
156 GtkWidget *dest; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
157 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
158 if (!GTK_IS_WIDGET(w2)) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
159 dest = w; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
160 else |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
161 dest = w2; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
162 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
163 dialogwindows = g_list_remove(dialogwindows, dest); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
164 gtk_widget_destroy(dest); |
| 1 | 165 } |
| 166 | |
| 167 | |
| 168 void destroy_all_dialogs() | |
| 169 { | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
170 while (dialogwindows) |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
171 destroy_dialog(NULL, dialogwindows->data); |
| 1 | 172 |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
173 if (awaymessage) |
|
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
174 do_im_back(NULL, NULL); |
| 1 | 175 } |
| 176 | |
| 3757 | 177 static void do_warn(GtkWidget *widget, gint resp, struct warning *w) |
| 1 | 178 { |
| 3757 | 179 if (resp == GTK_RESPONSE_OK) |
| 180 serv_warn(w->gc, w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? 1 : 0); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
181 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
182 destroy_dialog(NULL, w->window); |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
183 g_free(w); |
|
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
184 } |
| 1 | 185 |
|
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
186 void show_warn_dialog(GaimConnection *gc, char *who) |
| 1 | 187 { |
| 3757 | 188 char *labeltext; |
| 189 GtkWidget *hbox, *vbox; | |
| 1 | 190 GtkWidget *label; |
| 5024 | 191 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); |
|
6640
314111e7b601
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
192 GaimConversation *c = gaim_find_conversation_with_account(who, gc->account); |
| 441 | 193 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
194 struct warning *w = g_new0(struct warning, 1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
195 w->who = who; |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
196 w->gc = gc; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
197 |
| 3757 | 198 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 199 | |
| 6112 | 200 w->window = gtk_dialog_new_with_buttons(_("Warn User"), |
| 201 GTK_WINDOW(GAIM_GTK_WINDOW(c->window)->window), 0, | |
| 202 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | |
| 203 _("_Warn"), GTK_RESPONSE_OK, NULL); | |
| 4118 | 204 gtk_dialog_set_default_response (GTK_DIALOG(w->window), GTK_RESPONSE_OK); |
| 3757 | 205 g_signal_connect(G_OBJECT(w->window), "response", G_CALLBACK(do_warn), w); |
| 206 | |
| 207 gtk_container_set_border_width (GTK_CONTAINER(w->window), 6); | |
| 208 gtk_window_set_resizable(GTK_WINDOW(w->window), FALSE); | |
| 209 gtk_dialog_set_has_separator(GTK_DIALOG(w->window), FALSE); | |
| 210 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(w->window)->vbox), 12); | |
| 211 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), 6); | |
| 212 | |
| 213 hbox = gtk_hbox_new(FALSE, 12); | |
| 214 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox); | |
| 215 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
216 |
| 3757 | 217 vbox = gtk_vbox_new(FALSE, 0); |
| 218 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 219 labeltext = g_strdup_printf(_("<span weight=\"bold\" size=\"larger\">Warn %s?</span>\n\n" | |
| 220 "This will increase %s's warning level and he or she will be subject to harsher rate limiting.\n"), who, who); | |
| 221 label = gtk_label_new(NULL); | |
| 222 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 223 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 224 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 225 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 226 g_free(labeltext); | |
| 227 | |
| 228 w->anon = gtk_check_button_new_with_mnemonic(_("Warn _anonymously?")); | |
| 229 gtk_box_pack_start(GTK_BOX(vbox), w->anon, FALSE, FALSE, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
230 |
| 3757 | 231 hbox = gtk_hbox_new(FALSE, 6); |
| 232 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 233 img = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_MENU); | |
| 234 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 235 labeltext = _("<b>Anonymous warnings are less severe.</b>"); | |
| 236 /* labeltext = _("Anonymous warnings are less severe."); */ | |
| 237 label = gtk_label_new(NULL); | |
| 238 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 239 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 240 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 241 | |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
242 dialogwindows = g_list_prepend(dialogwindows, w->window); |
| 3757 | 243 gtk_widget_show_all(w->window); |
| 1 | 244 } |
| 245 | |
|
6334
930708df05dd
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
246 static void |
|
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7108
diff
changeset
|
247 do_remove_chat(GaimChat *chat) |
| 5234 | 248 { |
| 249 gaim_blist_remove_chat(chat); | |
| 250 gaim_blist_save(); | |
| 251 } | |
| 252 | |
|
6334
930708df05dd
[gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents:
6331
diff
changeset
|
253 static void |
| 6695 | 254 do_remove_buddy(GaimBuddy *b) |
| 2743 | 255 { |
| 6695 | 256 GaimGroup *g; |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
257 GaimConversation *c; |
|
4918
553d96cb9b26
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
258 gchar *name; |
|
6640
314111e7b601
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
259 GaimAccount *account; |
| 2743 | 260 |
| 261 if (!b) | |
| 262 return; | |
| 263 | |
| 4687 | 264 g = gaim_find_buddys_group(b); |
|
6640
314111e7b601
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
265 name = g_strdup(b->name); /* b->name is a crasher after remove_buddy */ |
|
314111e7b601
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
266 account = b->account; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
267 |
|
5213
1cf4eb75e3ee
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
268 gaim_debug(GAIM_DEBUG_INFO, "blist", |
|
1cf4eb75e3ee
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
269 "Removing '%s' from buddy list.\n", b->name); |
| 4491 | 270 serv_remove_buddy(b->account->gc, name, g->name); |
| 4687 | 271 gaim_blist_remove_buddy(b); |
| 4349 | 272 gaim_blist_save(); |
| 2743 | 273 |
|
6640
314111e7b601
[gaim-migrate @ 7165]
Christian Hammond <chipx86@chipx86.com>
parents:
6623
diff
changeset
|
274 c = gaim_find_conversation_with_account(name, account); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
275 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
276 if (c != NULL) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
277 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); |
|
4397
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
278 |
|
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
279 g_free(name); |
| 2743 | 280 } |
| 281 | |
| 6742 | 282 static void do_remove_contact(GaimContact *c) |
| 283 { | |
| 284 GaimBlistNode *bnode, *cnode; | |
| 285 GaimGroup *g; | |
| 286 | |
| 287 if(!c) | |
| 288 return; | |
| 289 | |
| 290 cnode = (GaimBlistNode *)c; | |
| 291 g = (GaimGroup*)cnode->parent; | |
| 292 for(bnode = cnode->child; bnode; bnode = bnode->next) { | |
| 293 GaimBuddy *b = (GaimBuddy*)bnode; | |
| 294 if(b->account->gc) | |
| 295 serv_remove_buddy(b->account->gc, b->name, g->name); | |
| 296 } | |
| 297 gaim_blist_remove_contact(c); | |
| 298 } | |
| 299 | |
| 6695 | 300 void do_remove_group(GaimGroup *g) |
| 4916 | 301 { |
| 6695 | 302 GaimBlistNode *cnode, *bnode; |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6878
diff
changeset
|
303 |
| 6695 | 304 cnode = ((GaimBlistNode*)g)->child; |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6878
diff
changeset
|
305 |
| 6695 | 306 while(cnode) { |
| 307 if(GAIM_BLIST_NODE_IS_CONTACT(cnode)) { | |
| 308 bnode = cnode->child; | |
| 309 cnode = cnode->next; | |
| 310 while(bnode) { | |
| 311 GaimBuddy *b; | |
| 312 if(GAIM_BLIST_NODE_IS_BUDDY(bnode)) { | |
|
6745
57a24492434b
[gaim-migrate @ 7277]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6742
diff
changeset
|
313 GaimConversation *c; |
|
57a24492434b
[gaim-migrate @ 7277]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6742
diff
changeset
|
314 b = (GaimBuddy*)bnode; |
| 6695 | 315 bnode = bnode->next; |
|
6745
57a24492434b
[gaim-migrate @ 7277]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6742
diff
changeset
|
316 c = gaim_find_conversation_with_account(b->name, b->account); |
| 6695 | 317 if(gaim_account_is_connected(b->account)) { |
| 318 serv_remove_buddy(b->account->gc, b->name, g->name); | |
| 319 gaim_blist_remove_buddy(b); | |
| 320 if(c) | |
| 321 gaim_conversation_update(c, | |
| 322 GAIM_CONV_UPDATE_REMOVE); | |
| 323 } | |
| 324 } else { | |
| 325 bnode = bnode->next; | |
| 326 } | |
| 5234 | 327 } |
| 6695 | 328 } else if(GAIM_BLIST_NODE_IS_CHAT(cnode)) { |
|
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7108
diff
changeset
|
329 GaimChat *chat = (GaimChat *)cnode; |
| 6695 | 330 cnode = cnode->next; |
| 331 if(gaim_account_is_connected(chat->account)) | |
| 6088 | 332 gaim_blist_remove_chat(chat); |
| 6695 | 333 } else { |
| 334 cnode = cnode->next; | |
| 4938 | 335 } |
| 4916 | 336 } |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6878
diff
changeset
|
337 |
| 4916 | 338 gaim_blist_remove_group(g); |
| 339 gaim_blist_save(); | |
| 340 } | |
| 341 | |
| 6695 | 342 void show_confirm_del(GaimBuddy *b) |
| 2743 | 343 { |
| 3753 | 344 char *text; |
| 5975 | 345 if (!b) |
| 3753 | 346 return; |
| 347 | |
| 5975 | 348 text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), b->name); |
| 349 | |
| 350 gaim_request_action(NULL, NULL, _("Remove Buddy"), text, -1, b, 2, | |
|
5498
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
351 _("Remove Buddy"), G_CALLBACK(do_remove_buddy), |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
352 _("Cancel"), NULL); |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
353 |
| 3753 | 354 g_free(text); |
| 2743 | 355 } |
| 356 | |
|
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7108
diff
changeset
|
357 void show_confirm_del_blist_chat(GaimChat *chat) |
| 5234 | 358 { |
| 7125 | 359 char *name = gaim_chat_get_display_name(chat); |
| 6034 | 360 char *text = g_strdup_printf(_("You are about to remove the chat %s from your buddy list. Do you want to continue?"), name); |
|
5498
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
361 |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
362 gaim_request_action(NULL, NULL, _("Remove Chat"), text, -1, chat, 2, |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
363 _("Remove Chat"), G_CALLBACK(do_remove_chat), |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
364 _("Cancel"), NULL); |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
365 |
| 6034 | 366 g_free(name); |
| 5234 | 367 g_free(text); |
| 368 } | |
| 369 | |
| 6695 | 370 void show_confirm_del_group(GaimGroup *g) |
| 4916 | 371 { |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
372 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 | 373 g->name); |
|
5498
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
374 |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
375 gaim_request_action(NULL, NULL, _("Remove Group"), text, -1, g, 2, |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
376 _("Remove Group"), G_CALLBACK(do_remove_group), |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
377 _("Cancel"), NULL); |
|
cce2d7868c78
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
378 |
| 4916 | 379 g_free(text); |
| 380 } | |
| 1 | 381 |
| 6742 | 382 void show_confirm_del_contact(GaimContact *c) |
| 383 { | |
| 384 GaimBuddy *b = gaim_contact_get_priority_buddy(c); | |
| 385 | |
| 386 if(!b) | |
| 387 return; | |
| 388 | |
| 389 if(((GaimBlistNode*)c)->child == (GaimBlistNode*)b && | |
| 390 !((GaimBlistNode*)b)->next) { | |
| 391 show_confirm_del(b); | |
| 392 } else { | |
| 393 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?"), | |
| 394 b->name, c->totalsize - 1); | |
| 395 | |
| 396 gaim_request_action(NULL, NULL, _("Remove Contact"), text, -1, c, 2, | |
| 397 _("Remove Contact"), G_CALLBACK(do_remove_contact), | |
| 398 _("Cancel"), NULL); | |
| 399 | |
| 400 g_free(text); | |
| 401 } | |
| 402 } | |
| 403 | |
| 7757 | 404 static gboolean show_ee_dialog(const char *ee) |
| 1 | 405 { |
| 3767 | 406 GtkWidget *window; |
| 407 GtkWidget *hbox; | |
| 1 | 408 GtkWidget *label; |
|
7098
770233dad86c
[gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents:
7085
diff
changeset
|
409 GaimGtkBuddyList *gtkblist; |
| 5024 | 410 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_COOL, GTK_ICON_SIZE_DIALOG); |
| 7757 | 411 gchar *norm = gaim_strreplace(ee, "rocksmyworld", ""); |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
412 |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
413 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
414 |
| 3767 | 415 label = gtk_label_new(NULL); |
| 7757 | 416 if (!strcmp(norm, "zilding")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
417 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 418 "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>"); |
| 7757 | 419 else if (!strcmp(norm, "robflynn")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
420 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 421 "<span weight=\"bold\" size=\"large\" foreground=\"#1f6bad\">Pimpin\' Penguin Style! *Waddle Waddle*</span>"); |
| 7757 | 422 else if (!strcmp(norm, "flynorange")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
423 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 424 "<span weight=\"bold\" size=\"large\" foreground=\"blue\">You should be me. I'm so cute!</span>"); |
| 7757 | 425 else if (!strcmp(norm, "ewarmenhoven")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
426 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 427 "<span weight=\"bold\" size=\"large\" foreground=\"orange\">Now that's what I like!</span>"); |
| 7757 | 428 else if (!strcmp(norm, "markster97")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
429 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 430 "<span weight=\"bold\" size=\"large\" foreground=\"brown\">Ahh, and excellent choice!</span>"); |
| 7757 | 431 else if (!strcmp(norm, "seanegn")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
432 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 433 "<span weight=\"bold\" size=\"large\" foreground=\"#009900\">Everytime you click my name, an angel gets its wings.</span>"); |
| 7757 | 434 else if (!strcmp(norm, "chipx86")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
435 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 436 "<span weight=\"bold\" size=\"large\" foreground=\"red\">This sunflower seed taste like pizza.</span>"); |
| 7757 | 437 else if (!strcmp(norm, "markdoliner")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
438 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 439 "<span weight=\"bold\" size=\"large\" foreground=\"#6364B1\">Hey! I was in that tumbleweed!</span>"); |
| 7757 | 440 else if (!strcmp(norm, "lschiere")) |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
441 gtk_label_set_markup(GTK_LABEL(label), |
| 3767 | 442 "<span weight=\"bold\" size=\"large\" foreground=\"gray\">I'm not anything.</span>"); |
| 7757 | 443 g_free(norm); |
| 444 | |
| 445 if (strlen(gtk_label_get_label(GTK_LABEL(label))) <= 0) | |
| 446 return FALSE; | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
447 |
| 7678 | 448 window = gtk_dialog_new_with_buttons(GAIM_ALERT_TITLE, GTK_WINDOW(gtkblist->window), 0, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 3767 | 449 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); |
| 450 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(gtk_widget_destroy), NULL); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
451 |
| 3767 | 452 gtk_container_set_border_width (GTK_CONTAINER(window), 6); |
| 453 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 454 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 455 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 456 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 457 | |
| 458 hbox = gtk_hbox_new(FALSE, 12); | |
| 459 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 460 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
461 |
| 3767 | 462 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 463 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 464 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 465 |
| 3767 | 466 gtk_widget_show_all(window); |
| 7757 | 467 return TRUE; |
| 468 } | |
| 469 | |
| 470 static void do_im(GtkWidget *dialog, int id, struct getuserinfo *info) | |
| 471 { | |
| 472 const char *who; | |
| 473 GaimConversation *conv; | |
| 474 GaimAccount *account; | |
| 475 | |
| 476 switch(id) { | |
| 477 case GTK_RESPONSE_OK: | |
| 478 who = gtk_entry_get_text(GTK_ENTRY(info->entry)); | |
| 479 | |
| 480 if (who && *who) { | |
| 481 account = (info->gc ? info->gc->account : NULL); | |
| 482 | |
| 483 conv = gaim_find_conversation_with_account(who, account); | |
| 484 | |
| 485 if (conv == NULL) | |
| 486 conv = gaim_conversation_new(GAIM_CONV_IM, account, who); | |
| 487 else | |
| 488 gaim_conv_window_raise(gaim_conversation_get_window(conv)); | |
| 489 } | |
| 490 | |
| 491 break; | |
| 492 } | |
| 493 | |
| 494 gtk_widget_destroy(GTK_WIDGET(dialog)); | |
| 495 g_free(info); | |
| 496 } | |
| 497 | |
| 498 static void do_info(GtkWidget *dialog, int id, struct getuserinfo *info) | |
| 499 { | |
| 500 char *who; | |
| 501 gboolean found = FALSE; | |
| 502 | |
| 503 switch(id) { | |
| 504 case GTK_RESPONSE_OK: | |
| 505 who = g_strdup(gaim_normalize(info->gc->account, gtk_entry_get_text(GTK_ENTRY(info->entry)))); | |
| 506 | |
| 507 if (who && gaim_str_has_suffix(who, "rocksmyworld")) { | |
| 508 found = show_ee_dialog(who); | |
| 509 } | |
| 510 | |
| 511 if (!found && who && *who && info->gc) | |
| 512 serv_get_info(info->gc, who); | |
| 513 | |
| 514 g_free(who); | |
| 515 break; | |
| 516 } | |
| 517 | |
| 518 gtk_widget_destroy(GTK_WIDGET(dialog)); | |
| 519 g_free(info); | |
| 1 | 520 } |
| 521 | |
|
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
522 static void |
|
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
523 show_info_select_account(GObject *w, GaimAccount *account, |
|
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6352
diff
changeset
|
524 struct getuserinfo *info) |
| 3816 | 525 { |
|
5880
1b85ff65be57
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
526 info->gc = gaim_account_get_connection(account); |
| 3816 | 527 } |
| 528 | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
529 void show_im_dialog() |
| 1 | 530 { |
| 7755 | 531 GtkWidget *window, *hbox, *vbox; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
532 GtkWidget *label; |
|
5880
1b85ff65be57
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
533 GtkWidget *table; |
|
7098
770233dad86c
[gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents:
7085
diff
changeset
|
534 GaimGtkBuddyList *gtkblist; |
| 5024 | 535 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 7755 | 536 struct getuserinfo *info = g_new0(struct getuserinfo, 1); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
537 |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
538 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
539 |
| 7755 | 540 info->gc = gaim_connections_get_all()->data; |
| 4613 | 541 |
| 7853 | 542 window = gtk_dialog_new_with_buttons(_("New Instant Message"), gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
| 7755 | 543 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 544 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); | |
| 545 gtk_container_set_border_width (GTK_CONTAINER(window), 6); | |
| 546 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 547 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 548 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 549 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 550 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, FALSE); | |
| 551 | |
| 552 hbox = gtk_hbox_new(FALSE, 12); | |
| 553 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 554 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 555 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 556 | |
| 557 vbox = gtk_vbox_new(FALSE, 0); | |
| 558 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 3802 | 559 |
| 7755 | 560 label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n")); |
| 561 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 562 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 563 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4613 | 564 |
| 7755 | 565 table = gtk_table_new(2, 2, FALSE); |
| 566 gtk_table_set_row_spacings(GTK_TABLE(table), 6); | |
| 567 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 568 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 569 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 4613 | 570 |
| 7755 | 571 label = gtk_label_new(NULL); |
| 572 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
| 573 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 574 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
| 4613 | 575 |
| 7755 | 576 info->entry = gtk_entry_new(); |
| 577 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 578 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); | |
| 579 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 580 | |
| 581 g_signal_connect(G_OBJECT(info->entry), "changed", | |
| 582 G_CALLBACK(gaim_gtk_set_sensitive_if_input), window); | |
| 583 | |
| 584 if (gaim_connections_get_all()->next) { | |
| 4613 | 585 |
| 3802 | 586 label = gtk_label_new(NULL); |
| 7755 | 587 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
| 588 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); | |
| 3823 | 589 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 3816 | 590 |
| 7755 | 591 info->account = gaim_gtk_account_option_menu_new(NULL, FALSE, |
| 592 G_CALLBACK(show_info_select_account), NULL, info); | |
| 4613 | 593 |
| 7755 | 594 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); |
| 595 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
596 } |
| 4613 | 597 |
| 7755 | 598 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_im), info); |
| 599 | |
| 600 gtk_widget_show_all(window); | |
| 7757 | 601 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); |
| 3197 | 602 } |
| 603 | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
604 void show_info_dialog() |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
605 { |
| 3802 | 606 GtkWidget *window, *hbox, *vbox; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
607 GtkWidget *label; |
| 7755 | 608 GtkWidget *table; |
| 609 GaimGtkBuddyList *gtkblist; | |
| 5024 | 610 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 3197 | 611 struct getuserinfo *info = g_new0(struct getuserinfo, 1); |
| 3802 | 612 |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
613 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
614 |
|
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
615 info->gc = gaim_connections_get_all()->data; |
| 3197 | 616 |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
617 window = gtk_dialog_new_with_buttons(_("Get User Info"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
| 3802 | 618 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 619 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); | |
| 620 gtk_container_set_border_width (GTK_CONTAINER(window), 6); | |
| 621 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 622 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 623 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 624 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 7755 | 625 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, FALSE); |
| 4614 | 626 |
| 3802 | 627 hbox = gtk_hbox_new(FALSE, 12); |
| 628 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 629 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 630 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 4614 | 631 |
| 3802 | 632 vbox = gtk_vbox_new(FALSE, 0); |
| 633 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
634 |
| 3802 | 635 label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n")); |
| 636 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 637 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 638 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
639 |
| 3197 | 640 table = gtk_table_new(2, 2, FALSE); |
| 3802 | 641 gtk_table_set_row_spacings(GTK_TABLE(table), 6); |
| 642 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 643 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 644 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
645 |
| 3802 | 646 label = gtk_label_new(NULL); |
| 647 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
| 3822 | 648 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3197 | 649 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 650 | |
| 651 info->entry = gtk_entry_new(); | |
| 652 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 3802 | 653 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); |
| 654 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4614 | 655 |
| 656 g_signal_connect(G_OBJECT(info->entry), "changed", | |
| 7751 | 657 G_CALLBACK(gaim_gtk_set_sensitive_if_input), window); |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
658 |
|
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
659 if (gaim_connections_get_all()->next) { |
| 3197 | 660 |
| 3802 | 661 label = gtk_label_new(NULL); |
| 3197 | 662 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
| 3802 | 663 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); |
| 664 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1225 | 665 |
|
5880
1b85ff65be57
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
666 info->account = gaim_gtk_account_option_menu_new(NULL, FALSE, |
|
6646
b89d98f0bf79
[gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents:
6640
diff
changeset
|
667 G_CALLBACK(show_info_select_account), NULL, info); |
|
5880
1b85ff65be57
[gaim-migrate @ 6312]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
668 |
| 3197 | 669 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); |
| 3802 | 670 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
671 } |
| 3197 | 672 |
| 3802 | 673 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info); |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
674 |
| 3802 | 675 gtk_widget_show_all(window); |
| 7757 | 676 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
677 } |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
678 |
| 1 | 679 |
|
6330
def96a62cd0d
[gaim-migrate @ 6829]
Christian Hammond <chipx86@chipx86.com>
parents:
6329
diff
changeset
|
680 static void |
|
7060
9946001989a3
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
681 free_dialog(GtkWidget *w, void *data) |
| 1 | 682 { |
|
7060
9946001989a3
[gaim-migrate @ 7623]
Christian Hammond <chipx86@chipx86.com>
parents:
7057
diff
changeset
|
683 g_free(data); |
| 5234 | 684 } |
| 685 | |
| 1 | 686 /*------------------------------------------------------*/ |
| 687 /* Link Dialog */ | |
| 688 /*------------------------------------------------------*/ | |
| 689 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
690 void cancel_link(GtkWidget *widget, GaimConversation *c) |
| 1 | 691 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
692 GaimGtkConversation *gtkconv; |
| 7055 | 693 GtkWidget *link_dialog; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
694 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
695 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
696 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
697 if (gtkconv->toolbar.link) { |
| 4635 | 698 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
699 FALSE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
700 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
701 |
| 7055 | 702 link_dialog = gtkconv->dialogs.link; |
| 4685 | 703 gtkconv->dialogs.link = NULL; |
| 7055 | 704 destroy_dialog(NULL, link_dialog); |
| 1 | 705 } |
| 706 | |
| 4262 | 707 void do_insert_link(GtkWidget *w, int resp, struct linkdlg *b) |
| 1 | 708 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
709 GaimGtkConversation *gtkconv; |
| 1 | 710 char *open_tag; |
| 3466 | 711 const char *urltext, *showtext; |
| 4262 | 712 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
713 gtkconv = GAIM_GTK_CONVERSATION(b->c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
714 |
| 4262 | 715 if (resp == GTK_RESPONSE_OK) { |
| 716 | |
| 717 open_tag = g_malloc(2048); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
718 |
| 4262 | 719 urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); |
| 720 showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); | |
| 721 | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
722 if (!strlen(showtext)) |
| 4262 | 723 showtext = urltext; |
| 724 | |
| 7707 | 725 gtk_imhtml_insert_link(GTK_IMHTML(gtkconv->entry), urltext, showtext); |
| 4262 | 726 |
| 727 g_free(open_tag); | |
| 728 } | |
| 729 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
730 if (gtkconv->toolbar.link) { |
| 4635 | 731 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
732 FALSE); |
| 4262 | 733 } |
| 734 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
735 gtkconv->dialogs.link = NULL; |
| 1 | 736 destroy_dialog(NULL, b->window); |
| 737 } | |
| 738 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
739 void show_insert_link(GtkWidget *linky, GaimConversation *c) |
| 1 | 740 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
741 GaimGtkConversation *gtkconv; |
|
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
742 GaimGtkWindow *gtkwin; |
| 4262 | 743 GtkWidget *table; |
| 744 GtkWidget *label; | |
| 745 GtkWidget *hbox; | |
| 1 | 746 GtkWidget *vbox; |
| 747 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
748 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
749 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
750 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
751 if (gtkconv->dialogs.link == NULL) { |
| 4262 | 752 struct linkdlg *a = g_new0(struct linkdlg, 1); |
| 5024 | 753 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 4262 | 754 |
| 755 a->c = c; | |
| 4703 | 756 a->window = gtk_dialog_new_with_buttons(_("Insert Link"), |
| 5092 | 757 GTK_WINDOW(gtkwin->window), 0, GTK_STOCK_CANCEL, |
| 7853 | 758 GTK_RESPONSE_CANCEL, _("_Insert"), GTK_RESPONSE_OK, NULL); |
| 7055 | 759 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); |
| 760 g_signal_connect(G_OBJECT(a->window), "response", | |
| 761 G_CALLBACK(do_insert_link), a); | |
| 4262 | 762 |
| 763 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 764 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 765 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 766 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 767 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
768 gtk_container_set_border_width( |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
769 GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); |
| 4262 | 770 gtk_window_set_role(GTK_WINDOW(a->window), "insert_link"); |
| 7853 | 771 gtk_dialog_set_response_sensitive(GTK_DIALOG(a->window), GTK_RESPONSE_OK, FALSE); |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
772 |
| 4262 | 773 hbox = gtk_hbox_new(FALSE, 12); |
| 774 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 775 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 776 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
777 |
| 4262 | 778 vbox = gtk_vbox_new(FALSE, 0); |
| 779 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
780 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
781 label = gtk_label_new(_("Please enter the URL and description of " |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
782 "the link that you want to insert. The " |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
783 "description is optional.\n")); |
| 4262 | 784 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 785 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 786 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
787 |
| 7853 | 788 table = gtk_table_new(2, 2, FALSE); |
| 789 gtk_table_set_row_spacings(GTK_TABLE(table), 6); | |
| 790 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 4262 | 791 gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
| 792 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
793 |
| 7853 | 794 label = gtk_label_new_with_mnemonic(_("_URL:")); |
| 4262 | 795 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 796 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
797 |
| 4262 | 798 a->url = gtk_entry_new(); |
| 799 gtk_table_attach_defaults(GTK_TABLE(table), a->url, 1, 2, 0, 1); | |
| 7853 | 800 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(a->url)); |
| 4262 | 801 gtk_widget_grab_focus(a->url); |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
802 |
| 4262 | 803 gtk_entry_set_activates_default (GTK_ENTRY(a->url), TRUE); |
| 7853 | 804 g_signal_connect(G_OBJECT(a->url), "changed", |
| 805 G_CALLBACK(gaim_gtk_set_sensitive_if_input), a->window); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
806 |
| 7853 | 807 label = gtk_label_new_with_mnemonic(_("_Description:")); |
| 4262 | 808 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 809 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
810 |
| 4262 | 811 a->text = gtk_entry_new(); |
| 812 gtk_table_attach_defaults(GTK_TABLE(table), a->text, 1, 2, 1, 2); | |
| 7853 | 813 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(a->text)); |
| 4262 | 814 gtk_entry_set_activates_default (GTK_ENTRY(a->text), TRUE); |
| 815 | |
| 7055 | 816 g_signal_connect(G_OBJECT(a->window), "destroy", |
| 817 G_CALLBACK(free_dialog), a); | |
| 818 dialogwindows = g_list_prepend(dialogwindows, a->window); | |
| 4262 | 819 |
| 820 a->toggle = linky; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
821 gtkconv->dialogs.link = a->window; |
| 1 | 822 } |
| 823 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
824 gtk_widget_show_all(gtkconv->dialogs.link); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
825 gdk_window_raise(gtkconv->dialogs.link->window); |
| 1 | 826 } |
| 827 | |
| 828 /*------------------------------------------------------*/ | |
| 829 /* Color Selection Dialog */ | |
| 830 /*------------------------------------------------------*/ | |
| 831 | |
| 3367 | 832 GtkWidget *fgcseld = NULL; |
| 833 GtkWidget *bgcseld = NULL; | |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
834 |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
835 void cancel_fgcolor(GtkWidget *widget, GaimConversation *c) |
| 1 | 836 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
837 GaimGtkConversation *gtkconv; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
838 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
839 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
840 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
841 if (gtkconv->toolbar.fgcolor && widget) { |
| 4635 | 842 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
843 FALSE); |
| 61 | 844 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
845 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
846 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
847 gtk_widget_destroy(gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
848 gtkconv->dialogs.fg_color = NULL; |
| 1 | 849 } |
| 850 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
851 void cancel_bgcolor(GtkWidget *widget, GaimConversation *c) |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
852 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
853 GaimGtkConversation *gtkconv; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
854 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
855 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
856 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
857 if (gtkconv->toolbar.bgcolor && widget) { |
| 4635 | 858 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
859 FALSE); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
860 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
861 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
862 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
863 gtk_widget_destroy(gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
864 gtkconv->dialogs.bg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
865 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
866 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
867 void do_fgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
| 1 | 868 { |
| 869 GdkColor text_color; | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
870 GaimConversation *c; |
|
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
871 GaimGtkConversation *gtkconv; |
| 1 | 872 char *open_tag; |
| 873 | |
| 874 open_tag = g_malloc(30); | |
| 875 | |
| 3557 | 876 gtk_color_selection_get_current_color(colorsel, &text_color); |
| 1 | 877 |
| 4635 | 878 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
411
a330017b3aa4
[gaim-migrate @ 421]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
401
diff
changeset
|
879 /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
880 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
881 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
882 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
883 gtkconv->fg_color = text_color; |
| 7714 | 884 g_snprintf(open_tag, 23, "#%02X%02X%02X", |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
885 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
886 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
887 text_color.blue / 256); |
| 7714 | 888 gtk_imhtml_toggle_forecolor(GTK_IMHTML(gtkconv->entry), open_tag); |
|
5213
1cf4eb75e3ee
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
889 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
890 g_free(open_tag); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
891 cancel_fgcolor(NULL, c); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
892 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
893 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
894 void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
895 { |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
896 GdkColor text_color; |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
897 GaimConversation *c; |
|
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
898 GaimGtkConversation *gtkconv; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
899 char *open_tag; |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
900 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
901 open_tag = g_malloc(30); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
902 |
| 3557 | 903 gtk_color_selection_get_current_color(colorsel, &text_color); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
904 |
| 4635 | 905 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
906 /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
907 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
908 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
909 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
910 gtkconv->bg_color = text_color; |
| 7714 | 911 g_snprintf(open_tag, 25, "#%02X%02X%02X", |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
912 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
913 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
914 text_color.blue / 256); |
| 7714 | 915 gtk_imhtml_toggle_backcolor(GTK_IMHTML(gtkconv->entry), open_tag); |
| 916 | |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
917 g_free(open_tag); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
918 cancel_bgcolor(NULL, c); |
| 1 | 919 } |
| 920 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
921 void show_fgcolor_dialog(GaimConversation *c, GtkWidget *color) |
| 1 | 922 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
923 GaimGtkConversation *gtkconv; |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
924 GtkWidget *colorsel; |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
925 GdkColor fgcolor; |
| 1 | 926 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
927 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
928 |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
929 gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
930 &fgcolor); |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
931 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
932 if (color == NULL) { /* we came from the prefs */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
933 if (fgcseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
934 return; |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
935 |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
936 fgcseld = gtk_color_selection_dialog_new(_("Select Text Color")); |
| 4198 | 937 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
| 938 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), &fgcolor); | |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
939 g_signal_connect(G_OBJECT(fgcseld), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
940 G_CALLBACK(destroy_colorsel), (void *)1); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
941 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
942 "clicked", G_CALLBACK(destroy_colorsel), (void *)1); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
943 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
944 G_CALLBACK(apply_color_dlg), (void *)1); |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
945 gtk_widget_realize(fgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
946 gtk_widget_show(fgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
947 gdk_window_raise(fgcseld->window); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
948 return; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
949 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
950 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
951 if (!gtkconv->dialogs.fg_color) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
952 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
953 gtkconv->dialogs.fg_color = gtk_color_selection_dialog_new(_("Select Text Color")); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
954 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel; |
| 4198 | 955 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); |
| 4635 | 956 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
957 |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
958 g_signal_connect(G_OBJECT(gtkconv->dialogs.fg_color), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
959 G_CALLBACK(delete_event_dialog), c); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
960 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->ok_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
961 "clicked", G_CALLBACK(do_fgcolor), colorsel); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
962 g_signal_connect(G_OBJECT |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
963 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
964 "clicked", G_CALLBACK(cancel_fgcolor), c); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
965 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
966 gtk_widget_realize(gtkconv->dialogs.fg_color); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
967 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
968 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
969 gtk_widget_show(gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
970 gdk_window_raise(gtkconv->dialogs.fg_color->window); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
971 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
972 |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
973 void show_bgcolor_dialog(GaimConversation *c, GtkWidget *color) |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
974 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
975 GaimGtkConversation *gtkconv; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
976 GtkWidget *colorsel; |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
977 GdkColor bgcolor; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
978 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
979 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
980 |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
981 gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"), |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
982 &bgcolor); |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
983 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
984 if (color == NULL) { /* we came from the prefs */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
985 if (bgcseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
986 return; |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
987 |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
988 bgcseld = gtk_color_selection_dialog_new(_("Select Background Color")); |
| 4198 | 989 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
| 990 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), &bgcolor); | |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
991 g_signal_connect(G_OBJECT(bgcseld), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
992 G_CALLBACK(destroy_colorsel), NULL); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
993 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
994 "clicked", G_CALLBACK(destroy_colorsel), NULL); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
995 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
996 G_CALLBACK(apply_color_dlg), (void *)2); |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
997 gtk_widget_realize(bgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
998 gtk_widget_show(bgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
999 gdk_window_raise(bgcseld->window); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
1000 return; |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
1001 } |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
1002 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1003 if (!gtkconv->dialogs.bg_color) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1004 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1005 gtkconv->dialogs.bg_color = gtk_color_selection_dialog_new(_("Select Background Color")); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1006 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel; |
| 4198 | 1007 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); |
| 4635 | 1008 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
1009 |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1010 g_signal_connect(G_OBJECT(gtkconv->dialogs.bg_color), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1011 G_CALLBACK(delete_event_dialog), c); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1012 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->ok_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1013 "clicked", G_CALLBACK(do_bgcolor), colorsel); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1014 g_signal_connect(G_OBJECT |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1015 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1016 "clicked", G_CALLBACK(cancel_bgcolor), c); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
1017 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1018 gtk_widget_realize(gtkconv->dialogs.bg_color); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1019 } |
| 1 | 1020 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1021 gtk_widget_show(gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1022 gdk_window_raise(gtkconv->dialogs.bg_color->window); |
| 1 | 1023 } |
| 1024 | |
| 1025 /*------------------------------------------------------------------------*/ | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1026 /* Font Selection Dialog */ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1027 /*------------------------------------------------------------------------*/ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1028 |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1029 void cancel_font(GtkWidget *widget, GaimConversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1030 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1031 GaimGtkConversation *gtkconv; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1032 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1033 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1034 |
| 4685 | 1035 if (gtkconv->toolbar.font && widget) { |
| 4635 | 1036 gtk_toggle_button_set_active( |
| 4685 | 1037 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1038 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1039 |
| 5970 | 1040 if (gtkconv->dialogs.font) { |
| 1041 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font); | |
| 1042 gtk_widget_destroy(gtkconv->dialogs.font); | |
| 1043 gtkconv->dialogs.font = NULL; | |
| 1044 } | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1045 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1046 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1047 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1048 { |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1049 /* this could be expanded to include font size, weight, etc. |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1050 but for now only works with font face */ |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
657
diff
changeset
|
1051 char *fontname; |
| 7079 | 1052 char *space; |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1053 GaimConversation *c = g_object_get_data(G_OBJECT(fontsel), |
| 4635 | 1054 "gaim_conversation"); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1055 |
| 7079 | 1056 if(!c) |
| 1057 return; | |
| 1058 | |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1059 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1060 |
| 7079 | 1061 space = strrchr(fontname, ' '); |
| 1062 if(space && isdigit(*(space+1))) | |
| 1063 *space = '\0'; | |
| 1064 | |
| 1065 gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1066 |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1067 g_free(fontname); |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1068 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1069 cancel_font(NULL, c); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1070 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1071 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1072 void destroy_fontsel(GtkWidget *w, gpointer d) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1073 { |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1074 gtk_widget_destroy(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1075 fontseld = NULL; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1076 } |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1077 |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1078 void show_font_dialog(GaimConversation *c, GtkWidget *font) |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1079 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1080 GaimGtkConversation *gtkconv; |
| 3473 | 1081 char fonttif[128]; |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1082 const char *fontface; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1083 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1084 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1085 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1086 if (!font) { /* we came from the prefs dialog */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1087 if (fontseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1088 return; |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1089 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
1090 fontseld = gtk_font_selection_dialog_new(_("Select Font")); |
|
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1091 |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1092 fontface = gaim_prefs_get_string("/gaim/gtk/conversations/font_face"); |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1093 |
|
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
1094 if (fontface != NULL && *fontface != '\0') { |
| 3473 | 1095 g_snprintf(fonttif, sizeof(fonttif), "%s 12", fontface); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
1096 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 1097 fonttif); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
1098 } else { |
|
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
1099 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 1100 DEFAULT_FONT_FACE " 12"); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
1101 } |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1102 |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1103 g_signal_connect(G_OBJECT(fontseld), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1104 G_CALLBACK(destroy_fontsel), NULL); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1105 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1106 "clicked", G_CALLBACK(destroy_fontsel), NULL); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1107 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1108 G_CALLBACK(apply_font_dlg), fontseld); |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1109 gtk_widget_realize(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1110 gtk_widget_show(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1111 gdk_window_raise(fontseld->window); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1112 return; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1113 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1114 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1115 if (!gtkconv->dialogs.font) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1116 gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font")); |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1117 |
| 4635 | 1118 g_object_set_data(G_OBJECT(gtkconv->dialogs.font), "gaim_conversation", c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1119 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1120 if (gtkconv->fontface[0]) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1121 g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1122 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 1123 fonttif); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
1124 } else { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1125 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 1126 DEFAULT_FONT_FACE); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
1127 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1128 |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1129 g_signal_connect(G_OBJECT(gtkconv->dialogs.font), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1130 G_CALLBACK(delete_event_dialog), c); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1131 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->ok_button), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1132 "clicked", G_CALLBACK(apply_font), gtkconv->dialogs.font); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1133 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1134 "clicked", G_CALLBACK(cancel_font), c); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1135 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1136 gtk_widget_realize(gtkconv->dialogs.font); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1137 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1138 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1139 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1140 gtk_widget_show(gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1141 gdk_window_raise(gtkconv->dialogs.font->window); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1142 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1143 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1144 /*------------------------------------------------------------------------*/ |
| 1 | 1145 /* The dialog for new away messages */ |
| 1146 /*------------------------------------------------------------------------*/ | |
| 1147 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1148 static struct away_message *save_away_message(struct create_away *ca) |
| 717 | 1149 { |
| 1150 struct away_message *am; | |
| 1151 gchar *away_message; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1152 |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
1153 if (!ca->mess) |
|
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
1154 am = g_new0(struct away_message, 1); |
|
2851
6eb5bf5089f0
[gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
1155 else { |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
1156 am = ca->mess; |
|
2851
6eb5bf5089f0
[gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
1157 } |
| 1387 | 1158 |
|
6465
fb64cc87bc96
[gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents:
6431
diff
changeset
|
1159 |
| 717 | 1160 g_snprintf(am->name, sizeof(am->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 1161 away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 717 | 1162 |
| 1163 g_snprintf(am->message, sizeof(am->message), "%s", away_message); | |
| 1164 g_free(away_message); | |
| 1165 | |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
1166 if (!ca->mess) { |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1167 away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list); |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
1168 } |
|
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
1169 |
|
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
1170 do_away_menu(NULL); |
| 6065 | 1171 gaim_status_sync(); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1172 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1173 return am; |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1174 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1175 |
| 1387 | 1176 int check_away_mess(struct create_away *ca, int type) |
| 1177 { | |
| 4630 | 1178 char *msg; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1179 if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) { |
| 1387 | 1180 /* We shouldn't allow a blank title */ |
|
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1181 gaim_notify_error(NULL, NULL, |
|
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1182 _("You cannot save an away message with a " |
|
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1183 "blank title"), |
|
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1184 _("Please give the message a title, or choose " |
|
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1185 "\"Use\" to use without saving.")); |
| 1387 | 1186 return 0; |
| 1187 } | |
| 1188 | |
| 4630 | 1189 msg = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 1190 | |
| 1191 if (!msg && (type <= 1)) { | |
| 1387 | 1192 /* We shouldn't allow a blank message */ |
|
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1193 gaim_notify_error(NULL, NULL, |
|
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1194 _("You cannot create an empty away message"), NULL); |
| 1387 | 1195 return 0; |
| 1196 } | |
| 1197 | |
| 4630 | 1198 g_free(msg); |
| 1199 | |
| 1387 | 1200 return 1; |
| 1201 } | |
| 1202 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1203 void save_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1204 { |
| 1387 | 1205 if (!check_away_mess(ca, 1)) |
| 1206 return; | |
| 1207 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1208 save_away_message(ca); |
| 717 | 1209 destroy_dialog(NULL, ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1210 g_free(ca); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1211 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1212 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1213 void use_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1214 { |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1215 static struct away_message am; |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1216 gchar *away_message; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1217 |
| 1387 | 1218 if (!check_away_mess(ca, 0)) |
| 1219 return; | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1220 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1221 g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 1222 away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1223 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1224 g_snprintf(am.message, sizeof(am.message), "%s", away_message); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1225 g_free(away_message); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1226 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1227 do_away_message(NULL, &am); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1228 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1229 destroy_dialog(NULL, ca->window); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1230 g_free(ca); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1231 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1232 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1233 void su_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1234 { |
| 1387 | 1235 if (!check_away_mess(ca, 1)) |
| 1236 return; | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1237 do_away_message(NULL, save_away_message(ca)); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1238 destroy_dialog(NULL, ca->window); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1239 g_free(ca); |
| 717 | 1240 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1241 |
| 1 | 1242 void create_away_mess(GtkWidget *widget, void *dummy) |
| 1243 { | |
| 439 | 1244 GtkWidget *hbox; |
| 1 | 1245 GtkWidget *titlebox; |
| 1246 GtkWidget *tbox; | |
| 1247 GtkWidget *label; | |
| 439 | 1248 GtkWidget *frame; |
| 1249 GtkWidget *fbox; | |
| 441 | 1250 GtkWidget *button; |
| 1 | 1251 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1252 struct create_away *ca = g_new0(struct create_away, 1); |
| 1185 | 1253 |
| 1 | 1254 /* Set up window */ |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1255 GAIM_DIALOG(ca->window); |
| 4635 | 1256 gtk_widget_set_size_request(ca->window, -1, 250); |
| 1257 gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5); | |
| 4074 | 1258 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); |
| 4703 | 1259 gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message")); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1260 g_signal_connect(G_OBJECT(ca->window), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1261 G_CALLBACK(destroy_dialog), ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1262 gtk_widget_realize(ca->window); |
| 1185 | 1263 |
| 1264 tbox = gtk_vbox_new(FALSE, 5); | |
| 1265 gtk_container_add(GTK_CONTAINER(ca->window), tbox); | |
| 439 | 1266 |
| 1267 frame = gtk_frame_new(_("New away message")); | |
| 1185 | 1268 gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1269 |
| 1172 | 1270 fbox = gtk_vbox_new(FALSE, 5); |
|
1224
0bbe3aaa6a3e
[gaim-migrate @ 1234]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1216
diff
changeset
|
1271 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
| 1185 | 1272 gtk_container_add(GTK_CONTAINER(frame), fbox); |
| 1273 | |
| 1274 titlebox = gtk_hbox_new(FALSE, 5); | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1275 gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1276 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
1277 label = gtk_label_new(_("Away title: ")); |
| 1172 | 1278 gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0); |
| 1185 | 1279 |
| 1 | 1280 ca->entry = gtk_entry_new(); |
| 1172 | 1281 gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1282 gtk_widget_grab_focus(ca->entry); |
| 1 | 1283 |
| 4119 | 1284 frame = gtk_frame_new(NULL); |
| 1285 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 1286 gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0); | |
| 5024 | 1287 |
| 4119 | 1288 ca->text = gtk_text_view_new(); |
| 5105 | 1289 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD_CHAR); |
| 5024 | 1290 |
|
7538
357eb1c39b72
[gaim-migrate @ 8151]
Christian Hammond <chipx86@chipx86.com>
parents:
7431
diff
changeset
|
1291 if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) |
|
357eb1c39b72
[gaim-migrate @ 8151]
Christian Hammond <chipx86@chipx86.com>
parents:
7431
diff
changeset
|
1292 gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(ca->text)); |
| 7002 | 1293 |
| 4119 | 1294 gtk_container_add(GTK_CONTAINER(frame), ca->text); |
| 5024 | 1295 |
| 3374 | 1296 if (dummy) { |
| 1297 struct away_message *amt; | |
| 1298 GtkTreeIter iter; | |
| 1299 int pos = 0; | |
| 1300 GtkListStore *ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(dummy))); | |
| 1301 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dummy)); | |
| 1302 GValue val = { 0, }; | |
| 4119 | 1303 GtkTextIter start; |
| 1304 GtkTextBuffer *buffer; | |
| 3374 | 1305 |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
1306 if (! gtk_tree_selection_get_selected (sel, (GtkTreeModel**)&ls, &iter)) |
| 3374 | 1307 return; |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
1308 gtk_tree_model_get_value (GTK_TREE_MODEL(ls), &iter, 1, &val); |
| 3374 | 1309 amt = g_value_get_pointer (&val); |
| 1310 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name); | |
| 4119 | 1311 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ca->text)); |
| 1312 gtk_text_buffer_get_iter_at_offset(buffer, &start, pos); | |
| 1313 gtk_text_buffer_insert(buffer, &start, amt->message, strlen(amt->message)); | |
| 1314 | |
| 3374 | 1315 ca->mess = amt; |
| 1316 } | |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
1317 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1318 hbox = gtk_hbox_new(FALSE, 5); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1319 gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); |
| 5024 | 1320 |
| 1321 button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); | |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1322 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca); |
| 4092 | 1323 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 1324 | |
| 5024 | 1325 button = gaim_pixbuf_button_from_stock(_("Save & Use"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1326 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(su_away_mess), ca); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1327 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1328 |
| 5024 | 1329 button = gaim_pixbuf_button_from_stock(_("Use"), GTK_STOCK_EXECUTE, GAIM_BUTTON_HORIZONTAL); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1330 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(use_away_mess), ca); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1331 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1332 |
| 5024 | 1333 button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
5314
1f901484599d
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1334 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
1335 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1336 |
| 5024 | 1337 gtk_widget_show_all(ca->window); |
| 1 | 1338 } |
| 555 | 1339 |
| 1340 /* smiley dialog */ | |
| 1341 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1342 void close_smiley_dialog(GtkWidget *widget, GaimConversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1343 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1344 GaimGtkConversation *gtkconv; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1345 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1346 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1347 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1348 if (gtkconv->toolbar.smiley) { |
| 4635 | 1349 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1350 FALSE); |
| 570 | 1351 } |
| 5275 | 1352 if(gtkconv->dialogs.smiley) { |
| 1353 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley); | |
| 1354 gtk_widget_destroy(gtkconv->dialogs.smiley); | |
| 1355 gtkconv->dialogs.smiley = NULL; | |
| 1356 } | |
| 555 | 1357 } |
| 1358 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1359 void insert_smiley_text(GtkWidget *widget, GaimConversation *c) |
| 555 | 1360 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1361 GaimGtkConversation *gtkconv; |
| 4667 | 1362 char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text"); |
| 7736 | 1363 GaimProtocol protocol = gaim_account_get_protocol(gaim_conversation_get_account(c)); |
| 1364 GaimPlugin *proto = gaim_find_prpl(protocol); | |
| 1365 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1366 gtkconv = GAIM_GTK_CONVERSATION(c); |
| 7735 | 1367 |
| 7736 | 1368 gtk_imhtml_insert_smiley(GTK_IMHTML(gtkconv->entry), proto->info->name, smiley_text); |
| 7735 | 1369 |
| 555 | 1370 close_smiley_dialog(NULL, c); |
| 1371 } | |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
1372 |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1373 static void add_smiley(GaimConversation *c, GtkWidget *table, int row, int col, char *filename, char *face) |
| 4034 | 1374 { |
|
4061
890b4f1318df
[gaim-migrate @ 4271]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4060
diff
changeset
|
1375 GtkWidget *image; |
| 4034 | 1376 GtkWidget *button; |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1377 GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(c); |
| 4667 | 1378 |
| 1379 image = gtk_image_new_from_file(filename); | |
| 1380 button = gtk_button_new(); | |
| 1381 gtk_container_add(GTK_CONTAINER(button), image); | |
| 1382 g_object_set_data(G_OBJECT(button), "smiley_text", face); | |
| 1383 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), c); | |
| 1384 | |
| 1385 gtk_tooltips_set_tip(gtkconv->tooltips, button, face, NULL); | |
| 1386 | |
| 1387 gtk_table_attach_defaults(GTK_TABLE(table), button, col, col+1, row, row+1); | |
| 4034 | 1388 |
| 1389 /* these look really weird with borders */ | |
| 1390 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4667 | 1391 |
| 1392 gtk_widget_show(button); | |
| 1393 } | |
| 1394 | |
| 1395 static gboolean smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) { | |
| 1396 while(list) { | |
| 1397 GtkIMHtmlSmiley *cur = list->data; | |
| 1398 if(!strcmp(cur->file, smiley->file)) | |
| 1399 return FALSE; | |
| 1400 list = list->next; | |
| 1401 } | |
| 1402 return TRUE; | |
| 4034 | 1403 } |
| 1404 | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1405 void show_smiley_dialog(GaimConversation *c, GtkWidget *widget) |
| 555 | 1406 { |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
1407 GaimGtkConversation *gtkconv; |
| 555 | 1408 GtkWidget *dialog; |
| 4667 | 1409 GtkWidget *smiley_table = NULL; |
| 1410 GSList *smileys, *unique_smileys = NULL; | |
| 1411 int width; | |
| 1412 int row = 0, col = 0; | |
| 555 | 1413 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1414 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1415 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1416 if (gtkconv->dialogs.smiley) |
|
558
f1b8f03db83f
[gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
555
diff
changeset
|
1417 return; |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
1418 |
| 4667 | 1419 if(c->account) |
|
5943
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5925
diff
changeset
|
1420 smileys = get_proto_smileys( |
|
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5925
diff
changeset
|
1421 gaim_account_get_protocol(gaim_conversation_get_account(c))); |
| 4667 | 1422 else |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1423 smileys = get_proto_smileys(GAIM_PROTO_DEFAULT); |
| 4667 | 1424 |
| 1425 while(smileys) { | |
| 1426 GtkIMHtmlSmiley *smiley = smileys->data; | |
| 1427 if(!smiley->hidden) { | |
| 1428 if(smiley_is_unique(unique_smileys, smiley)) | |
| 1429 unique_smileys = g_slist_append(unique_smileys, smiley); | |
| 1430 } | |
| 1431 smileys = smileys->next; | |
| 1432 } | |
| 1433 | |
| 1434 | |
| 1435 width = floor(sqrt(g_slist_length(unique_smileys))); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1436 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1437 GAIM_DIALOG(dialog); |
| 4635 | 1438 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); |
| 4074 | 1439 gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog"); |
| 934 | 1440 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
1441 |
| 4667 | 1442 smiley_table = gtk_table_new(width, width, TRUE); |
| 555 | 1443 |
| 1444 /* pack buttons */ | |
| 4667 | 1445 |
| 1446 while(unique_smileys) { | |
| 1447 GtkIMHtmlSmiley *smiley = unique_smileys->data; | |
| 1448 if(!smiley->hidden) { | |
| 1449 add_smiley(c, smiley_table, row, col, smiley->file, smiley->smile); | |
| 1450 if(++col >= width) { | |
| 1451 col = 0; | |
| 1452 row++; | |
| 1453 } | |
| 1454 } | |
| 1455 unique_smileys = unique_smileys->next; | |
| 1456 } | |
| 1457 | |
| 1458 gtk_container_add(GTK_CONTAINER(dialog), smiley_table); | |
| 1459 | |
| 1460 gtk_widget_show(smiley_table); | |
| 1461 | |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
1462 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); |
| 555 | 1463 |
| 605 | 1464 /* connect signals */ |
| 4635 | 1465 g_object_set_data(G_OBJECT(dialog), "dialog_type", "smiley dialog"); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1466 g_signal_connect(G_OBJECT(dialog), "delete_event", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1467 G_CALLBACK(delete_event_dialog), c); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1468 |
| 555 | 1469 /* show everything */ |
|
567
102afb84ce45
[gaim-migrate @ 577]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
558
diff
changeset
|
1470 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!")); |
| 584 | 1471 gtk_widget_show_all(dialog); |
| 555 | 1472 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1473 gtkconv->dialogs.smiley = dialog; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1474 |
| 555 | 1475 return; |
|
558
f1b8f03db83f
[gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
555
diff
changeset
|
1476 } |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
1477 |
|
6329
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1478 static void |
|
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7108
diff
changeset
|
1479 alias_chat_cb(GaimChat *chat, const char *new_alias) |
| 5234 | 1480 { |
|
6329
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1481 gaim_blist_alias_chat(chat, new_alias); |
|
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1482 gaim_blist_save(); |
| 5234 | 1483 } |
| 1484 | |
|
6329
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1485 void |
|
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7108
diff
changeset
|
1486 alias_dialog_blist_chat(GaimChat *chat) |
|
6329
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1487 { |
| 7843 | 1488 gaim_request_input(NULL, _("Alias Chat"), NULL, |
| 1489 _("Enter an alias for this chat."), | |
|
6329
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1490 chat->alias, FALSE, FALSE, |
|
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1491 _("OK"), G_CALLBACK(alias_chat_cb), |
|
418cc72136d1
[gaim-migrate @ 6828]
Christian Hammond <chipx86@chipx86.com>
parents:
6328
diff
changeset
|
1492 _("Cancel"), NULL, chat); |
| 5234 | 1493 } |
| 1494 | |
|
6327
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1495 static void |
| 7245 | 1496 alias_contact_cb(GaimContact *contact, const char *new_alias) |
| 1497 { | |
| 1498 gaim_contact_set_alias(contact, new_alias); | |
| 1499 gaim_blist_save(); | |
| 1500 } | |
| 1501 | |
| 1502 void | |
| 1503 alias_dialog_contact(GaimContact *contact) | |
| 1504 { | |
| 7843 | 1505 gaim_request_input(NULL, _("Alias Contact"), NULL, |
| 1506 _("Enter an alias for this contact."), | |
| 1507 contact->alias, FALSE, FALSE, | |
| 1508 _("OK"), G_CALLBACK(alias_contact_cb), | |
| 1509 _("Cancel"), NULL, contact); | |
| 7245 | 1510 } |
| 1511 | |
| 1512 static void | |
| 7843 | 1513 alias_buddy_cb(GaimBuddy *buddy, const char *alias) |
|
6327
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1514 { |
| 7843 | 1515 gaim_blist_alias_buddy(buddy, (alias != NULL && *alias != '\0') ? alias : NULL); |
|
6327
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1516 serv_alias_buddy(buddy); |
|
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1517 gaim_blist_save(); |
|
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1518 } |
|
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1519 |
|
5050
dfec167391a5
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
1520 void |
| 6695 | 1521 alias_dialog_bud(GaimBuddy *b) |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
1522 { |
| 7843 | 1523 char *secondary = g_strdup_printf(_("Enter an alias for %s."), b->name); |
|
6327
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1524 |
| 7843 | 1525 gaim_request_input(NULL, _("Alias Buddy"), NULL, |
| 1526 secondary, b->alias, FALSE, FALSE, | |
| 1527 _("OK"), G_CALLBACK(alias_buddy_cb), | |
| 1528 _("Cancel"), NULL, b); | |
|
6327
493eed80869c
[gaim-migrate @ 6826]
Christian Hammond <chipx86@chipx86.com>
parents:
6322
diff
changeset
|
1529 |
| 7843 | 1530 g_free(secondary); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
1531 } |
