annotate src/dialogs.c @ 8243:217643616a74

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