annotate src/dialogs.c @ 5275:8bd4f777489f

[gaim-migrate @ 5647] inserting a smiley now replaces any hilighted text, like you'd think it would. also gets rid of a gtk warning when adding a smiley committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Thu, 01 May 2003 17:47:32 +0000
parents 4ac135a2f422
children d579d5367836
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 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * 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
8 * the Free Software Foundation; either version 2 of the License, or
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
349
b402a23f35df [gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 338
diff changeset
22 #ifdef HAVE_CONFIG_H
2090
b66aca8e8dce [gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2086
diff changeset
23 #include <config.h>
349
b402a23f35df [gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 338
diff changeset
24 #endif
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #include <string.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #include <stdio.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include <stdlib.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <sys/types.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <sys/stat.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30 #include <fcntl.h>
967
17ff662183b2 [gaim-migrate @ 977]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 960
diff changeset
31 #include <ctype.h>
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
32
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
33 #ifdef _WIN32
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
34 #include <winsock.h>
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
35 #else
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36 #include <sys/socket.h>
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
37 #include <time.h>
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
38 #include <netdb.h>
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
39 #include <netinet/in.h>
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
40 #include <unistd.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41 #include <arpa/inet.h>
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
42 #endif
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
43
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
44 #include <errno.h>
3048
e729c064bc1b [gaim-migrate @ 3061]
Sean Egan <seanegan@gmail.com>
parents: 3043
diff changeset
45 #include <math.h>
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
46
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
47 #include <gtk/gtk.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
48 #include "gaim.h"
1428
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
49 #include "gtkimhtml.h"
1270
babea41afa7e [gaim-migrate @ 1280]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1267
diff changeset
50 #include "prpl.h"
5228
1a53330dfd34 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents: 5213
diff changeset
51 #include "gtkblist.h"
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
52
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
53 #ifdef _WIN32
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
54 #include "win32dep.h"
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
55 #endif
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
56
1035
80a47e3b1bca [gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1032
diff changeset
57 #define PATHSIZE 1024
80a47e3b1bca [gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1032
diff changeset
58
728
a509d6fad0de [gaim-migrate @ 738]
Todd Kulesza <fflewddur>
parents: 717
diff changeset
59 GdkColor bgcolor;
a509d6fad0de [gaim-migrate @ 738]
Todd Kulesza <fflewddur>
parents: 717
diff changeset
60 GdkColor fgcolor;
230
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
61
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
62 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
63 static GList *dialogwindows = NULL;
2493
1b7a1133962d [gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2472
diff changeset
64 static GtkWidget *importdialog;
1b7a1133962d [gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2472
diff changeset
65 static struct gaim_connection *importgc;
2344
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
66 static GtkWidget *icondlg;
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
67 static GtkWidget *alias_dialog = NULL;
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
68 static GtkWidget *rename_dialog = NULL;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
69 static GtkWidget *rename_bud_dialog = NULL;
230
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
70
3649
f09193608fd3 [gaim-migrate @ 3773]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
71
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
72 struct confirm_del {
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
73 GtkWidget *window;
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
74 GtkWidget *label;
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
75 GtkWidget *ok;
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
76 GtkWidget *cancel;
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
77 char name[1024];
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
78 struct gaim_connection *gc;
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
79 };
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
80
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
81 struct create_away {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
82 GtkWidget *window;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
83 GtkWidget *entry;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
84 GtkWidget *text;
832
0142b4c66394 [gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 825
diff changeset
85 struct away_message *mess;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
86 };
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 struct warning {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
89 GtkWidget *window;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
90 GtkWidget *anon;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
91 char *who;
976
2586b2a3725e [gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 967
diff changeset
92 struct gaim_connection *gc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
93 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
94
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
95 struct addbuddy {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
96 GtkWidget *window;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
97 GtkWidget *combo;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
98 GtkWidget *entry;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
99 GtkWidget *entry_for_alias;
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
100 GtkWidget *account;
1072
81d19577285a [gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1057
diff changeset
101 struct gaim_connection *gc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
102 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
103
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
104 struct addperm {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
105 GtkWidget *window;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
106 GtkWidget *entry;
1072
81d19577285a [gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1057
diff changeset
107 struct gaim_connection *gc;
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
108 gboolean permit;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
109 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
110
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
111 struct findbyemail {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
112 GtkWidget *window;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
113 GtkWidget *emailentry;
1535
1e2cc8c8bf3c [gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
114 struct gaim_connection *gc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
115 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
116
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
117 struct findbyinfo {
2393
a7ecfd3f7714 [gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2382
diff changeset
118 struct gaim_connection *gc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
119 GtkWidget *window;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
120 GtkWidget *firstentry;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
121 GtkWidget *middleentry;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
122 GtkWidget *lastentry;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
123 GtkWidget *maidenentry;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
124 GtkWidget *cityentry;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
125 GtkWidget *stateentry;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
126 GtkWidget *countryentry;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
127 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
128
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
129 struct info_dlg {
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
130 struct gaim_connection *gc;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
131 char *who;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
132 GtkWidget *window;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
133 GtkWidget *text;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
134 };
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
135
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
136 struct getuserinfo {
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
137 GtkWidget *window;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
138 GtkWidget *entry;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
139 GtkWidget *account;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
140 struct gaim_connection *gc;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
141 };
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
142
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
143 struct alias_dialog_info
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
144 {
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
145 GtkWidget *window;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
146 GtkWidget *name_entry;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
147 GtkWidget *alias_entry;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
148 struct buddy *buddy;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
149 };
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
150
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
151 static GSList *info_dlgs = NULL;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
152
5136
381da05cb5ed [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5105
diff changeset
153 static struct info_dlg *find_info_dlg(struct gaim_connection *gc, const char *who)
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
154 {
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
155 GSList *i = info_dlgs;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
156 while (i) {
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
157 struct info_dlg *d = i->data;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
158 i = i->next;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
159 if (d->gc != gc)
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
160 continue;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
161 if (d->who == NULL)
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
162 continue;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
163 if (!who)
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
164 continue;
4793
677d3cb193a1 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4787
diff changeset
165 if (!gaim_utf8_strcasecmp(normalize(who), d->who))
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
166 return d;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
167 }
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
168 return NULL;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
169 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
170
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
171 struct set_info_dlg {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
172 GtkWidget *window;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
173 GtkWidget *menu;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
174 struct gaim_account *account;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
175 GtkWidget *text;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
176 GtkWidget *save;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
177 GtkWidget *cancel;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
178 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
179
2344
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
180 struct set_icon_dlg {
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
181 GtkWidget *window;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
182 struct gaim_account *account;
2344
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
183 GtkWidget *ok;
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
184 GtkWidget *cancel;
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
185 GtkWidget *entry;
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
186 };
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
187
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
188 struct set_dir_dlg {
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
189 struct gaim_connection *gc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
190 GtkWidget *window;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
191 GtkWidget *first;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
192 GtkWidget *middle;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
193 GtkWidget *last;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
194 GtkWidget *maiden;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
195 GtkWidget *city;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
196 GtkWidget *state;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
197 GtkWidget *country;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
198 GtkWidget *web;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
199 GtkWidget *cancel;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
200 GtkWidget *save;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
201 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
202
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
203 struct linkdlg {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
204 GtkWidget *ok;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
205 GtkWidget *cancel;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
206 GtkWidget *window;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
207 GtkWidget *url;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
208 GtkWidget *text;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
209 GtkWidget *toggle;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
210 GtkWidget *entry;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
211 struct gaim_conversation *c;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
212 };
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
213
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
214 struct passwddlg {
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
215 GtkWidget *window;
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
216 GtkWidget *ok;
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
217 GtkWidget *cancel;
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
218 GtkWidget *original;
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
219 GtkWidget *new1;
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
220 GtkWidget *new2;
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
221 struct gaim_connection *gc;
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
222 };
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
223
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
224 struct view_log {
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
225 long offset;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
226 int options;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
227 char *name;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
228 GtkWidget *bbox;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
229 GtkWidget *window;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
230 GtkWidget *layout;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
231 };
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
232
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
233 /* Wrapper to get all the text from a GtkTextView */
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
234 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
235 {
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
236 GtkTextBuffer *buffer;
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
237 GtkTextIter start, end;
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
238
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
239 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
240 gtk_text_buffer_get_start_iter(buffer, &start);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
241 gtk_text_buffer_get_end_iter(buffer, &end);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
242
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
243 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
244 }
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
245
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
246 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
247 /* Destroys */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
248 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
249
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
250 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct gaim_conversation *c)
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
251 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
252 struct gaim_gtk_conversation *gtkconv;
605
1dbc72baf900 [gaim-migrate @ 615]
Todd Kulesza <fflewddur>
parents: 603
diff changeset
253 gchar *object_data;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
254
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
255 object_data = g_object_get_data(G_OBJECT(w), "dialog_type");
605
1dbc72baf900 [gaim-migrate @ 615]
Todd Kulesza <fflewddur>
parents: 603
diff changeset
256
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
257 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
258
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
259 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
260 if (w == gtkconv->dialogs.fg_color) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
261 gtk_toggle_button_set_active(
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
262 GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
263 gtkconv->dialogs.fg_color = NULL;
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
264 } else {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
265 gtk_toggle_button_set_active(
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
266 GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
267 gtkconv->dialogs.bg_color = NULL;
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
268 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
269 } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
270 gtk_toggle_button_set_active(
4685
794cc8ec1166 [gaim-migrate @ 4996]
Nathan Walp <nwalp@pidgin.im>
parents: 4667
diff changeset
271 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
272 gtkconv->dialogs.font = NULL;
4793
677d3cb193a1 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4787
diff changeset
273 } else if (!g_ascii_strcasecmp(object_data, "smiley dialog")) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
274 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
275 FALSE);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
276 gtkconv->dialogs.smiley = NULL;
4793
677d3cb193a1 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4787
diff changeset
277 } else if (!g_ascii_strcasecmp(object_data, "log dialog")) {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
278 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
279 FALSE);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
280 gtkconv->dialogs.log = NULL;
608
e33dfed611c9 [gaim-migrate @ 618]
Todd Kulesza <fflewddur>
parents: 607
diff changeset
281 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
282
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
283 dialogwindows = g_list_remove(dialogwindows, w);
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
284 gtk_widget_destroy(w);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
285
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
286 return FALSE;
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
287 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
288
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
289 static void destroy_dialog(GtkWidget *w, GtkWidget *w2)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
290 {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
291 GtkWidget *dest;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
292
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
293 if (!GTK_IS_WIDGET(w2))
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
294 dest = w;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
295 else
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
296 dest = w2;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
297
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
298 if (dest == imdialog)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
299 imdialog = NULL;
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
300 else if (dest == importdialog) {
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
301 importdialog = NULL;
2493
1b7a1133962d [gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2472
diff changeset
302 importgc = NULL;
1b7a1133962d [gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2472
diff changeset
303 }
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
304 else if (dest == icondlg)
2344
19ea44f74a88 [gaim-migrate @ 2357]
Rob Flynn <gaim@robflynn.com>
parents: 2334
diff changeset
305 icondlg = NULL;
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
306 else if (dest == rename_dialog)
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
307 rename_dialog = NULL;
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
308 else if (dest == rename_bud_dialog)
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
309 rename_bud_dialog = NULL;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
310
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
311 dialogwindows = g_list_remove(dialogwindows, dest);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
312 gtk_widget_destroy(dest);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
313 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
314
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
315
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
316 void destroy_all_dialogs()
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
317 {
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
318 while (dialogwindows)
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
319 destroy_dialog(NULL, dialogwindows->data);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
320
391
be408b41c172 [gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 350
diff changeset
321 if (awaymessage)
be408b41c172 [gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 350
diff changeset
322 do_im_back(NULL, NULL);
84
51943f1a97a0 [gaim-migrate @ 94]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 79
diff changeset
323
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
324 if (imdialog) {
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
325 destroy_dialog(NULL, imdialog);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
326 imdialog = NULL;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
327 }
935
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
328
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
329 if (importdialog) {
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
330 destroy_dialog(NULL, importdialog);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
331 importdialog = NULL;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
332 }
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
333
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
334 if (icondlg) {
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
335 destroy_dialog(NULL, icondlg);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
336 icondlg = NULL;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
337 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
338 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
339
3757
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
340 static void do_warn(GtkWidget *widget, gint resp, struct warning *w)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
341 {
3757
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
342 if (resp == GTK_RESPONSE_OK)
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
343 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
344
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
345 destroy_dialog(NULL, w->window);
1288
d8eaf65ca9c3 [gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1272
diff changeset
346 g_free(w);
d8eaf65ca9c3 [gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1272
diff changeset
347 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
348
976
2586b2a3725e [gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 967
diff changeset
349 void show_warn_dialog(struct gaim_connection *gc, char *who)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
350 {
3757
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
351 char *labeltext;
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
352 GtkWidget *hbox, *vbox;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
353 GtkWidget *label;
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
354 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
355 struct gaim_conversation *c = gaim_find_conversation(who);
441
995b0fc981a3 [gaim-migrate @ 451]
Rob Flynn <gaim@robflynn.com>
parents: 440
diff changeset
356
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
357 struct warning *w = g_new0(struct warning, 1);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
358 w->who = who;
1288
d8eaf65ca9c3 [gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1272
diff changeset
359 w->gc = gc;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
360
3757
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
361 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
362
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
363 w->window = gtk_dialog_new_with_buttons(_("Warn User"), GTK_WINDOW(c->window), 0, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, _("_Warn"), GTK_RESPONSE_OK, NULL);
4118
02b415cbba3a [gaim-migrate @ 4335]
Luke Schierer <lschiere@pidgin.im>
parents: 4117
diff changeset
364 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
365 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
366
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
367 gtk_container_set_border_width (GTK_CONTAINER(w->window), 6);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
368 gtk_window_set_resizable(GTK_WINDOW(w->window), FALSE);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
369 gtk_dialog_set_has_separator(GTK_DIALOG(w->window), FALSE);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
370 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
371 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
372
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
373 hbox = gtk_hbox_new(FALSE, 12);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
374 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
375 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
376
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
377 vbox = gtk_vbox_new(FALSE, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
378 gtk_container_add(GTK_CONTAINER(hbox), vbox);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
379 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
380 "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
381 label = gtk_label_new(NULL);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
382 gtk_label_set_markup(GTK_LABEL(label), labeltext);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
383 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
384 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
385 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
386 g_free(labeltext);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
387
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
388 w->anon = gtk_check_button_new_with_mnemonic(_("Warn _anonymously?"));
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
389 gtk_box_pack_start(GTK_BOX(vbox), w->anon, FALSE, FALSE, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
390
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
391 hbox = gtk_hbox_new(FALSE, 6);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
392 gtk_container_add(GTK_CONTAINER(vbox), hbox);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
393 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
394 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
395 labeltext = _("<b>Anonymous warnings are less severe.</b>");
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
396 /* labeltext = _("Anonymous warnings are less severe."); */
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
397 label = gtk_label_new(NULL);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
398 gtk_label_set_markup(GTK_LABEL(label), labeltext);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
399 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
400 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
401
1288
d8eaf65ca9c3 [gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1272
diff changeset
402 dialogwindows = g_list_prepend(dialogwindows, w->window);
3757
262ce45f5ae8 [gaim-migrate @ 3896]
Sean Egan <seanegan@gmail.com>
parents: 3753
diff changeset
403 gtk_widget_show_all(w->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
404 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
405
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
406 void do_remove_chat(struct chat *chat)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
407 {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
408 gaim_blist_remove_chat(chat);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
409 gaim_blist_save();
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
410 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
411
3753
764ecb5f984b [gaim-migrate @ 3892]
Sean Egan <seanegan@gmail.com>
parents: 3749
diff changeset
412 void do_remove_buddy(struct buddy *b)
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
413 {
4918
553d96cb9b26 [gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents: 4916
diff changeset
414 struct group *g;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
415 struct gaim_conversation *c;
4918
553d96cb9b26 [gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents: 4916
diff changeset
416 gchar *name;
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
417
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
418 if (!b)
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
419 return;
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
420
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
421 g = gaim_find_buddys_group(b);
4918
553d96cb9b26 [gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents: 4916
diff changeset
422 name = g_strdup(b->name); /* b->name is null after remove_buddy */
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
423
5213
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
424 gaim_debug(GAIM_DEBUG_INFO, "blist",
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
425 "Removing '%s' from buddy list.\n", b->name);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
426 serv_remove_buddy(b->account->gc, name, g->name);
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
427 gaim_blist_remove_buddy(b);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
428 gaim_blist_save();
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
429
4397
ce3a0eba91ef [gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents: 4372
diff changeset
430 c = gaim_find_conversation(name);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
431
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
432 if (c != NULL)
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
433 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE);
4397
ce3a0eba91ef [gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents: 4372
diff changeset
434
ce3a0eba91ef [gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents: 4372
diff changeset
435 g_free(name);
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
436 }
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
437
4916
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
438 void do_remove_group(struct group *g)
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
439 {
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
440 GaimBlistNode *b = ((GaimBlistNode*)g)->child;
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
441 while (b) {
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
442 if(GAIM_BLIST_NODE_IS_BUDDY(b)) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
443 struct buddy *bd = (struct buddy *)b;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
444 struct gaim_conversation *c = gaim_find_conversation(bd->name);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
445 if(bd->account->gc) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
446 serv_remove_buddy(bd->account->gc, bd->name, g->name);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
447 gaim_blist_remove_buddy(bd);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
448
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
449 if (c != NULL)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
450 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
451 }
4938
461e8c89514f [gaim-migrate @ 5272]
Nathan Walp <nwalp@pidgin.im>
parents: 4936
diff changeset
452 }
4916
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
453 b = b->next;
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
454 }
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
455 gaim_blist_remove_group(g);
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
456 gaim_blist_save();
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
457 }
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
458
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
459 void show_confirm_del(struct gaim_connection *gc, gchar *name)
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
460 {
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
461 struct buddy *bd = gaim_find_buddy(gc->account, name);
3753
764ecb5f984b [gaim-migrate @ 3892]
Sean Egan <seanegan@gmail.com>
parents: 3749
diff changeset
462 char *text;
764ecb5f984b [gaim-migrate @ 3892]
Sean Egan <seanegan@gmail.com>
parents: 3749
diff changeset
463 if (!bd)
764ecb5f984b [gaim-migrate @ 3892]
Sean Egan <seanegan@gmail.com>
parents: 3749
diff changeset
464 return;
764ecb5f984b [gaim-migrate @ 3892]
Sean Egan <seanegan@gmail.com>
parents: 3749
diff changeset
465
4309
5978e3d53f29 [gaim-migrate @ 4563]
Luke Schierer <lschiere@pidgin.im>
parents: 4308
diff changeset
466 text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), name);
5978e3d53f29 [gaim-migrate @ 4563]
Luke Schierer <lschiere@pidgin.im>
parents: 4308
diff changeset
467 do_ask_dialog(_("Remove Buddy"), text, bd, _("Remove Buddy"), do_remove_buddy, _("Cancel"), NULL, NULL, FALSE);
3753
764ecb5f984b [gaim-migrate @ 3892]
Sean Egan <seanegan@gmail.com>
parents: 3749
diff changeset
468 g_free(text);
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
469 }
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
470
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
471 void show_confirm_del_chat(struct chat *chat)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
472 {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
473 char *text = g_strdup_printf(_("You are about to remove the chat %s from your buddy list. Do you want to continue?"), chat->alias);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
474 do_ask_dialog(_("Remove Chat"), text, chat, _("Remove Chat"), do_remove_chat, _("Cancel"), NULL, NULL, FALSE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
475 g_free(text);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
476 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
477
4916
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
478 void show_confirm_del_group(struct group *g)
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
479 {
4924
cd6415033718 [gaim-migrate @ 5258]
Mark Doliner <mark@kingant.net>
parents: 4923
diff changeset
480 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
481 g->name);
4924
cd6415033718 [gaim-migrate @ 5258]
Mark Doliner <mark@kingant.net>
parents: 4923
diff changeset
482 do_ask_dialog(_("Remove Group"), text, g, _("Remove Group"), do_remove_group, _("Cancel"), NULL, NULL, FALSE);
4916
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
483 g_free(text);
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
484 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
485
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
486 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
487 /* The dialog for getting an error */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
488 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
489
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
490 GtkWidget *do_error_dialog(const char *primary, const char *secondary, int type)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
491 {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
492 GtkWidget *d;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
493 GtkWidget *label;
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
494 GtkWidget *img = NULL;
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
495 GtkWidget *hbox;
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
496 char labeltext[1024 * 2];
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
497 const char *name = NULL;
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
498
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
499 /* These are the GTK stock dialog icons with our little Gaim logo on top.
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
500 * Inspired by the GIMP. */
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
501 switch (type){
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
502 case GAIM_LOGO:
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
503 name = GAIM_STOCK_ICON_ONLINE;
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
504 break;
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
505 case GAIM_INFO:
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
506 name = GAIM_STOCK_DIALOG_INFO;
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
507 break;
3516
db00eb77997d [gaim-migrate @ 3589]
Rob Flynn <gaim@robflynn.com>
parents: 3508
diff changeset
508 case GAIM_WARNING:
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
509 name = GAIM_STOCK_DIALOG_WARNING;
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
510 break;
3516
db00eb77997d [gaim-migrate @ 3589]
Rob Flynn <gaim@robflynn.com>
parents: 3508
diff changeset
511 case GAIM_ERROR:
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
512 name = GAIM_STOCK_DIALOG_ERROR;
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
513 break;
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
514 }
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
515
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
516 if (name) {
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
517 img = gtk_image_new_from_stock(name, GTK_ICON_SIZE_DIALOG);
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
518 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
519 }
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
520
4778
85c6c3a60503 [gaim-migrate @ 5098]
Mark Doliner <mark@kingant.net>
parents: 4775
diff changeset
521 d = gtk_dialog_new_with_buttons("", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
522 g_signal_connect(d, "response", G_CALLBACK(gtk_widget_destroy), NULL);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
523
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
524 gtk_container_set_border_width (GTK_CONTAINER(d), 6);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
525 gtk_window_set_resizable(GTK_WINDOW(d), FALSE);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
526 gtk_dialog_set_has_separator(GTK_DIALOG(d), FALSE);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
527 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(d)->vbox), 12);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
528 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(d)->vbox), 6);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
529
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
530 hbox = gtk_hbox_new(FALSE, 12);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
531 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(d)->vbox), hbox);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
532 if (img) {
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
533 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
534 }
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
535
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
536 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", primary, secondary ? secondary : "");
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
537
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
538 label = gtk_label_new(NULL);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
539 gtk_label_set_markup(GTK_LABEL(label), labeltext);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
540 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
541 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
542 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
543
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
544 gtk_widget_show_all(d);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
545
1817
b367beee6448 [gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1815
diff changeset
546 return d;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
547 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
548
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
549 static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
550 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
551 const char *who;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
552 struct gaim_conversation *conv;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
553 struct gaim_account *account;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
554
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
555 if (resp == GTK_RESPONSE_OK) {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
556 who = gtk_entry_get_text(GTK_ENTRY(info->entry));
4476
62c1e5e656d0 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4472
diff changeset
557
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
558 if (!who || !*who) {
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
559 /* this shouldn't ever happen */
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
560 return;
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
561 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
562
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
563 account = (info->gc ? info->gc->account : NULL);
4476
62c1e5e656d0 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4472
diff changeset
564
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
565 conv = gaim_find_conversation(who);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
566
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
567 if (conv == NULL)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
568 conv = gaim_conversation_new(GAIM_CONV_IM, account, who);
4476
62c1e5e656d0 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4472
diff changeset
569 else {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
570 gaim_window_raise(gaim_conversation_get_window(conv));
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
571
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
572 if (account)
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
573 gaim_conversation_set_account(conv, account);
4476
62c1e5e656d0 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4472
diff changeset
574 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
575 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
576
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
577 destroy_dialog(NULL, imdialog);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
578 imdialog = NULL;
4138
6b2d0ce7fb18 [gaim-migrate @ 4356]
Luke Schierer <lschiere@pidgin.im>
parents: 4129
diff changeset
579 g_free(info);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
580 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
581
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
582 static void do_info(GtkWidget *widget, int resp, struct getuserinfo *info)
935
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
583 {
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
584 char *who;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
585
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
586 if (resp == GTK_RESPONSE_OK) {
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
587 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(info->entry))));
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
588
4793
677d3cb193a1 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4787
diff changeset
589 if (!g_ascii_strcasecmp(who, "")) {
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
590 g_free(who);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
591 return;
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
592 }
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
593
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
594 /* what do we want to do about this case? */
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
595 if (info->gc)
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
596 serv_get_info(info->gc, who);
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
597 g_free(who);
935
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
598 }
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
599 gtk_widget_destroy(GTK_WIDGET(widget));
4138
6b2d0ce7fb18 [gaim-migrate @ 4356]
Luke Schierer <lschiere@pidgin.im>
parents: 4129
diff changeset
600 g_free(info);
935
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
601 }
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
602
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
603 void show_ee_dialog(int ee)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
604 {
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
605 GtkWidget *window;
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
606 GtkWidget *hbox;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
607 GtkWidget *label;
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
608 struct gaim_gtk_buddy_list *gtkblist;
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
609 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_COOL, GTK_ICON_SIZE_DIALOG);
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
610
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
611 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
612
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
613 label = gtk_label_new(NULL);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
614 if (ee == 0)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
615 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
616 "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>");
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
617 else if (ee == 1)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
618 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
619 "<span weight=\"bold\" size=\"large\" foreground=\"#1f6bad\">Pimpin\' Penguin Style! *Waddle Waddle*</span>");
338
9d258a0aa560 [gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 337
diff changeset
620 else if (ee == 2)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
621 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
622 "<span weight=\"bold\" size=\"large\" foreground=\"blue\">You should be me. I'm so cute!</span>");
2472
dd4114ed4c07 [gaim-migrate @ 2485]
Rob Flynn <gaim@robflynn.com>
parents: 2411
diff changeset
623 else if (ee == 3)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
624 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
625 "<span weight=\"bold\" size=\"large\" foreground=\"orange\">Now that's what I like!</span>");
2993
7239a392486c [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2986
diff changeset
626 else if (ee == 4)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
627 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
628 "<span weight=\"bold\" size=\"large\" foreground=\"brown\">Ahh, and excellent choice!</span>");
3043
5a459387755a [gaim-migrate @ 3056]
Rob Flynn <gaim@robflynn.com>
parents: 3041
diff changeset
629 else if (ee == 5)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
630 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
631 "<span weight=\"bold\" size=\"large\" foreground=\"#009900\">Everytime you click my name, an angel gets its wings.</span>");
3152
0697a3ad9f3b [gaim-migrate @ 3168]
Rob Flynn <gaim@robflynn.com>
parents: 3136
diff changeset
632 else if (ee == 6)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
633 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
634 "<span weight=\"bold\" size=\"large\" foreground=\"red\">This sunflower seed taste like pizza.</span>");
3508
b8783a46e476 [gaim-migrate @ 3574]
Rob Flynn <gaim@robflynn.com>
parents: 3490
diff changeset
635 else if (ee == 7)
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
636 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
637 "<span weight=\"bold\" size=\"large\" foreground=\"#6364B1\">Hey! I was in that tumbleweed!</span>");
3508
b8783a46e476 [gaim-migrate @ 3574]
Rob Flynn <gaim@robflynn.com>
parents: 3490
diff changeset
638 else
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
639 gtk_label_set_markup(GTK_LABEL(label),
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
640 "<span weight=\"bold\" size=\"large\" foreground=\"gray\">I'm not anything.</span>");
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
641
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
642 window = gtk_dialog_new_with_buttons("", 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
643 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
644 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(gtk_widget_destroy), NULL);
3152
0697a3ad9f3b [gaim-migrate @ 3168]
Rob Flynn <gaim@robflynn.com>
parents: 3136
diff changeset
645
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
646 gtk_container_set_border_width (GTK_CONTAINER(window), 6);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
647 gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
648 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
649 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
650 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
651
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
652 hbox = gtk_hbox_new(FALSE, 12);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
653 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
654 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
655
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
656 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
657 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
658 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
659
3767
65e9ea5934c8 [gaim-migrate @ 3906]
Sean Egan <seanegan@gmail.com>
parents: 3757
diff changeset
660 gtk_widget_show_all(window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
661 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
662
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
663 void show_info_select_account(GObject *w, struct gaim_connection *gc)
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
664 {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
665 struct getuserinfo *info = g_object_get_data(w, "getuserinfo");
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
666 info->gc = gc;
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
667 }
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
668
4614
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
669 static void dialog_set_ok_sensitive(GtkWidget *entry, GtkWidget *dlg) {
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
670 const char *txt = gtk_entry_get_text(GTK_ENTRY(entry));
4614
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
671 gtk_dialog_set_response_sensitive(GTK_DIALOG(dlg), GTK_RESPONSE_OK,
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
672 (*txt != '\0'));
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
673 }
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
674
935
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
675 void show_im_dialog()
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
676 {
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
677 GtkWidget *hbox, *vbox;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
678 GtkWidget *label;
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
679 GtkWidget *table, *menu, *opt;
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
680 GSList *g = connections;
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
681 struct gaim_connection *c;
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
682 struct gaim_gtk_buddy_list *gtkblist;
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
683 char buf[256];
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
684 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
685 struct getuserinfo *info = NULL;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
686
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
687 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
688
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
689 if (!imdialog) {
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
690 info = g_new0(struct getuserinfo, 1);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
691 info->gc = connections->data;
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
692 imdialog = gtk_dialog_new_with_buttons(_("New Message"), gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, 0,
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
693 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
694 gtk_dialog_set_default_response (GTK_DIALOG(imdialog), GTK_RESPONSE_OK);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
695 gtk_container_set_border_width (GTK_CONTAINER(imdialog), 6);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
696 gtk_window_set_resizable(GTK_WINDOW(imdialog), FALSE);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
697 gtk_dialog_set_has_separator(GTK_DIALOG(imdialog), FALSE);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
698 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(imdialog)->vbox), 12);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
699 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), 6);
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
700 gtk_dialog_set_response_sensitive(GTK_DIALOG(imdialog), GTK_RESPONSE_OK, FALSE);
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
701
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
702 hbox = gtk_hbox_new(FALSE, 12);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
703 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), hbox);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
704 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
705 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
706
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
707 vbox = gtk_vbox_new(FALSE, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
708 gtk_container_add(GTK_CONTAINER(hbox), vbox);
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
709
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
710 label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n"));
3825
321ce65bbebc [gaim-migrate @ 3974]
Rob Flynn <gaim@robflynn.com>
parents: 3824
diff changeset
711 gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1);
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
712 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
713 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
714 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
715
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
716 hbox = gtk_hbox_new(FALSE, 6);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
717 gtk_container_add(GTK_CONTAINER(vbox), hbox);
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
718
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
719 table = gtk_table_new(2, 2, FALSE);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
720 gtk_table_set_row_spacings(GTK_TABLE(table), 6);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
721 gtk_table_set_col_spacings(GTK_TABLE(table), 6);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
722 gtk_container_set_border_width(GTK_CONTAINER(table), 12);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
723 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
724
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
725 label = gtk_label_new(NULL);
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
726 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:"));
3823
5dc82aec40ca [gaim-migrate @ 3972]
Rob Flynn <gaim@robflynn.com>
parents: 3822
diff changeset
727 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
728 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
729
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
730 info->entry = gtk_entry_new();
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
731 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
732 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
733 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry));
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
734 g_signal_connect(G_OBJECT(info->entry), "changed",
4614
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
735 G_CALLBACK(dialog_set_ok_sensitive), imdialog);
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
736
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
737 if (connections->next) {
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
738
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
739 label = gtk_label_new(NULL);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
740 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
741 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:"));
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
742 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
743
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
744 info->account = gtk_option_menu_new();
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
745 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
746 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account));
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
747
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
748 menu = gtk_menu_new();
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
749
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
750 while (g) {
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
751 c = (struct gaim_connection *)g->data;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
752
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
753 if (!GAIM_PLUGIN_PROTOCOL_INFO(c->prpl)->send_im) {
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
754 g = g->next;
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
755 continue;
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
756 }
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
757 g_snprintf(buf, sizeof(buf), "%s (%s)",
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
758 c->username, c->prpl->info->name);
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
759 opt = gtk_menu_item_new_with_label(buf);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
760 g_object_set_data(G_OBJECT(opt), "getuserinfo", info);
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
761
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
762 g_signal_connect(GTK_OBJECT(opt), "activate",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
763 G_CALLBACK(show_info_select_account), c);
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
764
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
765 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
766 g = g->next;
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
767 }
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
768
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
769 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu);
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
770 }
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
771
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
772 g_signal_connect(G_OBJECT(imdialog), "response", G_CALLBACK(do_im), info);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
773 }
4613
5385b3625a72 [gaim-migrate @ 4902]
Nathan Walp <nwalp@pidgin.im>
parents: 4609
diff changeset
774
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
775 gtk_widget_show_all(imdialog);
3816
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
776 if (info)
b983234cb3a3 [gaim-migrate @ 3963]
Sean Egan <seanegan@gmail.com>
parents: 3811
diff changeset
777 gtk_widget_grab_focus(GTK_WIDGET(info->entry));
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
778 }
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
779
935
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
780 void show_info_dialog()
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
781 {
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
782 GtkWidget *window, *hbox, *vbox;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
783 GtkWidget *label;
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
784 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
785 GtkWidget *table, *menu, *opt;
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
786 GSList *g = connections;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
787 struct gaim_connection *c;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
788 struct getuserinfo *info = g_new0(struct getuserinfo, 1);
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
789 struct gaim_gtk_buddy_list *gtkblist;
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
790 char buf[256];
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
791
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
792 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
793
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
794 info->gc = connections->data;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
795
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
796 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
797 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
798 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
799 gtk_container_set_border_width (GTK_CONTAINER(window), 6);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
800 gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
801 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
802 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
803 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6);
4614
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
804
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
805 hbox = gtk_hbox_new(FALSE, 12);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
806 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
807 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
808 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
4614
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
809 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK,
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
810 FALSE);
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
811
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
812 vbox = gtk_vbox_new(FALSE, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
813 gtk_container_add(GTK_CONTAINER(hbox), vbox);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
814
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
815 label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n"));
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
816 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
817 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
818 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
819
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
820 table = gtk_table_new(2, 2, FALSE);
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
821 gtk_table_set_row_spacings(GTK_TABLE(table), 6);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
822 gtk_table_set_col_spacings(GTK_TABLE(table), 6);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
823 gtk_container_set_border_width(GTK_CONTAINER(table), 12);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
824 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
825
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
826 label = gtk_label_new(NULL);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
827 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:"));
3822
f82dec3e96bf [gaim-migrate @ 3971]
Rob Flynn <gaim@robflynn.com>
parents: 3819
diff changeset
828 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
829 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
830
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
831 info->entry = gtk_entry_new();
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
832 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
833 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
834 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry));
4614
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
835
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
836 g_signal_connect(G_OBJECT(info->entry), "changed",
9f92925b6507 [gaim-migrate @ 4903]
Nathan Walp <nwalp@pidgin.im>
parents: 4613
diff changeset
837 G_CALLBACK(dialog_set_ok_sensitive), window);
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
838
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
839 if (connections->next) {
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
840
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
841 label = gtk_label_new(NULL);
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
842 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
843 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:"));
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
844 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
1225
9c6dc2b2ad61 [gaim-migrate @ 1235]
Rob Flynn <gaim@robflynn.com>
parents: 1224
diff changeset
845
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
846 info->account = gtk_option_menu_new();
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
847 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
848 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account));
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
849
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
850 menu = gtk_menu_new();
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
851
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
852 while (g) {
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
853 c = (struct gaim_connection *)g->data;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
854
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
855 if (!GAIM_PLUGIN_PROTOCOL_INFO(c->prpl)->get_info) {
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
856 g = g->next;
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
857 continue;
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
858 }
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
859 g_snprintf(buf, sizeof(buf), "%s (%s)",
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
860 c->username, c->prpl->info->name);
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
861 opt = gtk_menu_item_new_with_label(buf);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
862 g_object_set_data(G_OBJECT(opt), "getuserinfo", info);
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
863
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
864 g_signal_connect(GTK_OBJECT(opt), "activate",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
865 G_CALLBACK(show_info_select_account), c);
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
866
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
867 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
868 g = g->next;
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
869 }
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
870
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
871 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
872 }
3197
389ed797f396 [gaim-migrate @ 3214]
Sean Egan <seanegan@gmail.com>
parents: 3159
diff changeset
873
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
874 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
875
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
876
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
877 gtk_widget_show_all(window);
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
878 if (info->entry)
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3795
diff changeset
879 gtk_widget_grab_focus(GTK_WIDGET(info->entry));
935
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
880 }
5e6ca3dd4d02 [gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 934
diff changeset
881
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
882
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
883 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
884 /* The dialog for adding buddies */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
885 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
886
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
887 extern void add_callback(GtkWidget *, struct gaim_conversation *);
654
ea811c6dd3e0 [gaim-migrate @ 664]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 653
diff changeset
888
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
889 void do_add_buddy(GtkWidget *w, int resp, struct addbuddy *a)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
890 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
891 const char *grp, *who, *whoalias;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
892 struct gaim_conversation *c;
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
893 struct buddy *b;
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
894 struct group *g;
4769
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
895 void *icon_data;
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
896 void *icon_data2;
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
897 int icon_len;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
898
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
899 if (resp == GTK_RESPONSE_OK) {
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
900
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
901 who = gtk_entry_get_text(GTK_ENTRY(a->entry));
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
902 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry));
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
903 whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias));
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
904
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
905 c = gaim_find_conversation(who);
4775
92ae181271e9 [gaim-migrate @ 5095]
Mark Doliner <mark@kingant.net>
parents: 4774
diff changeset
906 if (!(g = gaim_find_group(grp))) {
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
907 g = gaim_group_new(grp);
4775
92ae181271e9 [gaim-migrate @ 5095]
Mark Doliner <mark@kingant.net>
parents: 4774
diff changeset
908 gaim_blist_add_group(g, NULL);
92ae181271e9 [gaim-migrate @ 5095]
Mark Doliner <mark@kingant.net>
parents: 4774
diff changeset
909 }
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
910 b = gaim_buddy_new(a->gc->account, who, whoalias);
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
911 gaim_blist_add_buddy(b, g, NULL);
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
912 serv_add_buddy(a->gc, who);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
913
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
914 if (c != NULL)
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
915 gaim_conversation_update(c, GAIM_CONV_UPDATE_ADD);
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
916
4769
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
917 icon_data = get_icon_data(a->gc, normalize(who), &icon_len);
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
918
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
919 if(icon_data) {
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
920 icon_data2 = g_memdup(icon_data, icon_len);
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
921 set_icon_data(a->gc, who, icon_data2, icon_len);
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
922 g_free(icon_data2);
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
923 }
e0afac5f85bd [gaim-migrate @ 5087]
Nathan Walp <nwalp@pidgin.im>
parents: 4703
diff changeset
924
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
925 gaim_blist_save();
654
ea811c6dd3e0 [gaim-migrate @ 664]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 653
diff changeset
926 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
927
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
928 destroy_dialog(NULL, a->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
929 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
930
3819
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
931 void do_add_group(GtkWidget *w, int resp, struct addbuddy *a)
577
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
932 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
933 const char *grp;
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
934 struct group *g;
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
935
3819
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
936 if (resp == GTK_RESPONSE_OK) {
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
937 grp = gtk_entry_get_text(GTK_ENTRY(a->entry));
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
938
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
939 if (!a->gc)
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
940 a->gc = connections->data;
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
941
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
942 g = gaim_group_new(grp);
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
943 gaim_blist_add_group (g, NULL);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
944 gaim_blist_save();
3819
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
945 }
577
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
946
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
947 destroy_dialog(NULL, a->window);
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
948 }
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
949
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
950
4978
307c16c4b57e [gaim-migrate @ 5313]
Luke Schierer <lschiere@pidgin.im>
parents: 4977
diff changeset
951 static GList *groups_tree()
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
952 {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
953 GList *tmp = NULL;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
954 char *tmp2;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
955 struct group *g;
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
956
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
957 GaimBlistNode *gnode = gaim_get_blist()->root;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
958
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
959 if (!gnode) {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
960 tmp2 = g_strdup(_("Buddies"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
961 tmp = g_list_append(tmp, tmp2);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
962 } else {
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
963 while (gnode) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
964 if(GAIM_BLIST_NODE_IS_GROUP(gnode)) {
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
965 g = (struct group *)gnode;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
966 tmp2 = g->name;
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
967 tmp = g_list_append(tmp, tmp2);
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
968 }
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
969 gnode = gnode->next;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
970 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
971 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
972 return tmp;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
973 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
974
825
9108277c95e9 [gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 804
diff changeset
975 static void free_dialog(GtkWidget *w, struct addbuddy *a)
9108277c95e9 [gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 804
diff changeset
976 {
9108277c95e9 [gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 804
diff changeset
977 g_free(a);
9108277c95e9 [gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 804
diff changeset
978 }
9108277c95e9 [gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 804
diff changeset
979
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
980
1072
81d19577285a [gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1057
diff changeset
981 void show_add_group(struct gaim_connection *gc)
577
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
982 {
3819
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
983
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
984 GtkWidget *hbox, *vbox;
577
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
985 GtkWidget *label;
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
986 struct gaim_gtk_buddy_list *gtkblist;
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
987 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
988 struct addbuddy *a = g_new0(struct addbuddy, 1);
4138
6b2d0ce7fb18 [gaim-migrate @ 4356]
Luke Schierer <lschiere@pidgin.im>
parents: 4129
diff changeset
989
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
990 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
991
1072
81d19577285a [gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1057
diff changeset
992 a->gc = gc;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
993
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
994 a->window = gtk_dialog_new_with_buttons(_("Add Group"), GTK_WINDOW(gtkblist->window), 0,
3819
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
995 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
996 gtk_dialog_set_default_response (GTK_DIALOG(a->window), GTK_RESPONSE_OK);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
997 gtk_container_set_border_width (GTK_CONTAINER(a->window), 6);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
998 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
999 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1000 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1001 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1002
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1003 hbox = gtk_hbox_new(FALSE, 12);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1004 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1005 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1006 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1007
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1008 vbox = gtk_vbox_new(FALSE, 0);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1009 gtk_container_add(GTK_CONTAINER(hbox), vbox);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1010
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1011 label = gtk_label_new(_("Please enter the name of the group to be added.\n"));
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1012 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1013 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1014 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1015
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1016 hbox = gtk_hbox_new(FALSE, 6);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1017 gtk_container_add(GTK_CONTAINER(vbox), hbox);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1018
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1019 label = gtk_label_new(NULL);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1020 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:"));
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1021 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1022
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1023 a->entry = gtk_entry_new();
3819
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1024 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1025 gtk_box_pack_start(GTK_BOX(hbox), a->entry, FALSE, FALSE, 0);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1026 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(a->entry));
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1027
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1028 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_group), a);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1029
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1030 gtk_widget_show_all(a->window);
8997bc63417c [gaim-migrate @ 3966]
Sean Egan <seanegan@gmail.com>
parents: 3816
diff changeset
1031 gtk_widget_grab_focus(GTK_WIDGET(a->entry));
577
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
1032 }
aa9a8bcddd80 [gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 570
diff changeset
1033
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1034 static void addbuddy_select_account(GObject *w, struct gaim_connection *gc)
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1035 {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1036 struct addbuddy *b = g_object_get_data(w, "addbuddy");
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1037
2561
f9bdfca15404 [gaim-migrate @ 2574]
Rob Flynn <gaim@robflynn.com>
parents: 2553
diff changeset
1038 /* Save our account */
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1039 b->gc = gc;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1040 }
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1041
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1042 static void create_online_user_names(struct addbuddy *b)
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1043 {
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1044 char buf[2048]; /* Never hurts to be safe ;-) */
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1045 GSList *g = connections;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1046 struct gaim_connection *c;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1047 GtkWidget *menu, *opt;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1048 int count = 0;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1049 int place = 0;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1050
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1051 menu = gtk_menu_new();
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1052
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1053 while (g) {
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1054 c = (struct gaim_connection *)g->data;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1055 g_snprintf(buf, sizeof(buf), "%s (%s)",
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1056 c->username, c->prpl->info->name);
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1057 opt = gtk_menu_item_new_with_label(buf);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1058 g_object_set_data(G_OBJECT(opt), "addbuddy", b);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
1059 g_signal_connect(GTK_OBJECT(opt), "activate",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
1060 G_CALLBACK(addbuddy_select_account),
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1061 c);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1062 gtk_widget_show(opt);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1063 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1064
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1065 /* Now check to see if it's our current menu */
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1066 if (c == b->gc) {
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1067 place = count;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1068 gtk_menu_item_activate(GTK_MENU_ITEM(opt));
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1069 gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), count);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1070
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1071 /* Do the cha cha cha */
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1072 }
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1073
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1074 count++;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1075
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1076 g = g->next;
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1077 }
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1078
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1079 gtk_option_menu_remove_menu(GTK_OPTION_MENU(b->account));
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1080 gtk_option_menu_set_menu(GTK_OPTION_MENU(b->account), menu);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1081 gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), place);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1082
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1083 gtk_widget_show(b->account);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1084 gtk_widget_show(b->account->parent);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1085
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1086 }
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1087
2582
5efa8077107f [gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2572
diff changeset
1088 void show_add_buddy(struct gaim_connection *gc, char *buddy, char *group, char *alias)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1089 {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1090 GtkWidget *table;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1091 GtkWidget *label;
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1092 GtkWidget *hbox;
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1093 GtkWidget *vbox;
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
1094 struct gaim_gtk_buddy_list *gtkblist;
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
1095 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1096 struct addbuddy *a = g_new0(struct addbuddy, 1);
2598
b2800bca74fe [gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2582
diff changeset
1097 a->gc = gc ? gc : connections->data;
1210
265abea9db72 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1191
diff changeset
1098
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
1099 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
1100
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
1101 GAIM_DIALOG(a->window);
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
1102 a->window = gtk_dialog_new_with_buttons(_("Add Buddy"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, 0,
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1103 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1104
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1105 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1106 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1107 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1108 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1109 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1110 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
1111 gtk_window_set_role(GTK_WINDOW(a->window), "add_buddy");
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1112
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1113 hbox = gtk_hbox_new(FALSE, 12);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1114 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1115 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1116 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1117
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1118 vbox = gtk_vbox_new(FALSE, 0);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1119 gtk_container_add(GTK_CONTAINER(hbox), vbox);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1120
4599
221fb7143cd4 [gaim-migrate @ 4884]
Luke Schierer <lschiere@pidgin.im>
parents: 4586
diff changeset
1121 label = gtk_label_new(_("Please enter the screen name of the person you would like to add to your buddy list. You may optionally enter an alias, or nickname, for the buddy. The alias will be displayed in place of the screen name whenever possible.\n"));
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1122 gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1123 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1124 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1125 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1126
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1127 hbox = gtk_hbox_new(FALSE, 6);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1128 gtk_container_add(GTK_CONTAINER(vbox), hbox);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1129
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
1130 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(destroy_dialog), a->window);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
1131 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(free_dialog), a);
1151
428372cc1e39 [gaim-migrate @ 1161]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1144
diff changeset
1132 dialogwindows = g_list_prepend(dialogwindows, a->window);
428372cc1e39 [gaim-migrate @ 1161]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1144
diff changeset
1133
2529
44b56faccb22 [gaim-migrate @ 2542]
Rob Flynn <gaim@robflynn.com>
parents: 2527
diff changeset
1134 table = gtk_table_new(4, 2, FALSE);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1135 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1136 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1137 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1138 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1139
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1140 label = gtk_label_new(_("Screen Name"));
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1141 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1142 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1143
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1144 a->entry = gtk_entry_new();
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1145 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1);
3333
b6da58fae8b7 [gaim-migrate @ 3351]
Jim Seymour <jseymour>
parents: 3327
diff changeset
1146 gtk_widget_grab_focus(a->entry);
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
1147
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1148 if (buddy != NULL)
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1149 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy);
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
1150
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
1151 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1152
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1153 label = gtk_label_new(_("Alias"));
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1154 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1155 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1156
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1157 a->entry_for_alias = gtk_entry_new();
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1158 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2);
2582
5efa8077107f [gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2572
diff changeset
1159 if (alias != NULL)
5efa8077107f [gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2572
diff changeset
1160 gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias);
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
1161 gtk_entry_set_activates_default (GTK_ENTRY(a->entry_for_alias), TRUE);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1162
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1163 label = gtk_label_new(_("Group"));
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1164 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1165 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1166
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1167 a->combo = gtk_combo_new();
4978
307c16c4b57e [gaim-migrate @ 5313]
Luke Schierer <lschiere@pidgin.im>
parents: 4977
diff changeset
1168 gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), groups_tree());
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1169 gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3);
1210
265abea9db72 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1191
diff changeset
1170
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1171 /* Set up stuff for the account box */
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1172 label = gtk_label_new(_("Add To"));
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1173 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1174 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1175
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1176 a->account = gtk_option_menu_new();
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1177 gtk_table_attach_defaults(GTK_TABLE(table), a->account, 1, 2, 3, 4);
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1178
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1179 create_online_user_names(a);
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1180
2527
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1181 /* End of account box */
c9e316b04048 [gaim-migrate @ 2540]
Rob Flynn <gaim@robflynn.com>
parents: 2493
diff changeset
1182
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1183 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_buddy), a);
1151
428372cc1e39 [gaim-migrate @ 1161]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1144
diff changeset
1184
1210
265abea9db72 [gaim-migrate @ 1220]
Rob Flynn <gaim@robflynn.com>
parents: 1191
diff changeset
1185 gtk_widget_show_all(a->window);
4180
3ed4fab5d7bf [gaim-migrate @ 4411]
Rob Flynn <gaim@robflynn.com>
parents: 4179
diff changeset
1186
2995
e27517a5c28e [gaim-migrate @ 3008]
Sean Egan <seanegan@gmail.com>
parents: 2993
diff changeset
1187 if (group != NULL)
e27517a5c28e [gaim-migrate @ 3008]
Sean Egan <seanegan@gmail.com>
parents: 2993
diff changeset
1188 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1189 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1190
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1191 struct addchat {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1192 struct gaim_account *account;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1193 GtkWidget *window;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1194 GtkWidget *account_menu;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1195 GtkWidget *alias_entry;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1196 GtkWidget *group_combo;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1197 GtkWidget *entries_box;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1198 GtkSizeGroup *sg;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1199 GList *entries;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1200 };
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1201
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1202 static void do_add_chat(GtkWidget *w, struct addchat *ac) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1203 GHashTable *components = g_hash_table_new_full(g_str_hash, g_str_equal,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1204 g_free, g_free);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1205 GList *tmp;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1206
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1207 struct chat *chat;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1208 struct group *group;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1209 const char *group_name;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1210
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1211 for(tmp = ac->entries; tmp; tmp = tmp->next) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1212 if(g_object_get_data(tmp->data, "is_spin")) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1213 g_hash_table_replace(components,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1214 g_strdup(g_object_get_data(tmp->data, "identifier")),
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1215 g_strdup_printf("%d",
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1216 gtk_spin_button_get_value_as_int(tmp->data)));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1217 } else {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1218 g_hash_table_replace(components,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1219 g_strdup(g_object_get_data(tmp->data, "identifier")),
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1220 g_strdup(gtk_entry_get_text(tmp->data)));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1221 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1222 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1223
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1224 chat = gaim_chat_new(ac->account, gtk_entry_get_text(GTK_ENTRY(ac->alias_entry)), components);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1225
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1226 group_name = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ac->group_combo)->entry));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1227 if (!(group = gaim_find_group(group_name))) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1228 group = gaim_group_new(group_name);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1229 gaim_blist_add_group(group, NULL);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1230 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1231
5237
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1232 if(chat) {
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1233 gaim_blist_add_chat(chat, group, NULL);
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1234 gaim_blist_save();
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1235 }
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1236
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1237 gtk_widget_destroy(ac->window);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1238 g_list_free(ac->entries);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1239
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1240 g_free(ac);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1241 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1242
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1243 static void do_add_chat_resp(GtkWidget *w, int resp, struct addchat *ac) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1244 if(resp == GTK_RESPONSE_OK) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1245 do_add_chat(NULL, ac);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1246 } else {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1247 gtk_widget_destroy(ac->window);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1248 g_list_free(ac->entries);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1249 g_free(ac);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1250 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1251 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1252
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1253
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1254 static void rebuild_addchat_entries(struct addchat *ac) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1255 GList *list, *tmp;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1256 struct proto_chat_entry *pce;
5237
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1257 gboolean focus = TRUE;
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1258
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1259 while(GTK_BOX(ac->entries_box)->children)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1260 gtk_container_remove(GTK_CONTAINER(ac->entries_box),
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1261 ((GtkBoxChild *)GTK_BOX(ac->entries_box)->children->data)->widget);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1262
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1263 if(ac->entries)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1264 g_list_free(ac->entries);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1265
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1266 ac->entries = NULL;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1267
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1268 list = GAIM_PLUGIN_PROTOCOL_INFO(ac->account->gc->prpl)->chat_info(ac->account->gc);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1269
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1270 for(tmp = list; tmp; tmp = tmp->next) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1271 GtkWidget *label;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1272 GtkWidget *rowbox;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1273 pce = tmp->data;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1274
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1275 rowbox = gtk_hbox_new(FALSE, 5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1276 gtk_box_pack_start(GTK_BOX(ac->entries_box), rowbox, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1277
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1278 label = gtk_label_new(pce->label);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1279 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1280 gtk_size_group_add_widget(ac->sg, label);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1281 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1282
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1283 if(pce->is_int) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1284 GtkObject *adjust;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1285 GtkWidget *spin;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1286 adjust = gtk_adjustment_new(pce->min, pce->min, pce->max,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1287 1, 10, 10);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1288 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1289 g_object_set_data(G_OBJECT(spin), "is_spin", GINT_TO_POINTER(TRUE));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1290 g_object_set_data(G_OBJECT(spin), "identifier", pce->identifier);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1291 ac->entries = g_list_append(ac->entries, spin);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1292 gtk_widget_set_size_request(spin, 50, -1);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1293 gtk_box_pack_end(GTK_BOX(rowbox), spin, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1294 } else {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1295 GtkWidget *entry = gtk_entry_new();
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1296 g_object_set_data(G_OBJECT(entry), "identifier", pce->identifier);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1297 ac->entries = g_list_append(ac->entries, entry);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1298
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1299 if(pce->def)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1300 gtk_entry_set_text(GTK_ENTRY(entry), pce->def);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1301
5237
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1302 if(focus) {
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1303 gtk_widget_grab_focus(entry);
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1304 focus = FALSE;
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1305 }
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1306
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1307 gtk_box_pack_end(GTK_BOX(rowbox), entry, TRUE, TRUE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1308
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1309 g_signal_connect(G_OBJECT(entry), "activate",
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1310 G_CALLBACK(do_add_chat), ac);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1311 }
5241
a3bb756635be [gaim-migrate @ 5612]
Nathan Walp <nwalp@pidgin.im>
parents: 5237
diff changeset
1312 g_free(pce);
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1313 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1314
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1315 gtk_widget_show_all(ac->entries_box);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1316 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1317
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1318 static void addchat_select_account(GObject *w, struct gaim_connection *gc)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1319 {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1320 struct addchat *ac = g_object_get_data(w, "addchat");
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1321
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1322 if(ac->account->protocol == gc->account->protocol) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1323 ac->account = gc->account;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1324 } else {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1325 ac->account = gc->account;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1326 rebuild_addchat_entries(ac);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1327 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1328 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1329
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1330 static void create_online_account_menu_for_add_chat(struct addchat *ac)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1331 {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1332 char buf[2048]; /* Never hurts to be safe ;-) */
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1333 GSList *g = connections;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1334 struct gaim_connection *c;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1335 GtkWidget *menu, *opt;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1336 int count = 0;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1337 int place = 0;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1338
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1339 menu = gtk_menu_new();
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1340
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1341 while (g) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1342 c = (struct gaim_connection *)g->data;
5258
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1343 if (GAIM_PLUGIN_PROTOCOL_INFO(c->prpl)->join_chat) {
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1344 g_snprintf(buf, sizeof(buf), "%s (%s)",
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1345 c->username, c->prpl->info->name);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1346 opt = gtk_menu_item_new_with_label(buf);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1347 g_object_set_data(G_OBJECT(opt), "addchat", ac);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1348 g_signal_connect(GTK_OBJECT(opt), "activate",
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1349 G_CALLBACK(addchat_select_account),
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1350 c);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1351 gtk_widget_show(opt);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1352 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1353
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1354 /* Now check to see if it's our current menu */
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1355 if (c->account == ac->account) {
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1356 place = count;
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1357 gtk_menu_item_activate(GTK_MENU_ITEM(opt));
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1358 gtk_option_menu_set_history(GTK_OPTION_MENU(ac->account_menu), count);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1359
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1360 /* Do the cha cha cha */
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1361 }
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1362
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1363 count++;
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1364 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1365
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1366 g = g->next;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1367 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1368
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1369 gtk_option_menu_remove_menu(GTK_OPTION_MENU(ac->account_menu));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1370 gtk_option_menu_set_menu(GTK_OPTION_MENU(ac->account_menu), menu);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1371 gtk_option_menu_set_history(GTK_OPTION_MENU(ac->account_menu), place);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1372 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1373
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1374 void show_add_chat(struct gaim_account *account, struct group *group) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1375 struct addchat *ac = g_new0(struct addchat, 1);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1376 struct gaim_gtk_buddy_list *gtkblist;
5258
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1377 GSList *c;
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1378 struct gaim_connection *gc;
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1379
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1380 GtkWidget *label;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1381 GtkWidget *rowbox;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1382 GtkWidget *hbox;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1383 GtkWidget *vbox;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1384 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1385 GTK_ICON_SIZE_DIALOG);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1386
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1387 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1388
5258
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1389 if (account) {
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1390 ac->account = account;
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1391 } else {
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1392 /* Select an account with chat capabilities */
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1393 for (c = connections; c != NULL; c = c->next) {
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1394 gc = c->data;
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1395
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1396 if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat) {
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1397 ac->account = gc->account;
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1398 break;
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1399 }
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1400 }
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1401 }
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1402
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1403 if (!ac->account) {
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1404 do_error_dialog(
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1405 _("You are not currently signed on with any protocols "
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1406 "that have the ability to chat."), NULL, GAIM_ERROR);
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1407 return;
4ac135a2f422 [gaim-migrate @ 5630]
Luke Schierer <lschiere@pidgin.im>
parents: 5249
diff changeset
1408 }
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1409
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1410 ac->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1411
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1412 ac->window = gtk_dialog_new_with_buttons(_("Add Chat"),
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1413 GTK_WINDOW(gtkblist->window), 0,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1414 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1415 GTK_STOCK_ADD, GTK_RESPONSE_OK,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1416 NULL);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1417
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1418 gtk_dialog_set_default_response(GTK_DIALOG(ac->window), GTK_RESPONSE_OK);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1419 gtk_container_set_border_width(GTK_CONTAINER(ac->window), 6);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1420 gtk_window_set_resizable(GTK_WINDOW(ac->window), FALSE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1421 gtk_dialog_set_has_separator(GTK_DIALOG(ac->window), FALSE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1422 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(ac->window)->vbox), 12);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1423 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(ac->window)->vbox),
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1424 6);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1425 gtk_window_set_role(GTK_WINDOW(ac->window), "add_chat");
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1426
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1427 hbox = gtk_hbox_new(FALSE, 12);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1428 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(ac->window)->vbox), hbox);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1429 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1430 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1431
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1432 vbox = gtk_vbox_new(FALSE, 5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1433 gtk_container_add(GTK_CONTAINER(hbox), vbox);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1434
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1435 label = gtk_label_new(_("Please enter an alias, and the appropriate information about the chat you would like to add to your buddy list.\n"));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1436 gtk_widget_set_size_request(label, 400, -1);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1437 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1438 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1439 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1440
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1441 rowbox = gtk_hbox_new(FALSE, 5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1442 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1443
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1444 label = gtk_label_new(_("Account:"));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1445 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1446 gtk_size_group_add_widget(ac->sg, label);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1447 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1448
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1449 ac->account_menu = gtk_option_menu_new();
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1450 gtk_box_pack_end(GTK_BOX(rowbox), ac->account_menu, TRUE, TRUE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1451
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1452 create_online_account_menu_for_add_chat(ac);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1453
5237
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1454 ac->entries_box = gtk_vbox_new(FALSE, 5);
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1455 gtk_container_set_border_width(GTK_CONTAINER(ac->entries_box), 0);
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1456 gtk_box_pack_start(GTK_BOX(vbox), ac->entries_box, TRUE, TRUE, 0);
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1457
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1458 rebuild_addchat_entries(ac);
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
1459
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1460 rowbox = gtk_hbox_new(FALSE, 5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1461 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1462
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1463 label = gtk_label_new(_("Alias:"));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1464 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1465 gtk_size_group_add_widget(ac->sg, label);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1466 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1467
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1468 ac->alias_entry = gtk_entry_new();
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1469 gtk_box_pack_end(GTK_BOX(rowbox), ac->alias_entry, TRUE, TRUE, 0);
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 rowbox = gtk_hbox_new(FALSE, 5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1472 gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1473
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1474 label = gtk_label_new(_("Group:"));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1475 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1476 gtk_size_group_add_widget(ac->sg, label);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1477 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1478
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1479 ac->group_combo = gtk_combo_new();
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1480 gtk_combo_set_popdown_strings(GTK_COMBO(ac->group_combo), groups_tree());
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1481 gtk_box_pack_end(GTK_BOX(rowbox), ac->group_combo, TRUE, TRUE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1482
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1483 if (group)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1484 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(ac->group_combo)->entry), group->name);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1485
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1486 g_signal_connect(G_OBJECT(ac->window), "response", G_CALLBACK(do_add_chat_resp), ac);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1487
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1488 gtk_widget_show_all(ac->window);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1489 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1490
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
1491
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1492
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1493 /*------------------------------------------------------------------------*
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1494 * Privacy Settings *
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1495 *------------------------------------------------------------------------*/
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1496 static GtkWidget *deny_type = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1497 static GtkWidget *deny_conn_hbox = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1498 static GtkWidget *deny_opt_menu = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1499 static struct gaim_connection *current_deny_gc = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1500 static gboolean current_is_deny = FALSE;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1501 static GtkWidget *allow_list = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1502 static GtkWidget *block_list = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1503
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1504 static GtkListStore *block_store = NULL;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1505 static GtkListStore *allow_store = NULL;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1506
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1507 static void set_deny_mode(GtkWidget *w, int data)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1508 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1509 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1510 return;
5213
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
1511
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
1512 gaim_debug(GAIM_DEBUG_INFO, "privacy", "Setting deny mode %d\n", data);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1513 current_deny_gc->account->permdeny = data;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1514 serv_set_permit_deny(current_deny_gc);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1515 gaim_blist_save();
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1516 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1517
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1518 static GtkWidget *deny_opt(char *label, int which, GtkWidget *set)
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1519 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1520 GtkWidget *opt;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1521
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1522 if (!set)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1523 opt = gtk_radio_button_new_with_label(NULL, label);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1524 else
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1525 opt =
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1526 gtk_radio_button_new_with_label(gtk_radio_button_get_group(
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1527 GTK_RADIO_BUTTON(set)),
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1528 label);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1529
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
1530 g_signal_connect(GTK_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1531 gtk_widget_show(opt);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1532 if (current_deny_gc->account->permdeny == which)
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1533 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt), TRUE);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1534
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1535 return opt;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1536 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1537
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1538 static void des_deny_opt(GtkWidget *d, gpointer e)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1539 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1540 gtk_widget_destroy(d);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1541 current_deny_gc = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1542 deny_conn_hbox = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1543 deny_type = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1544 deny_opt_menu = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1545 current_is_deny = FALSE;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1546 allow_list = NULL;
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1547 allow_store = NULL;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1548
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1549 block_list = NULL;
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1550 block_store = NULL;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1551 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1552
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1553 static void set_deny_type()
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1554 {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1555 GSList *bg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(deny_type));
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1556
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1557 switch (current_deny_gc->account->permdeny) {
3786
4c9356a5231c [gaim-migrate @ 3926]
Luke Schierer <lschiere@pidgin.im>
parents: 3781
diff changeset
1558 case 5:
4c9356a5231c [gaim-migrate @ 3926]
Luke Schierer <lschiere@pidgin.im>
parents: 3781
diff changeset
1559 bg = bg->next->next;
4c9356a5231c [gaim-migrate @ 3926]
Luke Schierer <lschiere@pidgin.im>
parents: 3781
diff changeset
1560 break;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1561 case 4:
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1562 break;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1563 case 3:
3786
4c9356a5231c [gaim-migrate @ 3926]
Luke Schierer <lschiere@pidgin.im>
parents: 3781
diff changeset
1564 bg = bg->next->next->next;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1565 break;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1566 case 2:
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1567 bg = bg->next;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1568 break;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1569 case 1:
3786
4c9356a5231c [gaim-migrate @ 3926]
Luke Schierer <lschiere@pidgin.im>
parents: 3781
diff changeset
1570 bg = bg->next->next->next->next;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1571 break;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1572 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1573
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1574 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bg->data), TRUE);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1575 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1576
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1577 void build_allow_list()
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1578 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1579 GSList *p;
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1580 GtkListStore *ls;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1581 GtkTreeIter iter;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1582
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1583 if (!current_is_deny)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1584 return;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1585
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1586 p = current_deny_gc->account->permit;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1587
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1588 gtk_list_store_clear(GTK_LIST_STORE(allow_store));
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1589
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1590 while (p) {
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1591 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list)));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1592
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1593 gtk_list_store_append(ls, &iter);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1594 gtk_list_store_set(ls, &iter, 0, p->data, -1);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1595
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1596 p = p->next;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1597 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1598 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1599
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1600
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1601 void build_block_list()
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1602 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1603 GSList *d;
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1604 GtkListStore *ls;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1605 GtkTreeIter iter;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1606
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1607 if (!current_is_deny)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1608 return;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1609
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1610 d = current_deny_gc->account->deny;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1611
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1612 gtk_list_store_clear(GTK_LIST_STORE(block_store));
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1613
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1614 while (d) {
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1615 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(block_list)));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1616
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1617 gtk_list_store_append(ls, &iter);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1618 gtk_list_store_set(ls, &iter, 0, d->data, -1);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1619
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1620 d = d->next;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1621 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1622 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1623
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1624 static void deny_gc_opt(GtkWidget *opt, struct gaim_connection *gc)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1625 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1626 current_deny_gc = gc;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1627 set_deny_type();
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1628 build_allow_list();
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1629 build_block_list();
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1630 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1631
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1632 static void build_deny_menu()
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1633 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1634 GtkWidget *menu;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1635 GtkWidget *opt;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1636 GSList *c = connections;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1637 struct gaim_connection *gc;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1638 int count = 0;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1639 gboolean found = FALSE;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1640 char buf[2048];
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1641
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1642 if (g_slist_length(connections) == 1) {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1643 gtk_widget_hide(deny_conn_hbox);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1644 return;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1645 } else
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1646 gtk_widget_show(deny_conn_hbox);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1647
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1648 menu = gtk_menu_new();
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1649
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1650 while (c) {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1651 gc = (struct gaim_connection *)c->data;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1652 c = c->next;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1653
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1654 if (!GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->set_permit_deny)
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1655 continue;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1656
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1657 g_snprintf(buf, sizeof buf, "%s (%s)",
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1658 gc->username, gc->prpl->info->name);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1659 opt = gtk_menu_item_new_with_label(buf);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
1660 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(deny_gc_opt), gc);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1661 gtk_widget_show(opt);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1662 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1663 if (gc == current_deny_gc)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1664 found = TRUE;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1665 else if (!found)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1666 count++;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1667 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1668
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1669 if (!found) {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1670 current_deny_gc = connections->data;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1671 count = 0;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1672 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1673
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1674 gtk_option_menu_remove_menu(GTK_OPTION_MENU(deny_opt_menu));
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1675 gtk_option_menu_set_menu(GTK_OPTION_MENU(deny_opt_menu), menu);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1676 gtk_option_menu_set_history(GTK_OPTION_MENU(deny_opt_menu), count);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1677
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1678 gtk_widget_show(menu);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1679 gtk_widget_show(deny_opt_menu);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1680 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1681
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1682 static void pref_deny_add(GtkWidget *button, gboolean permit)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1683 {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1684 show_add_perm(current_deny_gc, NULL, permit);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1685 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1686
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1687
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1688 gchar *find_permdeny_by_name(GSList *l, char *who) {
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1689 gchar *name;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1690
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1691 while (l) {
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1692 name = (gchar *)l->data;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1693 if (!strcmp(name, who)) {
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1694 return name;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1695 }
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1696
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1697 l = l->next;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1698 }
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1699
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1700 return NULL;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1701 }
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1702
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1703 static void pref_deny_rem(GtkWidget *button, gboolean permit)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1704 {
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1705 gchar *who;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1706 GtkTreeIter iter;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1707 GtkTreeModel *mod;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1708 GtkTreeSelection *sel;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1709
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1710 if (permit) {
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1711 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1712 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(allow_list));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1713 } else {
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1714 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(block_list));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1715 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(block_list));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1716 }
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1717
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1718 if (gtk_tree_selection_get_selected(sel, NULL, &iter))
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1719 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 0, &who, -1);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1720 else {
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1721 return;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1722 }
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1723
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1724 if (permit && !allow_list)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1725 return;
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1726
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1727 if (!permit && !block_list)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1728 return;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1729
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1730 if (permit) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1731 char *name = find_permdeny_by_name(current_deny_gc->account->permit, who);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1732
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1733 if (name) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1734 gaim_privacy_permit_remove(current_deny_gc->account, name);
4308
b3a14484fc2f [gaim-migrate @ 4562]
Mark Doliner <mark@kingant.net>
parents: 4272
diff changeset
1735 serv_rem_permit(current_deny_gc, who);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1736 build_allow_list();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1737 }
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1738 } else {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1739 char *name = find_permdeny_by_name(current_deny_gc->account->deny, who);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1740
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1741 if (name) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1742 gaim_privacy_deny_remove(current_deny_gc->account, name);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1743 serv_rem_deny(current_deny_gc, who);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1744 build_block_list();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1745 }
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1746 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1747
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1748 gaim_blist_save();
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1749 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1750
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1751 GtkWidget *privacy_win;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1752 void update_privacy_connections() { /* This is a slightly better name */
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1753 gboolean needdeny = FALSE;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1754 GSList *c = connections;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1755 struct gaim_connection *gc = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1756
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1757 if (!privacy_win)
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1758 return;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1759
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1760 while (c) {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1761 gc = c->data;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1762 if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->set_permit_deny)
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1763 break;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1764 gc = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1765 c = c->next;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1766 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1767 needdeny = (gc != NULL);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1768
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1769
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1770 if (needdeny) {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1771 gtk_widget_set_sensitive(privacy_win, TRUE);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1772 build_deny_menu();
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1773 build_allow_list();
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1774 build_block_list();
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1775 } else {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1776 gtk_widget_set_sensitive(privacy_win, FALSE);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1777 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1778 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1779 static void destroy_privacy() {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1780 current_deny_gc = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1781 privacy_win = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1782 }
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
1783
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1784 void show_privacy_options() {
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1785 GtkWidget *pwin;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1786 GtkWidget *box;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1787 GtkWidget *hbox;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1788 GtkWidget *label;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1789 GtkWidget *sw;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1790 GtkWidget *bbox;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1791 GtkWidget *button;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1792 GtkWidget *sep;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1793 GtkWidget *close_button;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1794 GtkSizeGroup *sg1 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1795 GtkSizeGroup *sg2 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1796 GtkCellRenderer *rend;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1797 GtkTreeViewColumn *col;
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1798 GtkWidget *table;
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1799
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1800 current_deny_gc = connections->data; /* this is safe because this screen will only be
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1801 available when there are connections */
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1802 current_is_deny = TRUE;
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1803
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1804 privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
1805 gtk_window_set_resizable(GTK_WINDOW(pwin), FALSE);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1806 gtk_window_set_role(GTK_WINDOW(pwin), "privacy");
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
1807 gtk_window_set_title(GTK_WINDOW(pwin), _("Privacy"));
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1808 g_signal_connect(GTK_OBJECT(pwin), "destroy", G_CALLBACK(destroy_privacy), NULL);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1809 gtk_widget_realize(pwin);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1810
4637
bf89c7598989 [gaim-migrate @ 4945]
Nathan Walp <nwalp@pidgin.im>
parents: 4635
diff changeset
1811 gtk_widget_set_size_request(pwin, -1, 400);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1812
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1813 box = gtk_vbox_new(FALSE, 5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1814 gtk_container_set_border_width(GTK_CONTAINER(box), 5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1815 gtk_container_add(GTK_CONTAINER(pwin), box);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1816 gtk_widget_show(box);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1817
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1818 label = gtk_label_new(_("Changes to privacy settings take effect immediately."));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1819 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1820 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1821 gtk_widget_show(label);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1822
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1823 deny_conn_hbox = gtk_hbox_new(FALSE, 5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1824 gtk_box_pack_start(GTK_BOX(box), deny_conn_hbox, FALSE, FALSE, 0);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1825 gtk_widget_show(deny_conn_hbox);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1826
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1827 label = gtk_label_new(_("Set privacy for:"));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1828 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), label, FALSE, FALSE, 5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1829 gtk_widget_show(label);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1830
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1831 deny_opt_menu = gtk_option_menu_new();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1832 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), deny_opt_menu, FALSE, FALSE, 5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1833 g_signal_connect(GTK_OBJECT(deny_opt_menu), "destroy", G_CALLBACK(des_deny_opt), NULL);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1834 gtk_widget_show(deny_opt_menu);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1835
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1836 build_deny_menu();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1837
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1838 table = gtk_table_new(5, 2, FALSE);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1839 gtk_box_pack_start(GTK_BOX(box), table, TRUE, TRUE, 0);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1840 gtk_table_set_row_spacings(GTK_TABLE(table), 7);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1841 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1842 gtk_widget_show(table);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1843
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1844 deny_type = deny_opt(_("Allow all users to contact me"), 1, NULL);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1845 gtk_size_group_add_widget(sg1, deny_type);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1846 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1847
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1848 deny_type = deny_opt(_("Allow only users on my buddy list"), 5, deny_type);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1849 gtk_size_group_add_widget(sg1, deny_type);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1850 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1851
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1852 deny_type = deny_opt(_("Allow only the users below"), 3, deny_type);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1853 gtk_size_group_add_widget(sg1, deny_type);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1854 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 2, 3, GTK_FILL, 0, 0, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1855
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1856 sw = gtk_scrolled_window_new(NULL, NULL);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1857 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1858 gtk_table_attach(GTK_TABLE(table), sw, 0, 1, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1859 gtk_widget_show(sw);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1860
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1861 allow_store = gtk_list_store_new(1, G_TYPE_STRING);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1862 allow_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(allow_store));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1863
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1864 rend = gtk_cell_renderer_text_new();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1865 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1866 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1867 gtk_tree_view_append_column(GTK_TREE_VIEW(allow_list), col);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1868 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allow_list), FALSE);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1869 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), allow_list);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1870 gtk_widget_show(allow_list);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1871
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1872 build_allow_list();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1873
4179
67f45f27ed3c [gaim-migrate @ 4410]
Rob Flynn <gaim@robflynn.com>
parents: 4178
diff changeset
1874 bbox = gtk_hbox_new(TRUE, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1875 gtk_widget_show(bbox);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1876 gtk_table_attach(GTK_TABLE(table), bbox, 0, 1, 4, 5, GTK_FILL, 0, 0, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1877
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1878 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1879 gtk_size_group_add_widget(sg2, button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1880 gtk_widget_show(button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1881 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), (void *)TRUE);
4179
67f45f27ed3c [gaim-migrate @ 4410]
Rob Flynn <gaim@robflynn.com>
parents: 4178
diff changeset
1882 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1883
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1884 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1885 gtk_size_group_add_widget(sg2, button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1886 gtk_widget_show(button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1887 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), (void *)TRUE);
4179
67f45f27ed3c [gaim-migrate @ 4410]
Rob Flynn <gaim@robflynn.com>
parents: 4178
diff changeset
1888 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1889
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1890 deny_type = deny_opt(_("Deny all users"), 2, deny_type);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1891 gtk_size_group_add_widget(sg1, deny_type);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1892 gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 1, 2, GTK_FILL, 0, 0, 0);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1893
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1894 deny_type = deny_opt(_("Block the users below"), 4, deny_type);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1895 gtk_size_group_add_widget(sg1, deny_type);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1896 gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 2, 3, GTK_FILL, 0, 0, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1897
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1898 sw = gtk_scrolled_window_new(NULL, NULL);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1899 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1900 gtk_table_attach(GTK_TABLE(table), sw, 1, 2, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1901 gtk_widget_show(sw);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1902
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1903 block_store = gtk_list_store_new(1, G_TYPE_STRING);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1904 block_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(block_store));
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1905
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1906 rend = gtk_cell_renderer_text_new();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1907 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1908 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1909 gtk_tree_view_append_column(GTK_TREE_VIEW(block_list), col);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1910 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(block_list), FALSE);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1911 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), block_list);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1912 gtk_widget_show(block_list);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1913
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1914 build_block_list();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1915
4179
67f45f27ed3c [gaim-migrate @ 4410]
Rob Flynn <gaim@robflynn.com>
parents: 4178
diff changeset
1916 bbox = gtk_hbox_new(TRUE, 0);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1917 gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 4, 5, GTK_FILL, 0, 0, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1918 gtk_widget_show(bbox);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1919
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1920 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1921 gtk_size_group_add_widget(sg2, button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1922 gtk_widget_show(button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1923 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), FALSE);
4179
67f45f27ed3c [gaim-migrate @ 4410]
Rob Flynn <gaim@robflynn.com>
parents: 4178
diff changeset
1924 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1925
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1926 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1927 gtk_size_group_add_widget(sg2, button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1928 gtk_widget_show(button);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1929 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), FALSE);
4179
67f45f27ed3c [gaim-migrate @ 4410]
Rob Flynn <gaim@robflynn.com>
parents: 4178
diff changeset
1930 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1931
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1932 sep = gtk_hseparator_new();
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1933 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1934 gtk_widget_show(sep);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1935
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1936 hbox = gtk_hbox_new(FALSE, 0);
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1937 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1938 gtk_widget_show(hbox);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1939
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1940 close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1941 gtk_box_pack_end(GTK_BOX(hbox), close_button, FALSE, FALSE, 0);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1942 g_signal_connect_swapped(GTK_OBJECT(close_button), "clicked", G_CALLBACK(gtk_widget_destroy), pwin);
4178
b2b14e936178 [gaim-migrate @ 4408]
Rob Flynn <gaim@robflynn.com>
parents: 4177
diff changeset
1943 gtk_widget_show(close_button);
4177
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1944
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1945 gtk_widget_show(pwin);
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1946
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1947 }
b173736b4ab0 [gaim-migrate @ 4407]
Rob Flynn <gaim@robflynn.com>
parents: 4171
diff changeset
1948
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1949
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1950 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1951 /* The dialog for SET INFO / SET DIR INFO */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1952 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1953
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1954 void do_save_info(GtkWidget *widget, struct set_info_dlg *b)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1955 {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1956 gchar *junk;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
1957 struct gaim_connection *gc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1958
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
1959 junk = gtk_text_view_get_text(GTK_TEXT_VIEW(b->text), FALSE);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1960
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1961 if (b->account) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1962 strncpy_withhtml(b->account->user_info, junk, sizeof b->account->user_info);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1963 gc = b->account->gc;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1964
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
1965 save_prefs();
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
1966
1292
cb84b5c6d9ab [gaim-migrate @ 1302]
Rob Flynn <gaim@robflynn.com>
parents: 1288
diff changeset
1967 if (gc)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1968 serv_set_info(gc, b->account->user_info);
122
521db4bf5f28 [gaim-migrate @ 132]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 84
diff changeset
1969 }
25
c56db1b46b0d [gaim-migrate @ 34]
Rob Flynn <gaim@robflynn.com>
parents: 24
diff changeset
1970 g_free(junk);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1971 destroy_dialog(NULL, b->window);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1972 g_free(b);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1973 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1974
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1975 void do_set_dir(GtkWidget *widget, struct set_dir_dlg *b)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1976 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1977 const char *first = gtk_entry_get_text(GTK_ENTRY(b->first));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1978 int web = GTK_TOGGLE_BUTTON(b->web)->active;
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1979 const char *middle = gtk_entry_get_text(GTK_ENTRY(b->middle));
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1980 const char *last = gtk_entry_get_text(GTK_ENTRY(b->last));
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1981 const char *maiden = gtk_entry_get_text(GTK_ENTRY(b->maiden));
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1982 const char *city = gtk_entry_get_text(GTK_ENTRY(b->city));
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1983 const char *state = gtk_entry_get_text(GTK_ENTRY(b->state));
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
1984 const char *country = gtk_entry_get_text(GTK_ENTRY(b->country));
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1985
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
1986 serv_set_dir(b->gc, first, middle, last, maiden, city, state, country, web);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1987
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
1988 destroy_dialog(NULL, b->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1989 g_free(b);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1990 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1991
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
1992 void show_set_dir(struct gaim_connection *gc)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1993 {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1994 GtkWidget *label;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1995 GtkWidget *bot;
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
1996 GtkWidget *vbox;
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
1997 GtkWidget *hbox;
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
1998 GtkWidget *frame;
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
1999 GtkWidget *fbox;
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2000 char buf[256];
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2001
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2002 struct set_dir_dlg *b = g_new0(struct set_dir_dlg, 1);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2003 b->gc = gc;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2004
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
2005 GAIM_DIALOG(b->window);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2006 dialogwindows = g_list_prepend(dialogwindows, b->window);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
2007 gtk_window_set_role(GTK_WINDOW(b->window), "set_dir");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2008 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2009 gtk_window_set_title(GTK_WINDOW(b->window), _("Set Directory Info"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2010 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2011 gtk_widget_realize(b->window);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2012
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2013 fbox = gtk_vbox_new(FALSE, 5);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2014 gtk_container_add(GTK_CONTAINER(b->window), fbox);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2015 gtk_widget_show(fbox);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2016
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2017 frame = gtk_frame_new(_("Directory Info"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2018 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2019 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2020 gtk_widget_show(frame);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2021
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2022 vbox = gtk_vbox_new(FALSE, 5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2023 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2024 gtk_container_add(GTK_CONTAINER(frame), vbox);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2025 gtk_widget_show(vbox);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2026
4472
e73c4e8e2d03 [gaim-migrate @ 4747]
Luke Schierer <lschiere@pidgin.im>
parents: 4421
diff changeset
2027 g_snprintf(buf, sizeof(buf), _("Setting Dir Info for %s:"), gc->username);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2028 label = gtk_label_new(buf);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2029 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2030 gtk_widget_show(label);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2031
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2032 b->first = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2033 b->middle = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2034 b->last = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2035 b->maiden = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2036 b->city = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2037 b->state = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2038 b->country = gtk_entry_new();
350
fd3cc0a28d5d [gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 349
diff changeset
2039 b->web = gtk_check_button_new_with_label(_("Allow Web Searches To Find Your Info"));
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2040
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2041 /* Line 1 */
350
fd3cc0a28d5d [gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 349
diff changeset
2042 label = gtk_label_new(_("First Name"));
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2043 gtk_widget_show(label);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2044
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2045 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2046 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2047 gtk_box_pack_end(GTK_BOX(hbox), b->first, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2048
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2049 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2050 gtk_widget_show(hbox);
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2051
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2052 /* Line 2 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2053 label = gtk_label_new(_("Middle Name"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2054 gtk_widget_show(label);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2055
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2056 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2057 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2058 gtk_box_pack_end(GTK_BOX(hbox), b->middle, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2059
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2060 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2061 gtk_widget_show(hbox);
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2062
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2063
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2064 /* Line 3 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2065 label = gtk_label_new(_("Last Name"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2066 gtk_widget_show(label);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2067
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2068 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2069 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2070 gtk_box_pack_end(GTK_BOX(hbox), b->last, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2071
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2072 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2073 gtk_widget_show(hbox);
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2074
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2075 /* Line 4 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2076 label = gtk_label_new(_("Maiden Name"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2077 gtk_widget_show(label);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2078
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2079 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2080 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2081 gtk_box_pack_end(GTK_BOX(hbox), b->maiden, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2082
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2083 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2084 gtk_widget_show(hbox);
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2085
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2086 /* Line 5 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2087 label = gtk_label_new(_("City"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2088 gtk_widget_show(label);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2089
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2090 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2091 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2092 gtk_box_pack_end(GTK_BOX(hbox), b->city, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2093
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2094 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2095 gtk_widget_show(hbox);
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2096
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2097 /* Line 6 */
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2098 label = gtk_label_new(_("State"));
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2099 gtk_widget_show(label);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2100
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2101 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2102 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2103 gtk_box_pack_end(GTK_BOX(hbox), b->state, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2104
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2105 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2106 gtk_widget_show(hbox);
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2107
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2108 /* Line 7 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2109 label = gtk_label_new(_("Country"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2110 gtk_widget_show(label);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2111
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2112 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2113 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2114 gtk_box_pack_end(GTK_BOX(hbox), b->country, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2115
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2116 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2117 gtk_widget_show(hbox);
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2118
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2119 /* Line 8 */
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2120
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2121 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2122 gtk_box_pack_start(GTK_BOX(hbox), b->web, TRUE, TRUE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2123 gtk_widget_show(hbox);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2124 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
484
a9e485c388c4 [gaim-migrate @ 494]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
2125
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2126 gtk_widget_show(b->first);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2127 gtk_widget_show(b->middle);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2128 gtk_widget_show(b->last);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2129 gtk_widget_show(b->maiden);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2130 gtk_widget_show(b->city);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2131 gtk_widget_show(b->state);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2132 gtk_widget_show(b->country);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2133 gtk_widget_show(b->web);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2134
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2135 /* And add the buttons */
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2136
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2137 bot = gtk_hbox_new(FALSE, 5);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2138 gtk_box_pack_start(GTK_BOX(fbox), bot, FALSE, FALSE, 0);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2139
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2140 b->save = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
4092
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
2141 gtk_box_pack_end(GTK_BOX(bot), b->save, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2142 g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_set_dir), b);
4092
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
2143
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2144 b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2145 gtk_box_pack_end(GTK_BOX(bot), b->cancel, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2146 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2147
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2148 gtk_window_set_focus(GTK_WINDOW(b->window), b->first);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2149
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2150 gtk_widget_show_all(b->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2151 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2152
149
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2153 void do_change_password(GtkWidget *widget, struct passwddlg *b)
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2154 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2155 const gchar *orig, *new1, *new2;
149
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2156
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2157 orig = gtk_entry_get_text(GTK_ENTRY(b->original));
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2158 new1 = gtk_entry_get_text(GTK_ENTRY(b->new1));
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2159 new2 = gtk_entry_get_text(GTK_ENTRY(b->new2));
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2160
4793
677d3cb193a1 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4787
diff changeset
2161 if (g_utf8_collate(new1, new2)) {
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
2162 do_error_dialog(_("New Passwords Do Not Match"), NULL, GAIM_ERROR);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2163 return;
149
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2164 }
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2165
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2166 if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) {
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
2167 do_error_dialog(_("Fill out all fields completely"), NULL, GAIM_ERROR);
149
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2168 return;
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2169 }
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2170
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2171 serv_change_passwd(b->gc, orig, new1);
4977
503f61301b81 [gaim-migrate @ 5312]
Luke Schierer <lschiere@pidgin.im>
parents: 4938
diff changeset
2172 g_snprintf(b->gc->account->password, sizeof(b->gc->account->password), "%s", new1);
503f61301b81 [gaim-migrate @ 5312]
Luke Schierer <lschiere@pidgin.im>
parents: 4938
diff changeset
2173 save_prefs();
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2174
149
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2175 destroy_dialog(NULL, b->window);
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2176 g_free(b);
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2177 }
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2178
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2179 void show_change_passwd(struct gaim_connection *gc)
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2180 {
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2181 GtkWidget *hbox;
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2182 GtkWidget *label;
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2183 GtkWidget *vbox;
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2184 GtkWidget *fbox;
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2185 GtkWidget *frame;
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2186 char buf[256];
454
c9d87901afff [gaim-migrate @ 464]
Rob Flynn <gaim@robflynn.com>
parents: 452
diff changeset
2187
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2188 struct passwddlg *b = g_new0(struct passwddlg, 1);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2189 b->gc = gc;
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2190
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
2191 GAIM_DIALOG(b->window);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2192 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
2193 gtk_window_set_role(GTK_WINDOW(b->window), "change_passwd");
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2194 gtk_window_set_title(GTK_WINDOW(b->window), _("Change Password"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2195 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2196 gtk_widget_realize(b->window);
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2197 dialogwindows = g_list_prepend(dialogwindows, b->window);
149
9d684979f507 [gaim-migrate @ 159]
Rob Flynn <gaim@robflynn.com>
parents: 146
diff changeset
2198
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2199 fbox = gtk_vbox_new(FALSE, 5);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2200 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2201 gtk_container_add(GTK_CONTAINER(b->window), fbox);
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2202
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2203 frame = gtk_frame_new(_("Change Password"));
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2204 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2205
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2206 vbox = gtk_vbox_new(FALSE, 5);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2207 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2208 gtk_container_add(GTK_CONTAINER(frame), vbox);
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2209
4472
e73c4e8e2d03 [gaim-migrate @ 4747]
Luke Schierer <lschiere@pidgin.im>
parents: 4421
diff changeset
2210 g_snprintf(buf, sizeof(buf), _("Changing password for %s:"), gc->username);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2211 label = gtk_label_new(buf);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2212 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2213
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2214 /* First Line */
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2215 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2216 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2217
350
fd3cc0a28d5d [gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 349
diff changeset
2218 label = gtk_label_new(_("Original Password"));
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2219 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2220
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2221 b->original = gtk_entry_new();
160
aaa8f0a2140e [gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 149
diff changeset
2222 gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2223 gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 0);
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2224
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2225 /* Next Line */
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2226 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2227 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
978
563c409e26a1 [gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 976
diff changeset
2228
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2229 label = gtk_label_new(_("New Password"));
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2230 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2231
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2232 b->new1 = gtk_entry_new();
160
aaa8f0a2140e [gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 149
diff changeset
2233 gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2234 gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 0);
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2235
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2236 /* Next Line */
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2237 hbox = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2238 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2239
475
f5772f2d83ee [gaim-migrate @ 485]
Rob Flynn <gaim@robflynn.com>
parents: 471
diff changeset
2240 label = gtk_label_new(_("New Password (again)"));
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2241 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2242
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2243 b->new2 = gtk_entry_new();
160
aaa8f0a2140e [gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 149
diff changeset
2244 gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2245 gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 0);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2246
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2247 /* Now do our row of buttons */
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2248 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2249 gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2250
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2251 b->ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
4092
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
2252 gtk_box_pack_end(GTK_BOX(hbox), b->ok, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2253 g_signal_connect(GTK_OBJECT(b->ok), "clicked", G_CALLBACK(do_change_password), b);
4092
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
2254
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2255 b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2256 gtk_box_pack_end(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2257 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2258
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2259 gtk_widget_show_all(b->window);
146
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2260 }
99248fb977c2 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 137
diff changeset
2261
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2262 void show_set_info(struct gaim_connection *gc)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2263 {
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2264 GtkWidget *buttons;
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2265 GtkWidget *label;
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2266 GtkWidget *vbox;
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2267 GtkTextBuffer *buffer;
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2268 GtkWidget *frame;
1292
cb84b5c6d9ab [gaim-migrate @ 1302]
Rob Flynn <gaim@robflynn.com>
parents: 1288
diff changeset
2269 gchar *buf;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2270 struct gaim_account *account;
1292
cb84b5c6d9ab [gaim-migrate @ 1302]
Rob Flynn <gaim@robflynn.com>
parents: 1288
diff changeset
2271
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2272 struct set_info_dlg *b = g_new0(struct set_info_dlg, 1);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2273 account = gc->account;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2274 b->account = account;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2275
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
2276 GAIM_DIALOG(b->window);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
2277 gtk_window_set_role(GTK_WINDOW(b->window), "set_info");
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2278 dialogwindows = g_list_prepend(dialogwindows, b->window);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2279 gtk_window_set_title(GTK_WINDOW(b->window), _("Set User Info"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2280 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 940
diff changeset
2281 gtk_widget_realize(b->window);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2282
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2283 vbox = gtk_vbox_new(FALSE, 5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2284 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2285 gtk_container_add(GTK_CONTAINER(b->window), vbox);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2286
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2287 buf = g_malloc(256);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2288 g_snprintf(buf, 256, _("Changing info for %s:"), account->username);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2289 label = gtk_label_new(buf);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2290 g_free(buf);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2291 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2292
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2293 frame = gtk_frame_new(NULL);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2294 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2295 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2296
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2297 b->text = gtk_text_view_new();
5105
4cfc49e31c2e [gaim-migrate @ 5468]
Luke Schierer <lschiere@pidgin.im>
parents: 5092
diff changeset
2298 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->text), GTK_WRAP_WORD_CHAR);
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2299 gtk_widget_set_size_request(b->text, 300, 200);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2300 buf = g_malloc(strlen(account->user_info) + 1);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2301 strncpy_nohtml(buf, account->user_info, strlen(account->user_info) + 1);
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2302 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(b->text));
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2303 gtk_text_buffer_set_text(buffer, buf, -1);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2304 g_free(buf);
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
2305 gtk_container_add(GTK_CONTAINER(frame), b->text);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2306 gtk_window_set_focus(GTK_WINDOW(b->window), b->text);
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2307
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2308 buttons = gtk_hbox_new(FALSE, 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2309 gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2310
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2311 b->save = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
4092
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
2312 gtk_box_pack_end(GTK_BOX(buttons), b->save, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2313 g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_save_info), b);
4092
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
2314
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2315 b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2316 gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2317 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2318
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2319 gtk_widget_show_all(b->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2320 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2321
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2322 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2323 /* The dialog for the info requests */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2324 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2325
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2326 static void info_dlg_free(GtkWidget *b, struct info_dlg *d)
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2327 {
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2328 if (g_slist_find(info_dlgs, d))
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2329 info_dlgs = g_slist_remove(info_dlgs, d);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2330 g_free(d->who);
1051
713b0e14e0a9 [gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1049
diff changeset
2331 g_free(d);
713b0e14e0a9 [gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1049
diff changeset
2332 }
713b0e14e0a9 [gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1049
diff changeset
2333
2791
8f6365332a05 [gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2785
diff changeset
2334 /* if away is 0, show regardless and try to get away message
8f6365332a05 [gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2785
diff changeset
2335 * 1, don't show if regular info isn't shown
8f6365332a05 [gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2785
diff changeset
2336 * 2, show regardless but don't try to get away message
8f6365332a05 [gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2785
diff changeset
2337 *
8f6365332a05 [gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2785
diff changeset
2338 * i wish this were my client. if i were i wouldn't have to deal with this shit.
8f6365332a05 [gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2785
diff changeset
2339 */
5136
381da05cb5ed [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5105
diff changeset
2340 void g_show_info_text(struct gaim_connection *gc, const char *who, int away, const char *info, ...)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2341 {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2342 GtkWidget *ok;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2343 GtkWidget *label;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2344 GtkWidget *text;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2345 GtkWidget *bbox;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2346 GtkWidget *sw;
1428
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
2347 gint options = 0;
2137
18722ae5b882 [gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2090
diff changeset
2348 char *more_info;
18722ae5b882 [gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2090
diff changeset
2349 va_list ap;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2350
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2351 struct info_dlg *b = find_info_dlg(gc, who);
2791
8f6365332a05 [gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2785
diff changeset
2352 if (!b && (away == 1))
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2353 return;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2354 if (!b) {
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2355 b = g_new0(struct info_dlg, 1);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2356 b->gc = gc;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2357 b->who = who ? g_strdup(normalize(who)) : NULL;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2358 info_dlgs = g_slist_append(info_dlgs, b);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2359
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2360 GAIM_DIALOG(b->window);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2361 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2362 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2363 gtk_widget_realize(GTK_WIDGET(b->window));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2364 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(info_dlg_free), b);
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2365
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2366 bbox = gtk_vbox_new(FALSE, 5);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2367 gtk_container_add(GTK_CONTAINER(b->window), bbox);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2368
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2369 label = gtk_label_new(_("Below are the results of your search: "));
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2370 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2371
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2372 sw = gtk_scrolled_window_new(NULL, NULL);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2373 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
3926
077bae9a0c88 [gaim-migrate @ 4098]
Rob Flynn <gaim@robflynn.com>
parents: 3922
diff changeset
2374 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2375 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2376
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2377 text = gtk_imhtml_new(NULL, NULL);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2378 b->text = text;
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2379 gtk_container_add(GTK_CONTAINER(sw), text);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2380 gtk_widget_set_size_request(sw, 300, 250);
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2381 gaim_setup_imhtml(text);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2382
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2383 ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2384 g_signal_connect_swapped(GTK_OBJECT(ok), "clicked", G_CALLBACK(gtk_widget_destroy),
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2385 GTK_OBJECT(b->window));
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2386 gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2387
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2388 gtk_widget_show_all(b->window);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2389 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2390
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2228
diff changeset
2391 if (convo_options & OPT_CONVO_IGNORE_COLOUR)
1428
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
2392 options ^= GTK_IMHTML_NO_COLOURS;
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2228
diff changeset
2393 if (convo_options & OPT_CONVO_IGNORE_FONTS)
1428
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
2394 options ^= GTK_IMHTML_NO_FONTS;
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2228
diff changeset
2395 if (convo_options & OPT_CONVO_IGNORE_SIZES)
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
2396 options ^= GTK_IMHTML_NO_SIZES;
1428
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
2397 options ^= GTK_IMHTML_NO_COMMENTS;
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
2398 options ^= GTK_IMHTML_NO_TITLE;
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
2399 options ^= GTK_IMHTML_NO_NEWLINE;
00b3d02a2168 [gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1399
diff changeset
2400 options ^= GTK_IMHTML_NO_SCROLL;
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2401
2856
b1e300a85678 [gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2851
diff changeset
2402 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, -1, options);
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2403
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2404 va_start(ap, info);
2137
18722ae5b882 [gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2090
diff changeset
2405 while ((more_info = va_arg(ap, char *)) != NULL)
2856
b1e300a85678 [gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2851
diff changeset
2406 gtk_imhtml_append_text(GTK_IMHTML(b->text), more_info, -1, options);
2137
18722ae5b882 [gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2090
diff changeset
2407 va_end(ap);
2773
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2408
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2409 if (away)
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2410 info_dlgs = g_slist_remove(info_dlgs, b);
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2411 else
a0fd8f91e294 [gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2763
diff changeset
2412 serv_get_away(gc, who);
247
f6e8ea29b24f [gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 245
diff changeset
2413 }
f6e8ea29b24f [gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 245
diff changeset
2414
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2415 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2416 /* The dialog for adding to permit/deny */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2417 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2418
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2419
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2420 static void do_add_perm(GtkWidget *w, struct addperm *p)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2421 {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2422
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2423 const char *who;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2424
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2425 who = gtk_entry_get_text(GTK_ENTRY(p->entry));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2426
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2427 if (!p->permit) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2428 if (gaim_privacy_deny_add(p->gc->account, who)) {
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
2429 serv_add_deny(p->gc, who);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
2430 build_block_list();
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
2431 gaim_blist_save();
1126
c8118e7ec981 [gaim-migrate @ 1136]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1125
diff changeset
2432 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2433 } else {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
2434 if (gaim_privacy_permit_add(p->gc->account, who)) {
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
2435 serv_add_permit(p->gc, who);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
2436 build_allow_list();
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
2437 gaim_blist_save();
1126
c8118e7ec981 [gaim-migrate @ 1136]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1125
diff changeset
2438 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2439 }
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2440
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2441 destroy_dialog(NULL, p->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2442 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2443
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2444
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2445
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
2446 void show_add_perm(struct gaim_connection *gc, char *who, gboolean permit)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2447 {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2448 GtkWidget *cancel;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2449 GtkWidget *add;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2450 GtkWidget *label;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2451 GtkWidget *bbox;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2452 GtkWidget *vbox;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2453 GtkWidget *topbox;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2454
486
1045f51bcae7 [gaim-migrate @ 496]
Rob Flynn <gaim@robflynn.com>
parents: 485
diff changeset
2455 struct addperm *p = g_new0(struct addperm, 1);
1072
81d19577285a [gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1057
diff changeset
2456 p->gc = gc;
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
2457 p->permit = permit;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2458
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
2459 GAIM_DIALOG(p->window);
487
e1021544e257 [gaim-migrate @ 497]
Rob Flynn <gaim@robflynn.com>
parents: 486
diff changeset
2460 gtk_container_set_border_width(GTK_CONTAINER(p->window), 5);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2461 gtk_window_set_resizable(GTK_WINDOW(p->window), FALSE);
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
2462 gtk_widget_realize(p->window);
487
e1021544e257 [gaim-migrate @ 497]
Rob Flynn <gaim@robflynn.com>
parents: 486
diff changeset
2463
486
1045f51bcae7 [gaim-migrate @ 496]
Rob Flynn <gaim@robflynn.com>
parents: 485
diff changeset
2464 dialogwindows = g_list_prepend(dialogwindows, p->window);
1045f51bcae7 [gaim-migrate @ 496]
Rob Flynn <gaim@robflynn.com>
parents: 485
diff changeset
2465
4107
06435b94c3d7 [gaim-migrate @ 4322]
Luke Schierer <lschiere@pidgin.im>
parents: 4094
diff changeset
2466 bbox = gtk_hbox_new(FALSE, 5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2467 topbox = gtk_hbox_new(FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2468 vbox = gtk_vbox_new(FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2469 p->entry = gtk_entry_new();
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2470
486
1045f51bcae7 [gaim-migrate @ 496]
Rob Flynn <gaim@robflynn.com>
parents: 485
diff changeset
2471 /* Build Add Button */
1045f51bcae7 [gaim-migrate @ 496]
Rob Flynn <gaim@robflynn.com>
parents: 485
diff changeset
2472
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
2473 if (permit)
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2474 add = gaim_pixbuf_button_from_stock(_("Permit"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL);
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
2475 else
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2476 add = gaim_pixbuf_button_from_stock(_("Deny"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2477 cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2478
486
1045f51bcae7 [gaim-migrate @ 496]
Rob Flynn <gaim@robflynn.com>
parents: 485
diff changeset
2479 /* End of Cancel Button */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2480 if (who != NULL)
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2481 gtk_entry_set_text(GTK_ENTRY(p->entry), who);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2482
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2483 /* Put the buttons in the box */
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2484
4107
06435b94c3d7 [gaim-migrate @ 4322]
Luke Schierer <lschiere@pidgin.im>
parents: 4094
diff changeset
2485 gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2486 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2487
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2488 label = gtk_label_new(_("Add"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2489 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2490 gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2491 /* And the boxes in the box */
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2492 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2493 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
4107
06435b94c3d7 [gaim-migrate @ 4322]
Luke Schierer <lschiere@pidgin.im>
parents: 4094
diff changeset
2494 topbox=gtk_hbox_new(FALSE, 5);
06435b94c3d7 [gaim-migrate @ 4322]
Luke Schierer <lschiere@pidgin.im>
parents: 4094
diff changeset
2495 gtk_box_pack_start(GTK_BOX(topbox), vbox, FALSE, FALSE, 5);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2496
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2497
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2498 /* Handle closes right */
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2499 g_signal_connect(GTK_OBJECT(p->window), "destroy", G_CALLBACK(destroy_dialog), p->window);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2500 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), p->window);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2501 g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_add_perm), p);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2502 g_signal_connect(GTK_OBJECT(p->entry), "activate", G_CALLBACK(do_add_perm), p);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2503
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2504 /* Finish up */
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
2505 if (permit)
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2506 gtk_window_set_title(GTK_WINDOW(p->window), _("Add Permit"));
1144
b1454d019277 [gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1141
diff changeset
2507 else
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2508 gtk_window_set_title(GTK_WINDOW(p->window), _("Add Deny"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2509 gtk_window_set_focus(GTK_WINDOW(p->window), p->entry);
4107
06435b94c3d7 [gaim-migrate @ 4322]
Luke Schierer <lschiere@pidgin.im>
parents: 4094
diff changeset
2510 gtk_container_add(GTK_CONTAINER(p->window), topbox);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2511 gtk_widget_realize(p->window);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2512
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2513 gtk_widget_show_all(p->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2514 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2515
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2516
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2517 /*------------------------------------------------------------------------*/
608
e33dfed611c9 [gaim-migrate @ 618]
Todd Kulesza <fflewddur>
parents: 607
diff changeset
2518 /* Functions Called To Add A Log */
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2519 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2520
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2521 void cancel_log(GtkWidget *widget, struct gaim_conversation *c)
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2522 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2523 struct gaim_gtk_conversation *gtkconv;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2524
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2525 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2526
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2527 if (gtkconv->toolbar.log) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2528 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
2529 FALSE);
608
e33dfed611c9 [gaim-migrate @ 618]
Todd Kulesza <fflewddur>
parents: 607
diff changeset
2530 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2531
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2532 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.log);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2533 gtk_widget_destroy(gtkconv->dialogs.log);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2534 gtkconv->dialogs.log = NULL;
608
e33dfed611c9 [gaim-migrate @ 618]
Todd Kulesza <fflewddur>
parents: 607
diff changeset
2535 }
e33dfed611c9 [gaim-migrate @ 618]
Todd Kulesza <fflewddur>
parents: 607
diff changeset
2536
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2537 void do_log(GtkWidget *w, struct gaim_conversation *c)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2538 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2539 struct gaim_gtk_conversation *gtkconv;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2540 struct log_conversation *l;
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2541 const char *file;
1035
80a47e3b1bca [gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1032
diff changeset
2542 char path[PATHSIZE];
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2543
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2544 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2545
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2546 if (!find_log_info(c->name)) {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2547 file = gtk_file_selection_get_filename(
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2548 GTK_FILE_SELECTION(gtkconv->dialogs.log));
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2549
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2550 strncpy(path, file, PATHSIZE - 1);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2551
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2552 if (file_is_dir(path, gtkconv->dialogs.log))
1035
80a47e3b1bca [gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1032
diff changeset
2553 return;
80a47e3b1bca [gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1032
diff changeset
2554
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2555 l = (struct log_conversation *)g_new0(struct log_conversation, 1);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2556 strcpy(l->name, gaim_conversation_get_name(c));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2557 strcpy(l->filename, file);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2558 log_conversations = g_list_append(log_conversations, l);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2559
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2560 if (c != NULL)
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2561 gaim_conversation_set_logging(c, TRUE);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2562 }
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2563
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2564 save_prefs();
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2565 cancel_log(NULL, c);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2566 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2567
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2568 void show_log_dialog(struct gaim_conversation *c)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2569 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2570 struct gaim_gtk_conversation *gtkconv;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2571 char *buf = g_malloc(BUF_LEN);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2572
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2573 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2574
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2575 if (!gtkconv->dialogs.log) {
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2576 gtkconv->dialogs.log = gtk_file_selection_new(_("Log Conversation"));
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2577
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2578 gtk_file_selection_hide_fileop_buttons(
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2579 GTK_FILE_SELECTION(gtkconv->dialogs.log));
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2580
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2581 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.log",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2582 gaim_home_dir(), normalize(c->name));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2583 g_object_set_data(G_OBJECT(gtkconv->dialogs.log), "dialog_type",
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2584 "log dialog");
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2585 gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log),
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2586 buf);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2587 g_signal_connect(G_OBJECT(gtkconv->dialogs.log), "delete_event",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2588 G_CALLBACK(delete_event_dialog), c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2589 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->ok_button), "clicked",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2590 G_CALLBACK(do_log), c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2591 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->cancel_button), "clicked",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2592 G_CALLBACK(cancel_log), c);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2593 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2594
25
c56db1b46b0d [gaim-migrate @ 34]
Rob Flynn <gaim@robflynn.com>
parents: 24
diff changeset
2595 g_free(buf);
c56db1b46b0d [gaim-migrate @ 34]
Rob Flynn <gaim@robflynn.com>
parents: 24
diff changeset
2596
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2597 gtk_widget_show(gtkconv->dialogs.log);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2598 gdk_window_raise(gtkconv->dialogs.log->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2599 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2600
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2601 /*------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2602 /* Find Buddy By Email */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2603 /*------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2604
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2605 void do_find_info(GtkWidget *w, struct findbyinfo *b)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2606 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2607 const char *first;
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2608 const char *middle;
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2609 const char *last;
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2610 const char *maiden;
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2611 const char *city;
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2612 const char *state;
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2613 const char *country;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2614
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2615 first = gtk_entry_get_text(GTK_ENTRY(b->firstentry));
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2616 middle = gtk_entry_get_text(GTK_ENTRY(b->middleentry));
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2617 last = gtk_entry_get_text(GTK_ENTRY(b->lastentry));
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2618 maiden = gtk_entry_get_text(GTK_ENTRY(b->maidenentry));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2619 city = gtk_entry_get_text(GTK_ENTRY(b->cityentry));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2620 state = gtk_entry_get_text(GTK_ENTRY(b->stateentry));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2621 country = gtk_entry_get_text(GTK_ENTRY(b->countryentry));
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2622
2393
a7ecfd3f7714 [gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2382
diff changeset
2623 serv_dir_search(b->gc, first, middle, last, maiden, city, state, country, "");
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2624 destroy_dialog(NULL, b->window);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2625 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2626
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2627 void do_find_email(GtkWidget *w, struct findbyemail *b)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2628 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2629 const char *email;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2630
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2631 email = gtk_entry_get_text(GTK_ENTRY(b->emailentry));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2632
2598
b2800bca74fe [gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2582
diff changeset
2633 serv_dir_search(b->gc, "", "", "", "", "", "", "", email);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2634
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2635 destroy_dialog(NULL, b->window);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2636 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2637
2393
a7ecfd3f7714 [gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2382
diff changeset
2638 void show_find_info(struct gaim_connection *gc)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2639 {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2640 GtkWidget *cancel;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2641 GtkWidget *ok;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2642 GtkWidget *label;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2643 GtkWidget *bbox;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2644 GtkWidget *vbox;
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2645 GtkWidget *hbox;
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2646 GtkWidget *fbox;
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2647 GtkWidget *frame;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2648
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2649 struct findbyinfo *b = g_new0(struct findbyinfo, 1);
2393
a7ecfd3f7714 [gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2382
diff changeset
2650 b->gc = gc;
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
2651 GAIM_DIALOG(b->window);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2652 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
2653 gtk_window_set_role(GTK_WINDOW(b->window), "find_info");
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2654
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2655 dialogwindows = g_list_prepend(dialogwindows, b->window);
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2656
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2657 frame = gtk_frame_new(_("Search for Buddy"));
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2658 fbox = gtk_vbox_new(FALSE, 5);
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2659
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2660 /* Build OK Button */
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2661
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2662 ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2663 cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2664
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2665 bbox = gtk_hbox_new(FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2666 vbox = gtk_vbox_new(FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2667 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2668
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2669 b->firstentry = gtk_entry_new();
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2670 b->middleentry = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2671 b->lastentry = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2672 b->maidenentry = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2673 b->cityentry = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2674 b->stateentry = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2675 b->countryentry = gtk_entry_new();
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2676
4333
cc2f780c0505 [gaim-migrate @ 4597]
Mark Doliner <mark@kingant.net>
parents: 4316
diff changeset
2677 gtk_box_pack_end(GTK_BOX(bbox), ok, FALSE, FALSE, 0);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2678 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2679
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2680 /* Line 1 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2681 label = gtk_label_new(_("First Name"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2682
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2683 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2684 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2685 gtk_box_pack_end(GTK_BOX(hbox), b->firstentry, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2686
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2687 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2688
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2689 /* Line 2 */
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2690
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2691 label = gtk_label_new(_("Middle Name"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2692
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2693 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2694 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2695 gtk_box_pack_end(GTK_BOX(hbox), b->middleentry, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2696
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2697 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2698
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2699 /* Line 3 */
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2700
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2701 label = gtk_label_new(_("Last Name"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2702
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2703 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2704 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2705 gtk_box_pack_end(GTK_BOX(hbox), b->lastentry, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2706
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2707 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2708
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2709 /* Line 4 */
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2710
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2711 label = gtk_label_new(_("Maiden Name"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2712
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2713 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2714 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2715 gtk_box_pack_end(GTK_BOX(hbox), b->maidenentry, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2716
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2717 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2718
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2719 /* Line 5 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2720
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2721 label = gtk_label_new(_("City"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2722
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2723 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2724 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2725 gtk_box_pack_end(GTK_BOX(hbox), b->cityentry, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2726
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2727 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2728
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2729 /* Line 6 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2730 label = gtk_label_new(_("State"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2731
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2732 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2733 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2734 gtk_box_pack_end(GTK_BOX(hbox), b->stateentry, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2735
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2736 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2737
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2738 /* Line 7 */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2739 label = gtk_label_new(_("Country"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2740
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2741 hbox = gtk_hbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2742 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2743 gtk_box_pack_end(GTK_BOX(hbox), b->countryentry, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2744
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2745 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2746
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2747 /* Merge The Boxes */
479
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2748
d4651fd334c1 [gaim-migrate @ 489]
Rob Flynn <gaim@robflynn.com>
parents: 478
diff changeset
2749 gtk_container_add(GTK_CONTAINER(frame), vbox);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2750 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2751 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 0);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2752
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2753 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2754 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2755 g_signal_connect(GTK_OBJECT(ok), "clicked", G_CALLBACK(do_find_info), b);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2756
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2757 gtk_window_set_title(GTK_WINDOW(b->window), _("Find Buddy By Info"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2758 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2759 gtk_container_add(GTK_CONTAINER(b->window), fbox);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2760 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2761 gtk_widget_realize(b->window);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2762
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2763 gtk_widget_show_all(b->window);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2764 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2765
1535
1e2cc8c8bf3c [gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
2766 void show_find_email(struct gaim_connection *gc)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2767 {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2768 GtkWidget *label;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2769 GtkWidget *bbox;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2770 GtkWidget *vbox;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2771 GtkWidget *frame;
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2772 GtkWidget *topbox;
444
e7885c54ed2f [gaim-migrate @ 454]
Rob Flynn <gaim@robflynn.com>
parents: 443
diff changeset
2773 GtkWidget *button;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2774
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2775 struct findbyemail *b = g_new0(struct findbyemail, 1);
1535
1e2cc8c8bf3c [gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
2776 if (g_slist_find(connections, gc))
1e2cc8c8bf3c [gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1499
diff changeset
2777 b->gc = gc;
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
2778 GAIM_DIALOG(b->window);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2779 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
2780 gtk_window_set_role(GTK_WINDOW(b->window), "find_email");
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2781 gtk_widget_realize(b->window);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2782 dialogwindows = g_list_prepend(dialogwindows, b->window);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2783 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2784 gtk_window_set_title(GTK_WINDOW(b->window), _("Find Buddy By Email"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2785
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2786 vbox = gtk_vbox_new(FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2787 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2788 gtk_container_add(GTK_CONTAINER(b->window), vbox);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2789
444
e7885c54ed2f [gaim-migrate @ 454]
Rob Flynn <gaim@robflynn.com>
parents: 443
diff changeset
2790 frame = gtk_frame_new(_("Search for Buddy"));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2791 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2792
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2793 topbox = gtk_hbox_new(FALSE, 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2794 gtk_container_add(GTK_CONTAINER(frame), topbox);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2795 gtk_container_set_border_width(GTK_CONTAINER(topbox), 5);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2796
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2797 label = gtk_label_new(_("Email"));
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2798 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 0);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2799
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2800 b->emailentry = gtk_entry_new();
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2801 gtk_box_pack_start(GTK_BOX(topbox), b->emailentry, TRUE, TRUE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2802 g_signal_connect(GTK_OBJECT(b->emailentry), "activate", G_CALLBACK(do_find_email), b);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2803 gtk_window_set_focus(GTK_WINDOW(b->window), b->emailentry);
1499
de0b946e86a4 [gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1488
diff changeset
2804
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2805 bbox = gtk_hbox_new(FALSE, 5);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2806 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
444
e7885c54ed2f [gaim-migrate @ 454]
Rob Flynn <gaim@robflynn.com>
parents: 443
diff changeset
2807
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2808 button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2809 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_find_email), b);
4094
3f15ccb54f95 [gaim-migrate @ 4309]
Luke Schierer <lschiere@pidgin.im>
parents: 4092
diff changeset
2810 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
3f15ccb54f95 [gaim-migrate @ 4309]
Luke Schierer <lschiere@pidgin.im>
parents: 4092
diff changeset
2811
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2812 button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
2813 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), b->window);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2814 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
2815
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2816 gtk_widget_show_all(b->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2817 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2818
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2819 /*------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2820 /* Link Dialog */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2821 /*------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2822
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2823 void cancel_link(GtkWidget *widget, struct gaim_conversation *c)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2824 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2825 struct gaim_gtk_conversation *gtkconv;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2826
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2827 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2828
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2829 if (gtkconv->toolbar.link) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2830 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2831 FALSE);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
2832 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2833
4685
794cc8ec1166 [gaim-migrate @ 4996]
Nathan Walp <nwalp@pidgin.im>
parents: 4667
diff changeset
2834 destroy_dialog(NULL, gtkconv->dialogs.link);
794cc8ec1166 [gaim-migrate @ 4996]
Nathan Walp <nwalp@pidgin.im>
parents: 4667
diff changeset
2835 gtkconv->dialogs.link = NULL;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2836 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2837
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2838 void do_insert_link(GtkWidget *w, int resp, struct linkdlg *b)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2839 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2840 struct gaim_gtk_conversation *gtkconv;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2841 char *open_tag;
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
2842 const char *urltext, *showtext;
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2843
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2844 gtkconv = GAIM_GTK_CONVERSATION(b->c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2845
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2846 if (resp == GTK_RESPONSE_OK) {
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2847
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2848 open_tag = g_malloc(2048);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2849
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2850 urltext = gtk_entry_get_text(GTK_ENTRY(b->url));
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2851 showtext = gtk_entry_get_text(GTK_ENTRY(b->text));
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2852
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2853 if (!strlen(showtext))
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2854 showtext = urltext;
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2855
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2856 g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2857 gaim_gtk_surround(gtkconv, open_tag, "</A>");
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2858
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2859 g_free(open_tag);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2860 }
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2861
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2862 if (gtkconv->toolbar.link) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2863 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2864 FALSE);
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2865 }
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2866
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2867 gtkconv->dialogs.link = NULL;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2868 destroy_dialog(NULL, b->window);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2869 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2870
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2871 void show_insert_link(GtkWidget *linky, struct gaim_conversation *c)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2872 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2873 struct gaim_gtk_conversation *gtkconv;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2874 struct gaim_gtk_window *gtkwin;
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2875 GtkWidget *table;
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2876 GtkWidget *label;
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2877 GtkWidget *hbox;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2878 GtkWidget *vbox;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2879
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2880 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2881 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c));
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2882
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2883 if (gtkconv->dialogs.link == NULL) {
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2884 struct linkdlg *a = g_new0(struct linkdlg, 1);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
2885 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2886
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2887 a->c = c;
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
2888 a->window = gtk_dialog_new_with_buttons(_("Insert Link"),
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
2889 GTK_WINDOW(gtkwin->window), 0, GTK_STOCK_CANCEL,
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2890 GTK_RESPONSE_CANCEL, _("Insert"), GTK_RESPONSE_OK, NULL);
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2891
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2892 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2893 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2894 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2895 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2896 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2897 gtk_container_set_border_width(
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2898 GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6);
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2899 gtk_window_set_role(GTK_WINDOW(a->window), "insert_link");
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2900
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2901 hbox = gtk_hbox_new(FALSE, 12);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2902 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2903 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2904 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2905
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2906 vbox = gtk_vbox_new(FALSE, 0);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2907 gtk_container_add(GTK_CONTAINER(hbox), vbox);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2908
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2909 label = gtk_label_new(_("Please enter the URL and description of "
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2910 "the link that you want to insert. The "
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2911 "description is optional.\n"));
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2912
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2913 gtk_widget_set_size_request(GTK_WIDGET(label), 335, -1);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2914 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2915 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2916 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2917
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2918 hbox = gtk_hbox_new(FALSE, 6);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2919 gtk_container_add(GTK_CONTAINER(vbox), hbox);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2920
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2921 g_signal_connect(G_OBJECT(a->window), "destroy",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2922 G_CALLBACK(destroy_dialog), a->window);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2923 g_signal_connect(G_OBJECT(a->window), "destroy",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2924 G_CALLBACK(free_dialog), a);
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2925 dialogwindows = g_list_prepend(dialogwindows, a->window);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2926
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2927 table = gtk_table_new(4, 2, FALSE);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2928 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2929 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2930 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2931 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2932
350
fd3cc0a28d5d [gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 349
diff changeset
2933 label = gtk_label_new(_("URL"));
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2934 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2935 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2936
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2937 a->url = gtk_entry_new();
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2938 gtk_table_attach_defaults(GTK_TABLE(table), a->url, 1, 2, 0, 1);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2939 gtk_widget_grab_focus(a->url);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2940
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2941 gtk_entry_set_activates_default (GTK_ENTRY(a->url), TRUE);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2942
350
fd3cc0a28d5d [gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 349
diff changeset
2943 label = gtk_label_new(_("Description"));
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2944 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2945 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2946
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2947 a->text = gtk_entry_new();
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2948 gtk_table_attach_defaults(GTK_TABLE(table), a->text, 1, 2, 1, 2);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2949 gtk_entry_set_activates_default (GTK_ENTRY(a->text), TRUE);
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2950
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2951 g_signal_connect(G_OBJECT(a->window), "response",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2952 G_CALLBACK(do_insert_link), a);
4262
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2953
7103653dd34e [gaim-migrate @ 4513]
Rob Flynn <gaim@robflynn.com>
parents: 4249
diff changeset
2954 a->toggle = linky;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2955 gtkconv->dialogs.link = a->window;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2956 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2957
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2958 gtk_widget_show_all(gtkconv->dialogs.link);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2959 gdk_window_raise(gtkconv->dialogs.link->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2960 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2961
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2962 /*------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2963 /* Color Selection Dialog */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2964 /*------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2965
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
2966 GtkWidget *fgcseld = NULL;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
2967 GtkWidget *bgcseld = NULL;
657
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
2968
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2969 void cancel_fgcolor(GtkWidget *widget, struct gaim_conversation *c)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2970 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2971 struct gaim_gtk_conversation *gtkconv;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2972
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2973 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2974
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2975 if (gtkconv->toolbar.fgcolor && widget) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2976 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
2977 FALSE);
61
72e6a6eb1852 [gaim-migrate @ 71]
Rob Flynn <gaim@robflynn.com>
parents: 38
diff changeset
2978 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2979
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2980 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2981 gtk_widget_destroy(gtkconv->dialogs.fg_color);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2982 gtkconv->dialogs.fg_color = NULL;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2983 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2984
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2985 void cancel_bgcolor(GtkWidget *widget, struct gaim_conversation *c)
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
2986 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2987 struct gaim_gtk_conversation *gtkconv;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2988
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2989 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2990
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2991 if (gtkconv->toolbar.bgcolor && widget) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
2992 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
2993 FALSE);
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
2994 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2995
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2996 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2997 gtk_widget_destroy(gtkconv->dialogs.bg_color);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
2998 gtkconv->dialogs.bg_color = NULL;
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
2999 }
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3000
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3001 void do_fgcolor(GtkWidget *widget, GtkColorSelection *colorsel)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3002 {
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3003 GdkColor text_color;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3004 struct gaim_conversation *c;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3005 struct gaim_gtk_conversation *gtkconv;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3006 char *open_tag;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3007
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3008 open_tag = g_malloc(30);
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3009
3557
1f026237d819 [gaim-migrate @ 3649]
Sean Egan <seanegan@gmail.com>
parents: 3554
diff changeset
3010 gtk_color_selection_get_current_color(colorsel, &text_color);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3011
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3012 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation");
411
a330017b3aa4 [gaim-migrate @ 421]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 401
diff changeset
3013 /* GTK_IS_EDITABLE(c->entry); huh? */
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
3014
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3015 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3016
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3017 gtkconv->fg_color = text_color;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3018 g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3019 text_color.red / 256,
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3020 text_color.green / 256,
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3021 text_color.blue / 256);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3022 gaim_gtk_surround(gtkconv, open_tag, "</FONT>");
5213
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3023
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3024 gaim_debug(GAIM_DEBUG_MISC, "fgcolor dialog", "#%02X%02X%02X\n",
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3025 text_color.red / 256,
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3026 text_color.green / 256,
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3027 text_color.blue / 256);
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
3028 g_free(open_tag);
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3029 cancel_fgcolor(NULL, c);
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3030 }
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3031
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3032 void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel)
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3033 {
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3034 GdkColor text_color;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3035 struct gaim_conversation *c;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3036 struct gaim_gtk_conversation *gtkconv;
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3037 char *open_tag;
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3038
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3039 open_tag = g_malloc(30);
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3040
3557
1f026237d819 [gaim-migrate @ 3649]
Sean Egan <seanegan@gmail.com>
parents: 3554
diff changeset
3041 gtk_color_selection_get_current_color(colorsel, &text_color);
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3042
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3043 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation");
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3044 /* GTK_IS_EDITABLE(c->entry); huh? */
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3045
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3046 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3047
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3048 gtkconv->bg_color = text_color;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3049 g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3050 text_color.red / 256,
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3051 text_color.green / 256,
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3052 text_color.blue / 256);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3053 gaim_gtk_surround(gtkconv, open_tag, "</BODY>");
5213
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3054 gaim_debug(GAIM_DEBUG_MISC, "bgcolor dialog", "#%02X%02X%02X\n",
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3055 text_color.red / 256,
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3056 text_color.green / 256,
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3057 text_color.blue / 256);
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
3058
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3059 g_free(open_tag);
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3060 cancel_bgcolor(NULL, c);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3061 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3062
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3063 void show_fgcolor_dialog(struct gaim_conversation *c, GtkWidget *color)
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3064 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3065 struct gaim_gtk_conversation *gtkconv;
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
3066 GtkWidget *colorsel;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3067
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3068 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3069
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3070 if (color == NULL) { /* we came from the prefs */
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3071 if (fgcseld)
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3072 return;
2209
9b8b32ae3b41 [gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2143
diff changeset
3073
657
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3074 fgcseld = gtk_color_selection_dialog_new(_("Select Text Color"));
4198
c46c977cfc9e [gaim-migrate @ 4429]
Luke Schierer <lschiere@pidgin.im>
parents: 4183
diff changeset
3075 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION
c46c977cfc9e [gaim-migrate @ 4429]
Luke Schierer <lschiere@pidgin.im>
parents: 4183
diff changeset
3076 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), &fgcolor);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3077 g_signal_connect(GTK_OBJECT(fgcseld), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3078 G_CALLBACK(destroy_colorsel), (void *)1);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3079 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button),
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3080 "clicked", G_CALLBACK(destroy_colorsel), (void *)1);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3081 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3082 G_CALLBACK(apply_color_dlg), (void *)1);
657
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3083 gtk_widget_realize(fgcseld);
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3084 gtk_widget_show(fgcseld);
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3085 gdk_window_raise(fgcseld->window);
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3086 return;
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3087 }
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3088
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3089 if (!gtkconv->dialogs.fg_color) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3090
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3091 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
3092 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel;
4198
c46c977cfc9e [gaim-migrate @ 4429]
Luke Schierer <lschiere@pidgin.im>
parents: 4183
diff changeset
3093 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
3094 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c);
2209
9b8b32ae3b41 [gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2143
diff changeset
3095
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3096 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.fg_color), "delete_event",
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3097 G_CALLBACK(delete_event_dialog), c);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3098 g_signal_connect(GTK_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
3099 "clicked", G_CALLBACK(do_fgcolor), colorsel);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3100 g_signal_connect(GTK_OBJECT
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3101 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->cancel_button),
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3102 "clicked", G_CALLBACK(cancel_fgcolor), c);
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3103
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3104 gtk_widget_realize(gtkconv->dialogs.fg_color);
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3105 }
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3106
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3107 gtk_widget_show(gtkconv->dialogs.fg_color);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3108 gdk_window_raise(gtkconv->dialogs.fg_color->window);
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3109 }
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3110
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3111 void show_bgcolor_dialog(struct gaim_conversation *c, GtkWidget *color)
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3112 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3113 struct gaim_gtk_conversation *gtkconv;
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3114 GtkWidget *colorsel;
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3115
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3116 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3117
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3118 if (color == NULL) { /* we came from the prefs */
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3119 if (bgcseld)
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3120 return;
2209
9b8b32ae3b41 [gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2143
diff changeset
3121
657
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3122 bgcseld = gtk_color_selection_dialog_new(_("Select Background Color"));
4198
c46c977cfc9e [gaim-migrate @ 4429]
Luke Schierer <lschiere@pidgin.im>
parents: 4183
diff changeset
3123 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION
c46c977cfc9e [gaim-migrate @ 4429]
Luke Schierer <lschiere@pidgin.im>
parents: 4183
diff changeset
3124 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), &bgcolor);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3125 g_signal_connect(GTK_OBJECT(bgcseld), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3126 G_CALLBACK(destroy_colorsel), NULL);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3127 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button),
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3128 "clicked", G_CALLBACK(destroy_colorsel), NULL);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3129 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3130 G_CALLBACK(apply_color_dlg), (void *)2);
657
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3131 gtk_widget_realize(bgcseld);
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3132 gtk_widget_show(bgcseld);
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3133 gdk_window_raise(bgcseld->window);
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3134 return;
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3135 }
4bbc103a3294 [gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 654
diff changeset
3136
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3137 if (!gtkconv->dialogs.bg_color) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3138
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3139 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
3140 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel;
4198
c46c977cfc9e [gaim-migrate @ 4429]
Luke Schierer <lschiere@pidgin.im>
parents: 4183
diff changeset
3141 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
3142 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c);
2209
9b8b32ae3b41 [gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2143
diff changeset
3143
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3144 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.bg_color), "delete_event",
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3145 G_CALLBACK(delete_event_dialog), c);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3146 g_signal_connect(GTK_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
3147 "clicked", G_CALLBACK(do_bgcolor), colorsel);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3148 g_signal_connect(GTK_OBJECT
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3149 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->cancel_button),
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3150 "clicked", G_CALLBACK(cancel_bgcolor), c);
858
3de6e98e8898 [gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 854
diff changeset
3151
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3152 gtk_widget_realize(gtkconv->dialogs.bg_color);
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
3153 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3154
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3155 gtk_widget_show(gtkconv->dialogs.bg_color);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3156 gdk_window_raise(gtkconv->dialogs.bg_color->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3157 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3158
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3159 /*------------------------------------------------------------------------*/
230
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3160 /* Font Selection Dialog */
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3161 /*------------------------------------------------------------------------*/
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3162
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3163 void cancel_font(GtkWidget *widget, struct gaim_conversation *c)
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3164 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3165 struct gaim_gtk_conversation *gtkconv;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3166
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3167 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3168
4685
794cc8ec1166 [gaim-migrate @ 4996]
Nathan Walp <nwalp@pidgin.im>
parents: 4667
diff changeset
3169 if (gtkconv->toolbar.font && widget) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3170 gtk_toggle_button_set_active(
4685
794cc8ec1166 [gaim-migrate @ 4996]
Nathan Walp <nwalp@pidgin.im>
parents: 4667
diff changeset
3171 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE);
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
3172 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3173
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3174 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3175 gtk_widget_destroy(gtkconv->dialogs.font);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3176 gtkconv->dialogs.font = NULL;
230
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3177 }
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3178
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3179 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel)
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3180 {
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3181 /* this could be expanded to include font size, weight, etc.
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3182 but for now only works with font face */
3473
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3183 int i = 0;
666
71ea550c22ac [gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 657
diff changeset
3184 char *fontname;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3185 struct gaim_conversation *c = g_object_get_data(G_OBJECT(fontsel),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3186 "gaim_conversation");
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3187
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3188 if (c) {
666
71ea550c22ac [gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 657
diff changeset
3189 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3190 while(fontname[i] && !isdigit(fontname[i])) {
3473
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3191 i++;
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3192 }
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3193 fontname[i] = 0;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3194 gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3195 } else {
334
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3196 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel));
3473
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3197 while(fontface[i] && !isdigit(fontname[i]) && i < sizeof(fontface)) {
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3198 fontface[i] = fontname[i];
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3199 i++;
234
985635758c33 [gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 231
diff changeset
3200 }
3473
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3201 fontface[i] = 0;
234
985635758c33 [gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 231
diff changeset
3202 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3203
311
0a8b4edc4732 [gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 308
diff changeset
3204 cancel_font(NULL, c);
230
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3205 }
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3206
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3207 void destroy_fontsel(GtkWidget *w, gpointer d)
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3208 {
334
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3209 gtk_widget_destroy(fontseld);
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3210 fontseld = NULL;
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3211 }
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3212
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3213 void show_font_dialog(struct gaim_conversation *c, GtkWidget *font)
230
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3214 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3215 struct gaim_gtk_conversation *gtkconv;
3473
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3216 char fonttif[128];
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3217
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3218 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3219
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3220 if (!font) { /* we came from the prefs dialog */
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3221 if (fontseld)
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3222 return;
350
fd3cc0a28d5d [gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 349
diff changeset
3223 fontseld = gtk_font_selection_dialog_new(_("Select Font"));
3473
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3224 if (fontface[0]) {
0073a014e55b [gaim-migrate @ 3524]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
3225 g_snprintf(fonttif, sizeof(fonttif), "%s 12", fontface);
2763
477a035d81e5 [gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2761
diff changeset
3226 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
3227 fonttif);
2763
477a035d81e5 [gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2761
diff changeset
3228 } else {
477a035d81e5 [gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2761
diff changeset
3229 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
3230 DEFAULT_FONT_FACE " 12");
2763
477a035d81e5 [gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2761
diff changeset
3231 }
334
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3232
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3233 g_signal_connect(GTK_OBJECT(fontseld), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3234 G_CALLBACK(destroy_fontsel), NULL);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3235 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button),
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3236 "clicked", G_CALLBACK(destroy_fontsel), NULL);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3237 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3238 G_CALLBACK(apply_font_dlg), fontseld);
334
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3239 gtk_widget_realize(fontseld);
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3240 gtk_widget_show(fontseld);
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3241 gdk_window_raise(fontseld->window);
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3242 return;
0fa651368776 [gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 311
diff changeset
3243 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3244
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3245 if (!gtkconv->dialogs.font) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3246 gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font"));
234
985635758c33 [gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 231
diff changeset
3247
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3248 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
3249
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3250 if (gtkconv->fontface[0]) {
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3251 g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3252 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
3253 fonttif);
2763
477a035d81e5 [gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2761
diff changeset
3254 } else {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3255 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
3256 DEFAULT_FONT_FACE);
2763
477a035d81e5 [gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2761
diff changeset
3257 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3258
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3259 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.font), "delete_event",
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3260 G_CALLBACK(delete_event_dialog), c);
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3261 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->ok_button),
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3262 "clicked", G_CALLBACK(apply_font), gtkconv->dialogs.font);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3263 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->cancel_button),
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3264 "clicked", G_CALLBACK(cancel_font), c);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3265
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3266 gtk_widget_realize(gtkconv->dialogs.font);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3267
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3268 }
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3269
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3270 gtk_widget_show(gtkconv->dialogs.font);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3271 gdk_window_raise(gtkconv->dialogs.font->window);
230
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3272 }
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3273
83dd297aa363 [gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 229
diff changeset
3274 /*------------------------------------------------------------------------*/
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3275 /* The dialog for new away messages */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3276 /*------------------------------------------------------------------------*/
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3277
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3278 static struct away_message *save_away_message(struct create_away *ca)
717
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3279 {
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3280 struct away_message *am;
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3281 gchar *away_message;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3282
832
0142b4c66394 [gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 825
diff changeset
3283 if (!ca->mess)
0142b4c66394 [gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 825
diff changeset
3284 am = g_new0(struct away_message, 1);
2851
6eb5bf5089f0 [gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2827
diff changeset
3285 else {
832
0142b4c66394 [gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 825
diff changeset
3286 am = ca->mess;
2851
6eb5bf5089f0 [gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2827
diff changeset
3287 }
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3288
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3289
717
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3290 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
3291 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
3292
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3293 g_snprintf(am->message, sizeof(am->message), "%s", away_message);
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3294 g_free(away_message);
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3295
832
0142b4c66394 [gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 825
diff changeset
3296 if (!ca->mess) {
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3297 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
3298 }
0142b4c66394 [gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 825
diff changeset
3299
717
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3300 save_prefs();
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3301 do_away_menu();
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3302
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3303 return am;
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3304 }
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3305
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3306 int check_away_mess(struct create_away *ca, int type)
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3307 {
4630
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4614
diff changeset
3308 char *msg;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3309 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
3310 /* We shouldn't allow a blank title */
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3311 do_error_dialog(_("You cannot save an away message with a blank title"),
5249
98fc2d44c2ba [gaim-migrate @ 5621]
Mark Doliner <mark@kingant.net>
parents: 5241
diff changeset
3312 _("Please give the message a title, or choose \"Use\" to use "
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3313 "without saving."), GAIM_ERROR);
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3314 return 0;
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3315 }
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3316
4630
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4614
diff changeset
3317 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
3318
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4614
diff changeset
3319 if (!msg && (type <= 1)) {
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3320 /* We shouldn't allow a blank message */
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3321 do_error_dialog(_("You cannot create an empty away message"), NULL, GAIM_ERROR);
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3322 return 0;
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3323 }
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3324
4630
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4614
diff changeset
3325 g_free(msg);
5cdfd20daa07 [gaim-migrate @ 4921]
Sean Egan <seanegan@gmail.com>
parents: 4614
diff changeset
3326
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3327 return 1;
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3328 }
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3329
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3330 void save_away_mess(GtkWidget *widget, struct create_away *ca)
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3331 {
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3332 if (!check_away_mess(ca, 1))
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3333 return;
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3334
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3335 save_away_message(ca);
717
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3336 destroy_dialog(NULL, ca->window);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3337 g_free(ca);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3338 }
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3339
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3340 void use_away_mess(GtkWidget *widget, struct create_away *ca)
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3341 {
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3342 static struct away_message am;
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3343 gchar *away_message;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3344
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3345 if (!check_away_mess(ca, 0))
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3346 return;
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3347
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3348 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
3349 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
3350
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3351 g_snprintf(am.message, sizeof(am.message), "%s", away_message);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3352 g_free(away_message);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3353
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3354 do_away_message(NULL, &am);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3355
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3356 destroy_dialog(NULL, ca->window);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3357 g_free(ca);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3358 }
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3359
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3360 void su_away_mess(GtkWidget *widget, struct create_away *ca)
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3361 {
1387
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3362 if (!check_away_mess(ca, 1))
595a844dbe0b [gaim-migrate @ 1397]
Rob Flynn <gaim@robflynn.com>
parents: 1369
diff changeset
3363 return;
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3364 do_away_message(NULL, save_away_message(ca));
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3365 destroy_dialog(NULL, ca->window);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3366 g_free(ca);
717
d7c39f12eb89 [gaim-migrate @ 727]
Todd Kulesza <fflewddur>
parents: 710
diff changeset
3367 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3368
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3369 void create_away_mess(GtkWidget *widget, void *dummy)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3370 {
439
9e5a6c35dd64 [gaim-migrate @ 449]
Rob Flynn <gaim@robflynn.com>
parents: 423
diff changeset
3371 GtkWidget *hbox;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3372 GtkWidget *titlebox;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3373 GtkWidget *tbox;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3374 GtkWidget *label;
439
9e5a6c35dd64 [gaim-migrate @ 449]
Rob Flynn <gaim@robflynn.com>
parents: 423
diff changeset
3375 GtkWidget *frame;
9e5a6c35dd64 [gaim-migrate @ 449]
Rob Flynn <gaim@robflynn.com>
parents: 423
diff changeset
3376 GtkWidget *fbox;
441
995b0fc981a3 [gaim-migrate @ 451]
Rob Flynn <gaim@robflynn.com>
parents: 440
diff changeset
3377 GtkWidget *button;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3378
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3379 struct create_away *ca = g_new0(struct create_away, 1);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3380
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3381 /* Set up window */
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
3382 GAIM_DIALOG(ca->window);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3383 gtk_widget_set_size_request(ca->window, -1, 250);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3384 gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
3385 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess");
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
3386 gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3387 g_signal_connect(GTK_OBJECT(ca->window), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3388 G_CALLBACK(destroy_dialog), ca->window);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3389 gtk_widget_realize(ca->window);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3390
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3391 tbox = gtk_vbox_new(FALSE, 5);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3392 gtk_container_add(GTK_CONTAINER(ca->window), tbox);
439
9e5a6c35dd64 [gaim-migrate @ 449]
Rob Flynn <gaim@robflynn.com>
parents: 423
diff changeset
3393
9e5a6c35dd64 [gaim-migrate @ 449]
Rob Flynn <gaim@robflynn.com>
parents: 423
diff changeset
3394 frame = gtk_frame_new(_("New away message"));
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3395 gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3396
1172
4135d8fc7b4e [gaim-migrate @ 1182]
Rob Flynn <gaim@robflynn.com>
parents: 1171
diff changeset
3397 fbox = gtk_vbox_new(FALSE, 5);
1224
0bbe3aaa6a3e [gaim-migrate @ 1234]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1216
diff changeset
3398 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3399 gtk_container_add(GTK_CONTAINER(frame), fbox);
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3400
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3401 titlebox = gtk_hbox_new(FALSE, 5);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3402 gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3403
350
fd3cc0a28d5d [gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 349
diff changeset
3404 label = gtk_label_new(_("Away title: "));
1172
4135d8fc7b4e [gaim-migrate @ 1182]
Rob Flynn <gaim@robflynn.com>
parents: 1171
diff changeset
3405 gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0);
1185
47cf56b72d4b [gaim-migrate @ 1195]
Rob Flynn <gaim@robflynn.com>
parents: 1174
diff changeset
3406
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3407 ca->entry = gtk_entry_new();
1172
4135d8fc7b4e [gaim-migrate @ 1182]
Rob Flynn <gaim@robflynn.com>
parents: 1171
diff changeset
3408 gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3409 gtk_widget_grab_focus(ca->entry);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3410
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3411 frame = gtk_frame_new(NULL);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3412 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3413 gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3414
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3415 ca->text = gtk_text_view_new();
5105
4cfc49e31c2e [gaim-migrate @ 5468]
Luke Schierer <lschiere@pidgin.im>
parents: 5092
diff changeset
3416 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
3417
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3418 gtk_container_add(GTK_CONTAINER(frame), ca->text);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3419
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3420 if (dummy) {
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3421 struct away_message *amt;
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3422 GtkTreeIter iter;
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3423 int pos = 0;
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3424 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
3425 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dummy));
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3426 GValue val = { 0, };
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3427 GtkTextIter start;
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3428 GtkTextBuffer *buffer;
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3429
3716
d7e83b4db191 [gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3671
diff changeset
3430 if (! gtk_tree_selection_get_selected (sel, (GtkTreeModel**)&ls, &iter))
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3431 return;
3716
d7e83b4db191 [gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3671
diff changeset
3432 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
3433 amt = g_value_get_pointer (&val);
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3434 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name);
4119
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3435 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ca->text));
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3436 gtk_text_buffer_get_iter_at_offset(buffer, &start, pos);
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3437 gtk_text_buffer_insert(buffer, &start, amt->message, strlen(amt->message));
a6825994ab3a [gaim-migrate @ 4336]
Luke Schierer <lschiere@pidgin.im>
parents: 4118
diff changeset
3438
3374
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3439 ca->mess = amt;
3cd2fbddf95a [gaim-migrate @ 3393]
Sean Egan <seanegan@gmail.com>
parents: 3367
diff changeset
3440 }
832
0142b4c66394 [gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 825
diff changeset
3441
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3442 hbox = gtk_hbox_new(FALSE, 5);
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3443 gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3444
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3445 button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3446 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca);
4092
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
3447 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
7edd02612086 [gaim-migrate @ 4307]
Luke Schierer <lschiere@pidgin.im>
parents: 4074
diff changeset
3448
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3449 button = gaim_pixbuf_button_from_stock(_("Save & Use"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3450 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(su_away_mess), ca);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3451 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
3452
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3453 button = gaim_pixbuf_button_from_stock(_("Use"), GTK_STOCK_EXECUTE, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3454 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(use_away_mess), ca);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3455 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
3456
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3457 button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3458 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), ca->window);
1213
1bdb08cc5d59 [gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1210
diff changeset
3459 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
3460
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3461 gtk_widget_show_all(ca->window);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3462 }
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3463
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3464 /* smiley dialog */
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3465
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3466 void close_smiley_dialog(GtkWidget *widget, struct gaim_conversation *c)
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3467 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3468 struct gaim_gtk_conversation *gtkconv;
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3469
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3470 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3471
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3472 if (gtkconv->toolbar.smiley) {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3473 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
3474 FALSE);
570
93c65fbaa622 [gaim-migrate @ 580]
Todd Kulesza <fflewddur>
parents: 567
diff changeset
3475 }
5275
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3476 if(gtkconv->dialogs.smiley) {
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3477 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley);
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3478 gtk_widget_destroy(gtkconv->dialogs.smiley);
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3479 gtkconv->dialogs.smiley = NULL;
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3480 }
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3481 }
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3482
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3483 void insert_smiley_text(GtkWidget *widget, struct gaim_conversation *c)
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3484 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3485 struct gaim_gtk_conversation *gtkconv;
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3486 char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text");
5275
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3487 GtkTextMark *select_mark, *insert_mark;
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3488 GtkTextIter select_iter, insert_iter;
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3489
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3490 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3491
5275
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3492 select_mark = gtk_text_buffer_get_selection_bound(gtkconv->entry_buffer);
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3493 insert_mark = gtk_text_buffer_get_insert(gtkconv->entry_buffer);
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3494
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3495 if(insert_mark != select_mark) { /* there is text selected */
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3496 gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &select_iter, select_mark);
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3497 gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &insert_iter, insert_mark);
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3498 gtk_text_buffer_delete(gtkconv->entry_buffer, &select_iter, &insert_iter);
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3499 }
8bd4f777489f [gaim-migrate @ 5647]
Nathan Walp <nwalp@pidgin.im>
parents: 5258
diff changeset
3500
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3501 gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1);
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3502 close_smiley_dialog(NULL, c);
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3503 }
579
7b501c39a6ee [gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 577
diff changeset
3504
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3505 static void add_smiley(struct gaim_conversation *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
3506 {
4061
890b4f1318df [gaim-migrate @ 4271]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4060
diff changeset
3507 GtkWidget *image;
4034
c14b687f4601 [gaim-migrate @ 4240]
Sean Egan <seanegan@gmail.com>
parents: 4011
diff changeset
3508 GtkWidget *button;
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3509 struct gaim_gtk_conversation *gtkconv = GAIM_GTK_CONVERSATION(c);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3510
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3511 image = gtk_image_new_from_file(filename);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3512 button = gtk_button_new();
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3513 gtk_container_add(GTK_CONTAINER(button), image);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3514 g_object_set_data(G_OBJECT(button), "smiley_text", face);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3515 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
3516
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3517 gtk_tooltips_set_tip(gtkconv->tooltips, button, face, NULL);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3518
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3519 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
3520
c14b687f4601 [gaim-migrate @ 4240]
Sean Egan <seanegan@gmail.com>
parents: 4011
diff changeset
3521 /* these look really weird with borders */
c14b687f4601 [gaim-migrate @ 4240]
Sean Egan <seanegan@gmail.com>
parents: 4011
diff changeset
3522 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3523
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3524 gtk_widget_show(button);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3525 }
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3526
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3527 static gboolean smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) {
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3528 while(list) {
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3529 GtkIMHtmlSmiley *cur = list->data;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3530 if(!strcmp(cur->file, smiley->file))
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3531 return FALSE;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3532 list = list->next;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3533 }
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3534 return TRUE;
4034
c14b687f4601 [gaim-migrate @ 4240]
Sean Egan <seanegan@gmail.com>
parents: 4011
diff changeset
3535 }
c14b687f4601 [gaim-migrate @ 4240]
Sean Egan <seanegan@gmail.com>
parents: 4011
diff changeset
3536
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3537 void show_smiley_dialog(struct gaim_conversation *c, GtkWidget *widget)
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3538 {
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3539 struct gaim_gtk_conversation *gtkconv;
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3540 GtkWidget *dialog;
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3541 GtkWidget *smiley_table = NULL;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3542 GSList *smileys, *unique_smileys = NULL;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3543 int width;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3544 int row = 0, col = 0;
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3545
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3546 gtkconv = GAIM_GTK_CONVERSATION(c);
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3547
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3548 if (gtkconv->dialogs.smiley)
558
f1b8f03db83f [gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 555
diff changeset
3549 return;
579
7b501c39a6ee [gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 577
diff changeset
3550
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3551 if(c->account)
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3552 smileys = get_proto_smileys(c->account->protocol);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3553 else
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
3554 smileys = get_proto_smileys(GAIM_PROTO_DEFAULT);
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3555
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3556 while(smileys) {
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3557 GtkIMHtmlSmiley *smiley = smileys->data;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3558 if(!smiley->hidden) {
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3559 if(smiley_is_unique(unique_smileys, smiley))
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3560 unique_smileys = g_slist_append(unique_smileys, smiley);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3561 }
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3562 smileys = smileys->next;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3563 }
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3564
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3565
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3566 width = floor(sqrt(g_slist_length(unique_smileys)));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3567
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
3568 GAIM_DIALOG(dialog);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3569 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
3570 gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog");
934
e5da96def4bd [gaim-migrate @ 944]
Rob Flynn <gaim@robflynn.com>
parents: 928
diff changeset
3571 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
3572
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3573 smiley_table = gtk_table_new(width, width, TRUE);
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3574
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3575 /* pack buttons */
4667
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3576
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3577 while(unique_smileys) {
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3578 GtkIMHtmlSmiley *smiley = unique_smileys->data;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3579 if(!smiley->hidden) {
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3580 add_smiley(c, smiley_table, row, col, smiley->file, smiley->smile);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3581 if(++col >= width) {
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3582 col = 0;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3583 row++;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3584 }
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3585 }
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3586 unique_smileys = unique_smileys->next;
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3587 }
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3588
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3589 gtk_container_add(GTK_CONTAINER(dialog), smiley_table);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3590
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3591 gtk_widget_show(smiley_table);
4bf9c6e8e432 [gaim-migrate @ 4978]
Nathan Walp <nwalp@pidgin.im>
parents: 4637
diff changeset
3592
579
7b501c39a6ee [gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 577
diff changeset
3593 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5);
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3594
605
1dbc72baf900 [gaim-migrate @ 615]
Todd Kulesza <fflewddur>
parents: 603
diff changeset
3595 /* connect signals */
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3596 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
3597 g_signal_connect(G_OBJECT(dialog), "delete_event",
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3598 G_CALLBACK(delete_event_dialog), c);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3599
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3600 /* show everything */
567
102afb84ce45 [gaim-migrate @ 577]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 558
diff changeset
3601 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!"));
584
56f7cb624e9e [gaim-migrate @ 594]
Todd Kulesza <fflewddur>
parents: 582
diff changeset
3602 gtk_widget_show_all(dialog);
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3603
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
3604 gtkconv->dialogs.smiley = dialog;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3605
555
66fe9f2c26ad [gaim-migrate @ 565]
Todd Kulesza <fflewddur>
parents: 550
diff changeset
3606 return;
558
f1b8f03db83f [gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 555
diff changeset
3607 }
710
efd72a117875 [gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 699
diff changeset
3608
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3609 static void do_alias_chat(GtkWidget *w, int resp, struct chat *chat)
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3610 {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3611 if(resp == GTK_RESPONSE_OK) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3612 GtkWidget *entry = g_object_get_data(G_OBJECT(w), "alias_entry");
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3613 const char *text = gtk_entry_get_text(GTK_ENTRY(entry));
5237
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
3614 gaim_blist_alias_chat(chat, text);
757d680f923d [gaim-migrate @ 5607]
Nathan Walp <nwalp@pidgin.im>
parents: 5236
diff changeset
3615 gaim_blist_save();
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3616 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3617 gtk_widget_destroy(w);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3618 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3619
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3620 static void
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3621 do_alias_buddy(GtkWidget *w, int resp, struct alias_dialog_info *info)
710
efd72a117875 [gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 699
diff changeset
3622 {
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3623 if (resp == GTK_RESPONSE_OK) {
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3624 const char *alias;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3625
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3626 alias = gtk_entry_get_text(GTK_ENTRY(info->alias_entry));
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3627
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3628 gaim_blist_alias_buddy(info->buddy, (alias && *alias) ? alias : NULL);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3629 serv_alias_buddy(info->buddy);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3630 gaim_blist_save();
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3631 }
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3632
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3633 destroy_dialog(NULL, alias_dialog);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3634 alias_dialog = NULL;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3635
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3636 g_free(info);
1397
d2799e0672ee [gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1396
diff changeset
3637 }
d2799e0672ee [gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1396
diff changeset
3638
5234
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3639 void alias_dialog_chat(struct chat *chat) {
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3640 GtkWidget *dialog;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3641 GtkWidget *hbox;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3642 GtkWidget *img;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3643 GtkWidget *vbox;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3644 GtkWidget *label;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3645 GtkWidget *alias_entry;
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3646
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3647 dialog = gtk_dialog_new_with_buttons(_("Alias Buddy"), NULL,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3648 GTK_DIALOG_NO_SEPARATOR,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3649 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3650 GTK_STOCK_OK, GTK_RESPONSE_OK,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3651 NULL);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3652 gtk_dialog_set_default_response(GTK_DIALOG(dialog),
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3653 GTK_RESPONSE_OK);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3654
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3655 gtk_container_set_border_width(GTK_CONTAINER(dialog), 6);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3656 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3657 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 12);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3658 gtk_container_set_border_width(
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3659 GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 6);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3660
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3661 /* The main hbox container. */
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3662 hbox = gtk_hbox_new(FALSE, 12);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3663 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3664
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3665 /* The dialog image. */
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3666 img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION,
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3667 GTK_ICON_SIZE_DIALOG);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3668 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3669 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3670
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3671 /* The main vbox container. */
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3672 vbox = gtk_vbox_new(FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3673 gtk_container_add(GTK_CONTAINER(hbox), vbox);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3674
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3675 /* Setup the label containing the description. */
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3676 label = gtk_label_new(_("Please enter an aliased name for this chat.\n"));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3677 gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3678
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3679 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3680 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3681 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3682
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3683 hbox = gtk_hbox_new(FALSE, 6);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3684 gtk_container_add(GTK_CONTAINER(vbox), hbox);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3685
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3686 /* The "Alias:" label. */
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3687 label = gtk_label_new(NULL);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3688 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Alias:"));
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3689 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3690 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3691
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3692 /* The alias entry field. */
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3693 alias_entry = gtk_entry_new();
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3694 gtk_box_pack_start(GTK_BOX(hbox), alias_entry, FALSE, FALSE, 0);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3695 gtk_entry_set_activates_default(GTK_ENTRY(alias_entry), TRUE);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3696 gtk_label_set_mnemonic_widget(GTK_LABEL(label), alias_entry);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3697
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3698 gtk_entry_set_text(GTK_ENTRY(alias_entry), chat->alias);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3699
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3700 g_object_set_data(G_OBJECT(dialog), "alias_entry", alias_entry);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3701
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3702 g_signal_connect(G_OBJECT(dialog), "response",
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3703 G_CALLBACK(do_alias_chat), chat);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3704
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3705 gtk_widget_show_all(dialog);
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3706 }
890b29f00b68 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
3707
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3708 void
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3709 alias_dialog_bud(struct buddy *b)
1397
d2799e0672ee [gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1396
diff changeset
3710 {
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3711 struct alias_dialog_info *info = NULL;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3712 struct gaim_gtk_buddy_list *gtkblist;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3713 GtkWidget *hbox;
1397
d2799e0672ee [gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1396
diff changeset
3714 GtkWidget *vbox;
d2799e0672ee [gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1396
diff changeset
3715 GtkWidget *label;
5050
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3716 GtkWidget *table;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3717 GtkWidget *img;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3718
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3719 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3720
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3721 if (!alias_dialog) {
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3722 info = g_new0(struct alias_dialog_info, 1);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3723 info->buddy = b;
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3724
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3725 alias_dialog = gtk_dialog_new_with_buttons(_("Alias Buddy"),
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3726 (gtkblist ? GTK_WINDOW(gtkblist->window) : NULL),
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3727 GTK_DIALOG_NO_SEPARATOR,
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3728 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3729 GTK_STOCK_OK, GTK_RESPONSE_OK,
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3730 NULL);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3731
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3732 gtk_dialog_set_default_response(GTK_DIALOG(alias_dialog),
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3733 GTK_RESPONSE_OK);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3734 gtk_container_set_border_width(GTK_CONTAINER(alias_dialog), 6);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3735 gtk_window_set_resizable(GTK_WINDOW(alias_dialog), FALSE);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3736 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(alias_dialog)->vbox), 12);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3737 gtk_container_set_border_width(
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3738 GTK_CONTAINER(GTK_DIALOG(alias_dialog)->vbox), 6);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3739
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3740 /* The main hbox container. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3741 hbox = gtk_hbox_new(FALSE, 12);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3742 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(alias_dialog)->vbox), hbox);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3743
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3744 /* The dialog image. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3745 img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION,
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3746 GTK_ICON_SIZE_DIALOG);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3747 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3748 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3749
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3750 /* The main vbox container. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3751 vbox = gtk_vbox_new(FALSE, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3752 gtk_container_add(GTK_CONTAINER(hbox), vbox);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3753
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3754 /* Setup the label containing the description. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3755 label = gtk_label_new(_("Please enter an aliased name for the "
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3756 "person below, or rename this contact "
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3757 "in your buddy list.\n"));
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3758 gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3759
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3760 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3761 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3762 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3763
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3764 hbox = gtk_hbox_new(FALSE, 6);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3765 gtk_container_add(GTK_CONTAINER(vbox), hbox);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3766
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3767 /* The table containing the entry widgets and labels. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3768 table = gtk_table_new(2, 2, FALSE);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3769 gtk_table_set_row_spacings(GTK_TABLE(table), 6);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3770 gtk_table_set_col_spacings(GTK_TABLE(table), 6);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3771 gtk_container_set_border_width(GTK_CONTAINER(table), 12);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3772 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3773
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3774 /* The "Screenname:" label. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3775 label = gtk_label_new(NULL);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3776 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:"));
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3777 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3778 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3779
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3780 /* The Screen name entry field. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3781 info->name_entry = gtk_entry_new();
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3782 gtk_table_attach_defaults(GTK_TABLE(table), info->name_entry,
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3783 1, 2, 0, 1);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3784 gtk_entry_set_activates_default(GTK_ENTRY(info->name_entry), TRUE);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3785 gtk_label_set_mnemonic_widget(GTK_LABEL(label), info->name_entry);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3786 gtk_entry_set_text(GTK_ENTRY(info->name_entry), info->buddy->name);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3787
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3788 /* The "Alias:" label. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3789 label = gtk_label_new(NULL);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3790 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Alias:"));
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3791 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3792 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3793
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3794 /* The alias entry field. */
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3795 info->alias_entry = gtk_entry_new();
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3796 gtk_table_attach_defaults(GTK_TABLE(table), info->alias_entry,
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3797 1, 2, 1, 2);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3798 gtk_entry_set_activates_default(GTK_ENTRY(info->alias_entry), TRUE);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3799 gtk_label_set_mnemonic_widget(GTK_LABEL(label), info->alias_entry);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3800
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3801 if (info->buddy->alias != NULL)
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3802 gtk_entry_set_text(GTK_ENTRY(info->alias_entry),
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3803 info->buddy->alias);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3804
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3805 g_signal_connect(G_OBJECT(alias_dialog), "response",
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3806 G_CALLBACK(do_alias_buddy), info);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3807 }
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3808
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3809 gtk_widget_show_all(alias_dialog);
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3810
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3811 if (info)
dfec167391a5 [gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
3812 gtk_widget_grab_focus(info->name_entry);
1397
d2799e0672ee [gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1396
diff changeset
3813 }
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3814
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3815
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3816 static gboolean dont_destroy(gpointer a, gpointer b, gpointer c)
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3817 {
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3818 return TRUE;
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3819 }
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3820
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3821 static void do_save_log(GtkWidget *w, GtkWidget *filesel)
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3822 {
3716
d7e83b4db191 [gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3671
diff changeset
3823 const char *file;
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3824 char path[PATHSIZE];
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3825 char buf[BUF_LONG];
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3826 char error[BUF_LEN];
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3827 FILE *fp_old, *fp_new;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3828 char filename[PATHSIZE];
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3829 char *name;
1722
1edc8b545d6f [gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1710
diff changeset
3830 char *tmp;
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3831
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3832 name = g_object_get_data(G_OBJECT(filesel), "name");
1722
1edc8b545d6f [gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1710
diff changeset
3833 tmp = gaim_user_dir();
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
3834 g_snprintf(filename, PATHSIZE, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp,
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3835 name ? normalize(name) : "system", name ? ".log" : "");
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3836
3716
d7e83b4db191 [gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3671
diff changeset
3837 file = (const char*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel));
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3838 strncpy(path, file, PATHSIZE - 1);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3839 if (file_is_dir(path, filesel))
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3840 return;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3841
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3842 if ((fp_new = fopen(path, "w")) == NULL) {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3843 g_snprintf(error, BUF_LONG,
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3844 _("Couldn't write to %s."), path);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3845 do_error_dialog(error, strerror(errno), GAIM_ERROR);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3846 return;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3847 }
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3848
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3849 if ((fp_old = fopen(filename, "r")) == NULL) {
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3850 g_snprintf(error, BUF_LONG,
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3851 _("Couldn't write to %s."), filename);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3852 do_error_dialog(error, strerror(errno), GAIM_ERROR);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3853 fclose(fp_new);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3854 return;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3855 }
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3856
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3857 while (fgets(buf, BUF_LONG, fp_old))
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3858 fputs(buf, fp_new);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3859 fclose(fp_old);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3860 fclose(fp_new);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3861
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3862 gtk_widget_destroy(filesel);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3863
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3864 return;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3865 }
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3866
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3867 static void show_save_log(GtkWidget *w, gchar *name)
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3868 {
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3869 GtkWidget *filesel;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3870 gchar buf[BUF_LEN];
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3871
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
3872 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s%s", gaim_home_dir(),
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3873 name ? normalize(name) : "system", name ? ".log" : "");
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3874
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
3875 filesel = gtk_file_selection_new(_("Save Log File"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3876 g_signal_connect(GTK_OBJECT(filesel), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3877 G_CALLBACK(destroy_dialog), filesel);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3878
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3879 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel));
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3880 gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3881 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button),
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3882 "clicked", G_CALLBACK(do_save_log), filesel);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3883 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3884 "clicked", G_CALLBACK(destroy_dialog), filesel);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3885 g_object_set_data(G_OBJECT(filesel), "name", name);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3886
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3887 gtk_widget_realize(filesel);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3888 gtk_widget_show(filesel);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3889
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3890 return;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3891 }
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3892
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3893 static void do_clear_log_file(GtkWidget *w, gchar *name)
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3894 {
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3895 gchar buf[256];
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3896 gchar filename[256];
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3897 GtkWidget *window;
1722
1edc8b545d6f [gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1710
diff changeset
3898 char *tmp;
1edc8b545d6f [gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1710
diff changeset
3899
1edc8b545d6f [gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1710
diff changeset
3900 tmp = gaim_user_dir();
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
3901 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp,
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3902 name ? normalize(name) : "system", name ? ".log" : "");
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3903
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3904 if ((remove(filename)) == -1) {
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3905 g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename);
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
3906 do_error_dialog(buf, strerror(errno), GAIM_ERROR);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3907 }
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3908
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3909 window = g_object_get_data(G_OBJECT(w), "log_window");
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3910 destroy_dialog(NULL, window);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3911 }
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3912
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3913 static void show_clear_log(GtkWidget *w, gchar *name)
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3914 {
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3915 GtkWidget *window;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3916 GtkWidget *box;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3917 GtkWidget *hbox;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3918 GtkWidget *button;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3919 GtkWidget *label;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3920 GtkWidget *hsep;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3921
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
3922 GAIM_DIALOG(window);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
3923 gtk_window_set_role(GTK_WINDOW(window), "dialog");
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
3924 gtk_window_set_title(GTK_WINDOW(window), _("Clear Log"));
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3925 gtk_container_set_border_width(GTK_CONTAINER(window), 10);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3926 gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3927 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3928 gtk_widget_realize(window);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3929
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3930 box = gtk_vbox_new(FALSE, 5);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3931 gtk_container_add(GTK_CONTAINER(window), box);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3932
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3933 label = gtk_label_new(_("Really clear log?"));
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3934 gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 15);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3935
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3936 hsep = gtk_hseparator_new();
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3937 gtk_box_pack_start(GTK_BOX(box), hsep, FALSE, FALSE, 0);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3938
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3939 hbox = gtk_hbox_new(FALSE, 0);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2370
diff changeset
3940 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3941
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3942 button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3943 g_object_set_data(G_OBJECT(button), "log_window", g_object_get_data(G_OBJECT(w),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3944 "log_window"));
4333
cc2f780c0505 [gaim-migrate @ 4597]
Mark Doliner <mark@kingant.net>
parents: 4316
diff changeset
3945 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_clear_log_file), name);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3946 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3947 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3948
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
3949 button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3950 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3951 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3952
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3953 gtk_widget_show_all(window);
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3954
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3955 return;
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3956 }
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
3957
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3958 static void log_show_convo(struct view_log *view)
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3959 {
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3960 gchar buf[BUF_LONG];
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3961 FILE *fp;
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
3962 char filename[256];
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
3963 int i=0;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
3964 GString *string;
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
3965 guint block;
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
3966
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3967 string = g_string_new("");
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3968
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
3969 if (view->name) {
1634
d029dc28a61e [gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1535
diff changeset
3970 char *tmp = gaim_user_dir();
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
3971 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(view->name));
1634
d029dc28a61e [gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1535
diff changeset
3972 } else {
d029dc28a61e [gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1535
diff changeset
3973 char *tmp = gaim_user_dir();
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
3974 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "system", tmp);
1634
d029dc28a61e [gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1535
diff changeset
3975 }
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3976 if ((fp = fopen(filename, "r")) == NULL) {
4923
e96261d0dba8 [gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4918
diff changeset
3977 if (view->name) {
e96261d0dba8 [gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4918
diff changeset
3978 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s."), filename);
e96261d0dba8 [gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4918
diff changeset
3979 do_error_dialog(buf, strerror(errno), GAIM_ERROR);
e96261d0dba8 [gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4918
diff changeset
3980 }
e96261d0dba8 [gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4918
diff changeset
3981 /* If the system log doesn't exist.. no message just show empty system log window.
e96261d0dba8 [gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4918
diff changeset
3982 That way user knows that the log is empty :)
e96261d0dba8 [gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4918
diff changeset
3983 */
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3984 return;
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3985 }
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
3986
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
3987 gtk_widget_set_sensitive(view->bbox, FALSE);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
3988 g_signal_handlers_disconnect_by_func(G_OBJECT(view->window),
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3989 G_CALLBACK(destroy_dialog), view->window);
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3990 block = g_signal_connect(GTK_OBJECT(view->window), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
3991 G_CALLBACK(dont_destroy), view->window);
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
3992
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
3993 fseek(fp, view->offset, SEEK_SET);
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
3994 gtk_imhtml_clear(GTK_IMHTML(view->layout));
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
3995 /*
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
3996 while (gtk_events_pending())
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
3997 gtk_main_iteration();
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
3998 */
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
3999
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4000 while (fgets(buf, BUF_LONG, fp) && !strstr(buf, "---- New C")) {
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4001 i++;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4002 if (strlen(buf) >= 5 && (!strncmp(buf + strlen(buf) - 5, "<BR>\n", 5)))
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4003 /* take off the \n */
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4004 buf[strlen(buf) - 1] = '\0';
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4005
2642
b6cf22276d4b [gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2623
diff changeset
4006 /* don't lose the thirtieth line of conversation. thanks FeRD */
b6cf22276d4b [gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2623
diff changeset
4007 g_string_append(string, buf);
b6cf22276d4b [gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2623
diff changeset
4008
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4009 if (i == 30) {
2856
b1e300a85678 [gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2851
diff changeset
4010 gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options);
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4011 g_string_free(string, TRUE);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4012 string = g_string_new("");
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4013 /* you can't have these anymore. if someone clicks on another item while one is
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4014 * drawing, it will try to move to that item, and that causes problems here.
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4015 while (gtk_events_pending())
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4016 gtk_main_iteration();
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4017 */
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4018 i = 0;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4019 }
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4020
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4021 }
2856
b1e300a85678 [gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2851
diff changeset
4022 gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options);
b1e300a85678 [gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2851
diff changeset
4023 gtk_imhtml_append_text(GTK_IMHTML(view->layout), "<BR>", -1, view->options);
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4024
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4025 gtk_widget_set_sensitive(view->bbox, TRUE);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4026 g_signal_handler_disconnect(G_OBJECT(view->window), block);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4027 g_signal_connect(GTK_OBJECT(view->window), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4028 G_CALLBACK(destroy_dialog), view->window);
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4029 g_string_free(string, TRUE);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4030 fclose(fp);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4031 }
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4032
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4033 static void log_select_convo(GtkTreeSelection *sel, GtkTreeModel *model)
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4034 {
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4035 GValue val = { 0, };
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4036 GtkTreeIter iter;
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4037
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4038 if(!gtk_tree_selection_get_selected(sel, &model, &iter))
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4039 return;
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4040 gtk_tree_model_get_value(model, &iter, 1, &val);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4041 log_show_convo(g_value_get_pointer(&val));
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4042 }
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4043
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4044 static void des_view_item(GtkObject *obj, struct view_log *view)
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4045 {
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4046 if (view->name)
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4047 g_free(view->name);
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4048 g_free(view);
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4049 }
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4050
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4051 static void des_log_win(GObject *win, gpointer data)
2623
66164831c228 [gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2621
diff changeset
4052 {
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4053 char *x = g_object_get_data(win, "log_window");
2623
66164831c228 [gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2621
diff changeset
4054 if (x)
66164831c228 [gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2621
diff changeset
4055 g_free(x);
4874
f98467b35b95 [gaim-migrate @ 5204]
Nathan Walp <nwalp@pidgin.im>
parents: 4793
diff changeset
4056 x = g_object_get_data(win, "name");
f98467b35b95 [gaim-migrate @ 5204]
Nathan Walp <nwalp@pidgin.im>
parents: 4793
diff changeset
4057 if (x)
f98467b35b95 [gaim-migrate @ 5204]
Nathan Walp <nwalp@pidgin.im>
parents: 4793
diff changeset
4058 g_free(x);
2623
66164831c228 [gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2621
diff changeset
4059 }
66164831c228 [gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2621
diff changeset
4060
3484
5d1dff030d8b [gaim-migrate @ 3538]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
4061 void conv_show_log(GtkWidget *w, gpointer data)
5d1dff030d8b [gaim-migrate @ 3538]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
4062 {
5d1dff030d8b [gaim-migrate @ 3538]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
4063 char *name = g_strdup(data);
5d1dff030d8b [gaim-migrate @ 3538]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
4064 show_log(name);
5d1dff030d8b [gaim-migrate @ 3538]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
4065 g_free(name);
5d1dff030d8b [gaim-migrate @ 3538]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
4066 }
5d1dff030d8b [gaim-migrate @ 3538]
Sean Egan <seanegan@gmail.com>
parents: 3474
diff changeset
4067
3532
369d419c8a29 [gaim-migrate @ 3606]
Sean Egan <seanegan@gmail.com>
parents: 3523
diff changeset
4068 void chat_show_log(GtkWidget *w, gpointer data)
369d419c8a29 [gaim-migrate @ 3606]
Sean Egan <seanegan@gmail.com>
parents: 3523
diff changeset
4069 {
3716
d7e83b4db191 [gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 3671
diff changeset
4070 char *name = g_strdup_printf("%s.chat", (char*)data);
3532
369d419c8a29 [gaim-migrate @ 3606]
Sean Egan <seanegan@gmail.com>
parents: 3523
diff changeset
4071 show_log(name);
369d419c8a29 [gaim-migrate @ 3606]
Sean Egan <seanegan@gmail.com>
parents: 3523
diff changeset
4072 g_free(name);
369d419c8a29 [gaim-migrate @ 3606]
Sean Egan <seanegan@gmail.com>
parents: 3523
diff changeset
4073 }
369d419c8a29 [gaim-migrate @ 3606]
Sean Egan <seanegan@gmail.com>
parents: 3523
diff changeset
4074
2623
66164831c228 [gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2621
diff changeset
4075 void show_log(char *nm)
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4076 {
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4077 gchar filename[256];
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4078 gchar buf[BUF_LONG];
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4079 FILE *fp;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4080 GtkWidget *window;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4081 GtkWidget *box;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4082 GtkWidget *hbox;
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4083 GtkWidget *bbox;
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4084 GtkWidget *sw;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4085 GtkWidget *layout;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4086 GtkWidget *close_button;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4087 GtkWidget *clear_button;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4088 GtkWidget *save_button;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4089 GtkListStore *list_store;
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4090 GtkWidget *tree_view;
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4091 GtkTreeSelection *sel = NULL;
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4092 GtkTreePath *path;
2612
7938953630fa [gaim-migrate @ 2625]
Rob Flynn <gaim@robflynn.com>
parents: 2607
diff changeset
4093 GtkWidget *item = NULL;
7938953630fa [gaim-migrate @ 2625]
Rob Flynn <gaim@robflynn.com>
parents: 2607
diff changeset
4094 GtkWidget *last = NULL;
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4095 GtkWidget *frame;
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4096 struct view_log *view;
2623
66164831c228 [gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2621
diff changeset
4097 char *name = nm ? g_strdup(nm) : NULL;
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4098
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4099 int options;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4100 guint block;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4101 char convo_start[32];
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4102 long offset = 0;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4103
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4104 options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL;
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2228
diff changeset
4105 if (convo_options & OPT_CONVO_IGNORE_COLOUR)
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4106 options ^= GTK_IMHTML_NO_COLOURS;
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2228
diff changeset
4107 if (convo_options & OPT_CONVO_IGNORE_FONTS)
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4108 options ^= GTK_IMHTML_NO_FONTS;
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2228
diff changeset
4109 if (convo_options & OPT_CONVO_IGNORE_SIZES)
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4110 options ^= GTK_IMHTML_NO_SIZES;
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4111
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4112 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4113 g_object_set_data(G_OBJECT(window), "name", name);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4114 g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
4115 gtk_window_set_role(GTK_WINDOW(window), "log");
1648
09445224e2d9 [gaim-migrate @ 1658]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1634
diff changeset
4116 if (name)
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
4117 g_snprintf(buf, BUF_LONG, _("Conversations with %s"), name);
1648
09445224e2d9 [gaim-migrate @ 1658]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1634
diff changeset
4118 else
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
4119 g_snprintf(buf, BUF_LONG, _("System Log"));
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4120 gtk_window_set_title(GTK_WINDOW(window), buf);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
4121 gtk_container_set_border_width(GTK_CONTAINER(window), 10);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4122 gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4123 block = g_signal_connect(GTK_OBJECT(window), "delete_event",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4124 G_CALLBACK(dont_destroy), window);
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4125 gtk_widget_realize(window);
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4126
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4127 layout = gtk_imhtml_new(NULL, NULL);
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4128 bbox = gtk_hbox_new(FALSE, 0);
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4129
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
4130 box = gtk_vbox_new(FALSE, 5);
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4131 gtk_container_add(GTK_CONTAINER(window), box);
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4132
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4133 hbox = gtk_hbox_new(FALSE, 5);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4134 gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4135
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4136 if (name) {
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4137 char *tmp = gaim_user_dir();
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3572
diff changeset
4138 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(name));
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4139 if ((fp = fopen(filename, "r")) == NULL) {
4472
e73c4e8e2d03 [gaim-migrate @ 4747]
Luke Schierer <lschiere@pidgin.im>
parents: 4421
diff changeset
4140 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s"), filename);
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3374
diff changeset
4141 do_error_dialog(buf, strerror(errno), GAIM_ERROR);
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4142 return;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4143 }
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4144
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4145 list_store = gtk_list_store_new(2,
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4146 G_TYPE_STRING,
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4147 G_TYPE_POINTER);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4148
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4149 tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4150
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4151 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4152
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4153 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4154 -1, "", gtk_cell_renderer_text_new(), "text", 0, NULL);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4155
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4156 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4157 g_signal_connect(G_OBJECT(sel), "changed",
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4158 G_CALLBACK(log_select_convo),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4159 NULL);
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4160
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4161 frame = gtk_frame_new(_("Date"));
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4162 gtk_widget_show(frame);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4163
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4164 sw = gtk_scrolled_window_new(NULL, NULL);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4165 gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4166 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), tree_view);
2613
6f7e1fc3e132 [gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2612
diff changeset
4167 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
6f7e1fc3e132 [gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2612
diff changeset
4168 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4169 gtk_widget_set_size_request(sw, 220, 220);
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4170 gtk_container_add(GTK_CONTAINER(frame), sw);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4171 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4172
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4173 while (fgets(buf, BUF_LONG, fp)) {
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4174 if (strstr(buf, "---- New C")) {
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4175 int length;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4176 char *temp = strchr(buf, '@');
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4177 GtkTreeIter iter;
2612
7938953630fa [gaim-migrate @ 2625]
Rob Flynn <gaim@robflynn.com>
parents: 2607
diff changeset
4178
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4179 if (temp == NULL || strlen(temp) < 2)
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4180 continue;
2612
7938953630fa [gaim-migrate @ 2625]
Rob Flynn <gaim@robflynn.com>
parents: 2607
diff changeset
4181
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4182 temp++;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4183 length = strcspn(temp, "-");
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4184 if (length > 31) length = 31;
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4185
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4186 offset = ftell(fp);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4187 g_snprintf(convo_start, length, "%s", temp);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4188 gtk_list_store_append(list_store, &iter);
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4189 view = g_new0(struct view_log, 1);
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4190 view->options = options;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4191 view->offset = offset;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4192 view->name = g_strdup(name);
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4193 view->bbox = bbox;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4194 view->window = window;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4195 view->layout = layout;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4196 gtk_list_store_set(list_store, &iter,
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4197 0, convo_start,
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4198 1, view,
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4199 -1);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4200 g_signal_connect(G_OBJECT(window), "destroy",
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4201 G_CALLBACK(des_view_item), view);
2612
7938953630fa [gaim-migrate @ 2625]
Rob Flynn <gaim@robflynn.com>
parents: 2607
diff changeset
4202 last = item;
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4203 }
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4204 }
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4205 fclose(fp);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4206
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4207 path = gtk_tree_path_new_first();
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4208 gtk_tree_selection_select_path(sel, path);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4209 gtk_tree_path_free(path);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4210
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4211 g_object_unref(G_OBJECT(list_store));
2612
7938953630fa [gaim-migrate @ 2625]
Rob Flynn <gaim@robflynn.com>
parents: 2607
diff changeset
4212 }
7938953630fa [gaim-migrate @ 2625]
Rob Flynn <gaim@robflynn.com>
parents: 2607
diff changeset
4213
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4214
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4215 g_signal_handler_disconnect(GTK_OBJECT(window), block);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4216 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window);
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4217
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4218 frame = gtk_frame_new(_("Conversation"));
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4219 gtk_widget_show(frame);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4220
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4221 sw = gtk_scrolled_window_new(NULL, NULL);
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4222 gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4223 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
4333
cc2f780c0505 [gaim-migrate @ 4597]
Mark Doliner <mark@kingant.net>
parents: 4316
diff changeset
4224 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4225 gtk_widget_set_size_request(sw, 390, 220);
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4226 gtk_container_add(GTK_CONTAINER(frame), sw);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4227 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4228
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4229 g_signal_connect(GTK_OBJECT(layout), "url_clicked", G_CALLBACK(open_url), NULL);
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4230 gtk_container_add(GTK_CONTAINER(sw), layout);
1815
f15d449b3167 [gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1805
diff changeset
4231 gaim_setup_imhtml(layout);
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4232
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4233 gtk_box_pack_start(GTK_BOX(box), bbox, FALSE, FALSE, 0);
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4234 gtk_widget_set_sensitive(bbox, FALSE);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
4235
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4236 close_button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL);
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4237 gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4238 g_signal_connect(GTK_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
4239
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4240 clear_button = gaim_pixbuf_button_from_stock(_("Clear"), GTK_STOCK_CLEAR, GAIM_BUTTON_HORIZONTAL);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4241 g_object_set_data(G_OBJECT(clear_button), "log_window", window);
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4242 gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4243 g_signal_connect(GTK_OBJECT(clear_button), "clicked", G_CALLBACK(show_clear_log), name);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
4244
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4245 save_button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4246 gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4247 g_signal_connect(GTK_OBJECT(save_button), "clicked", G_CALLBACK(show_save_log), name);
1488
55246babdeb3 [gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1484
diff changeset
4248
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4249 gtk_widget_show_all(window);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4250
2570
075011d08d1d [gaim-migrate @ 2583]
Rob Flynn <gaim@robflynn.com>
parents: 2564
diff changeset
4251 if (!name) {
2621
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4252 view = g_new0(struct view_log, 1);
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4253 view->options = options;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4254 view->name = NULL;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4255 view->bbox = bbox;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4256 view->window = window;
f8b02cf4af94 [gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2613
diff changeset
4257 view->layout = layout;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4258 log_show_convo(view);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4259 g_signal_connect(GTK_OBJECT(layout), "destroy", G_CALLBACK(des_view_item), view);
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4260 }
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4261
2602
c9192dea2bb1 [gaim-migrate @ 2615]
Rob Flynn <gaim@robflynn.com>
parents: 2598
diff changeset
4262 gtk_widget_set_sensitive(bbox, TRUE);
1477
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4263
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4264 return;
1d0fc2622b29 [gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1456
diff changeset
4265 }
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4266
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4267 /*------------------------------------------------------------------------*/
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4268 /* The dialog for renaming groups */
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4269 /*------------------------------------------------------------------------*/
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4270
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4271 static void do_rename_group(GtkObject *obj, int resp, GtkWidget *entry)
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4272 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
4273 const char *new_name;
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4274 struct group *g;
1748
2eec724fdbcd [gaim-migrate @ 1758]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1736
diff changeset
4275 struct group *orig;
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4276 GSList *accts;
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4277
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4278 if (resp == GTK_RESPONSE_OK) {
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4279
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4280 new_name = gtk_entry_get_text(GTK_ENTRY(entry));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4281 g = g_object_get_data(G_OBJECT(entry), "group");
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4282
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4283 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) {
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4284 char *prevname;
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4285
4793
677d3cb193a1 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4787
diff changeset
4286 if ((orig = gaim_find_group(new_name)) != NULL && gaim_utf8_strcasecmp(new_name, g->name)) {
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
4287 gaim_blist_rename_group(orig, g->name);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4288 accts = gaim_group_get_accounts(g);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4289 while(accts) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
4290 struct gaim_account *account = accts->data;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
4291 serv_rename_group(account->gc, g, new_name);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4292 accts = g_slist_remove(accts, accts->data);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4293 }
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4294 g_free(g);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4295 } else {
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4296 prevname = g_strdup(g->name);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4297 accts = gaim_group_get_accounts(g);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4298 while(accts) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
4299 struct gaim_account *account = accts->data;
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
4300 serv_rename_group(account->gc, g, new_name);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4301 accts = g_slist_remove(accts, accts->data);
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4302 }
4916
d9b6b5ae34e4 [gaim-migrate @ 5250]
Sean Egan <seanegan@gmail.com>
parents: 4874
diff changeset
4303 gaim_blist_rename_group(g, new_name);
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4304 g_free(prevname);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4305 }
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4306 gaim_blist_save();
1748
2eec724fdbcd [gaim-migrate @ 1758]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1736
diff changeset
4307 }
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4308 }
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4309 destroy_dialog(rename_dialog, rename_dialog);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4310 }
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4311
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4312 void show_rename_group(GtkWidget *unused, struct group *g)
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4313 {
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4314
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4315 GtkWidget *hbox, *vbox;
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4316 GtkWidget *label;
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
4317 struct gaim_gtk_buddy_list *gtkblist;
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4318 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
4201
511c2b63caa4 [gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents: 4198
diff changeset
4319 GtkWidget *name_entry = NULL;
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4320
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
4321 gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4687
diff changeset
4322
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4323 if (!rename_dialog) {
5092
a4ad609ee6b3 [gaim-migrate @ 5454]
Luke Schierer <lschiere@pidgin.im>
parents: 5057
diff changeset
4324 rename_dialog = gtk_dialog_new_with_buttons(_("Rename Group"), GTK_WINDOW(gtkblist->window), 0,
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4325 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4326 gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4327 gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4328 gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4329 gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4330 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4331 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4332
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4333 hbox = gtk_hbox_new(FALSE, 12);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4334 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4335 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4336 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4337
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4338 vbox = gtk_vbox_new(FALSE, 0);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4339 gtk_container_add(GTK_CONTAINER(hbox), vbox);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4340
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4341 label = gtk_label_new(_("Please enter a new name for the selected group.\n"));
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4342 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4343 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4344 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4345
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4346 hbox = gtk_hbox_new(FALSE, 6);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4347 gtk_container_add(GTK_CONTAINER(vbox), hbox);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4348
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4349 label = gtk_label_new(NULL);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4350 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:"));
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4351 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
4352
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4353 name_entry = gtk_entry_new();
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4354 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4355 g_object_set_data(G_OBJECT(name_entry), "group", g);
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4356 gtk_entry_set_text(GTK_ENTRY(name_entry), g->name);
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4357 gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4358 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE);
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4359 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4360
4183
e6810f691393 [gaim-migrate @ 4414]
Rob Flynn <gaim@robflynn.com>
parents: 4182
diff changeset
4361 g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry);
4182
05a456d5f799 [gaim-migrate @ 4413]
Rob Flynn <gaim@robflynn.com>
parents: 4180
diff changeset
4362
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4363 }
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4364
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4365 gtk_widget_show_all(rename_dialog);
4201
511c2b63caa4 [gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents: 4198
diff changeset
4366 if(name_entry)
511c2b63caa4 [gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents: 4198
diff changeset
4367 gtk_widget_grab_focus(GTK_WIDGET(name_entry));
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4368 }
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4369
2743
9f71beb77c60 [gaim-migrate @ 2756]
Rob Flynn <gaim@robflynn.com>
parents: 2725
diff changeset
4370
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4371 /*------------------------------------------------------------------------*/
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4372 /* The dialog for renaming buddies */
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4373 /*------------------------------------------------------------------------*/
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4374
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4375 static void do_rename_buddy(GObject *obj, GtkWidget *entry)
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4376 {
3466
7a3f16a375a5 [gaim-migrate @ 3516]
Sean Egan <seanegan@gmail.com>
parents: 3427
diff changeset
4377 const char *new_name;
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4378 struct buddy *b;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4379
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4380 new_name = gtk_entry_get_text(GTK_ENTRY(entry));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4381 b = g_object_get_data(obj, "buddy");
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4382
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
4383 if (!g_slist_find(connections, b->account->gc)) {
2681
37d80035e77f [gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2679
diff changeset
4384 destroy_dialog(rename_bud_dialog, rename_bud_dialog);
37d80035e77f [gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2679
diff changeset
4385 return;
37d80035e77f [gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2679
diff changeset
4386 }
37d80035e77f [gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2679
diff changeset
4387
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4388 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) {
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
4389 struct group *g = gaim_find_buddys_group(b);
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
4390 char *prevname = b->name;
2681
37d80035e77f [gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2679
diff changeset
4391 if (g)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
4392 serv_remove_buddy(b->account->gc, b->name, g->name);
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
4393 b->name = g_strdup(new_name);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
4394 serv_add_buddy(b->account->gc, b->name);
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4685
diff changeset
4395 gaim_blist_rename_buddy(b, prevname);
4349
0c68d402f59f [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
4396 gaim_blist_save();
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4397 g_free(prevname);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4398 }
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4399
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4400 destroy_dialog(rename_bud_dialog, rename_bud_dialog);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4401 }
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4402
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4403 void show_rename_buddy(GtkWidget *unused, struct buddy *b)
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4404 {
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4405 GtkWidget *mainbox;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4406 GtkWidget *frame;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4407 GtkWidget *fbox;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4408 GtkWidget *bbox;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4409 GtkWidget *button;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4410 GtkWidget *name_entry;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4411 GtkWidget *label;
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4412
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4413 if (!rename_bud_dialog) {
2725
f3c094e78609 [gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2681
diff changeset
4414 GAIM_DIALOG(rename_bud_dialog);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
4415 gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4416 gtk_window_set_resizable(GTK_WINDOW(rename_bud_dialog), TRUE);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
4417 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Rename Buddy"));
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4418 g_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4419 G_CALLBACK(destroy_dialog), rename_bud_dialog);
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4420 gtk_widget_realize(rename_bud_dialog);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4421
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4422 mainbox = gtk_vbox_new(FALSE, 5);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4423 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4424 gtk_container_add(GTK_CONTAINER(rename_bud_dialog), mainbox);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4425
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4426 frame = gtk_frame_new(_("Rename Buddy"));
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4427 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4428
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4429 fbox = gtk_hbox_new(FALSE, 5);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4430 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4431 gtk_container_add(GTK_CONTAINER(frame), fbox);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4432
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4433 label = gtk_label_new(_("New name:"));
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4434 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4435
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4436 name_entry = gtk_entry_new();
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4437 gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4438 g_object_set_data(G_OBJECT(name_entry), "buddy", b);
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4439 gtk_entry_set_text(GTK_ENTRY(name_entry), b->name);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4440 g_signal_connect(GTK_OBJECT(name_entry), "activate",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4441 G_CALLBACK(do_rename_buddy), name_entry);
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4442 gtk_widget_grab_focus(name_entry);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4443
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4444 bbox = gtk_hbox_new(FALSE, 5);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4445 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4446
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4447 button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4448 g_object_set_data(G_OBJECT(button), "buddy", b);
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4449 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4450 g_signal_connect(GTK_OBJECT(button), "clicked",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4451 G_CALLBACK(do_rename_buddy), name_entry);
4236
9641bd9c79f5 [gaim-migrate @ 4482]
Mark Doliner <mark@kingant.net>
parents: 4227
diff changeset
4452
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4453 button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
4236
9641bd9c79f5 [gaim-migrate @ 4482]
Mark Doliner <mark@kingant.net>
parents: 4227
diff changeset
4454 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
9641bd9c79f5 [gaim-migrate @ 4482]
Mark Doliner <mark@kingant.net>
parents: 4227
diff changeset
4455 g_signal_connect(GTK_OBJECT(button), "clicked",
9641bd9c79f5 [gaim-migrate @ 4482]
Mark Doliner <mark@kingant.net>
parents: 4227
diff changeset
4456 G_CALLBACK(destroy_dialog), rename_bud_dialog);
1729
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4457 }
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4458
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4459 gtk_widget_show_all(rename_bud_dialog);
251c19bf5763 [gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1722
diff changeset
4460 }
2370
25e7c2a68ed2 [gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2344
diff changeset
4461
2379
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4462
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4463 GtkWidget *gaim_pixbuf_toolbar_button_from_stock(char *icon)
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4464 {
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4465 GtkWidget *button, *image, *bbox;
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4466
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4467 button = gtk_toggle_button_new();
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4468 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4469
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4470 bbox = gtk_vbox_new(FALSE, 0);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4471
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4472 gtk_container_add (GTK_CONTAINER(button), bbox);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4473
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4474 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_MENU);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4475 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4476
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4477 gtk_widget_show_all(bbox);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4478 return button;
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4479 }
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4480
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
4481 GtkWidget *
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
4482 gaim_pixbuf_button_from_stock(const char *text, const char *icon,
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
4483 GaimButtonStyle style)
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4484 {
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4485 GtkWidget *button, *image, *label, *bbox, *ibox, *lbox;
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4486 button = gtk_button_new();
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4487
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4488 if (style == GAIM_BUTTON_HORIZONTAL) {
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4489 bbox = gtk_hbox_new(FALSE, 5);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4490 ibox = gtk_hbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4491 lbox = gtk_hbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4492 } else {
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4493 bbox = gtk_vbox_new(FALSE, 5);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4494 ibox = gtk_vbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4495 lbox = gtk_vbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4496 }
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4497
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4498 gtk_container_add (GTK_CONTAINER(button), bbox);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4499
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4500 gtk_box_pack_start_defaults(GTK_BOX(bbox), ibox);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4501 gtk_box_pack_start_defaults(GTK_BOX(bbox), lbox);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4502
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4503 if (icon) {
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4504 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4505 gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, FALSE, 0);
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4506 }
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4507
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4508 if (text) {
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4509 label = gtk_label_new(NULL);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4510 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4511 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4512 gtk_box_pack_start(GTK_BOX(lbox), label, FALSE, FALSE, 0);
3668
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4513 }
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4514
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4515 gtk_widget_show_all(bbox);
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4516 return button;
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4517 }
5b82f99d028d [gaim-migrate @ 3798]
Rob Flynn <gaim@robflynn.com>
parents: 3659
diff changeset
4518
3649
f09193608fd3 [gaim-migrate @ 3773]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
4519 GtkWidget *gaim_pixbuf_button(char *text, char *iconfile, GaimButtonStyle style)
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4520 {
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4521 GtkWidget *button, *image, *label, *bbox, *ibox, *lbox;
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4522 button = gtk_button_new();
3649
f09193608fd3 [gaim-migrate @ 3773]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
4523
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4524 if (style == GAIM_BUTTON_HORIZONTAL) {
3649
f09193608fd3 [gaim-migrate @ 3773]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
4525 bbox = gtk_hbox_new(FALSE, 5);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4526 ibox = gtk_hbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4527 lbox = gtk_hbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4528 } else {
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4529 bbox = gtk_vbox_new(FALSE, 5);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4530 ibox = gtk_vbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4531 lbox = gtk_vbox_new(FALSE, 0);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4532 }
3649
f09193608fd3 [gaim-migrate @ 3773]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
4533
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4534 gtk_container_add (GTK_CONTAINER(button), bbox);
3649
f09193608fd3 [gaim-migrate @ 3773]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
4535
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4536 gtk_box_pack_start_defaults(GTK_BOX(bbox), ibox);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4537 gtk_box_pack_start_defaults(GTK_BOX(bbox), lbox);
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4538
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4539 if (iconfile) {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4540 char *filename;
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4541 filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", iconfile, NULL);
5213
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
4542 gaim_debug(GAIM_DEBUG_MISC, "gaim_pixbuf_button",
1cf4eb75e3ee [gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
4543 "Loading: %s\n", filename);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4544 image = gtk_image_new_from_file(filename);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4545 gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, FALSE, 0);
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4546 g_free(filename);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4547 }
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4548
3367
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4549 if (text) {
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4550 label = gtk_label_new(NULL);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4551 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text);
3b00d97d59aa [gaim-migrate @ 3386]
Sean Egan <seanegan@gmail.com>
parents: 3348
diff changeset
4552 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4553 gtk_box_pack_start(GTK_BOX(lbox), label, FALSE, FALSE, 0);
2379
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4554 }
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4555
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
4556 gtk_widget_show_all(bbox);
2379
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4557 return button;
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4558 }
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4559
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4560 int file_is_dir(const char *path, GtkWidget *w)
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4561 {
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4562 struct stat st;
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4563 char *name;
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4564
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4565 if (stat(path, &st) == 0 && S_ISDIR(st.st_mode)) {
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4566 /* append a / if needed */
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4567 if (path[strlen(path) - 1] != '/') {
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4568 name = g_strconcat(path, "/", NULL);
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4569 } else {
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4570 name = g_strdup(path);
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4571 }
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4572 gtk_file_selection_set_filename(GTK_FILE_SELECTION(w), name);
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4573 g_free(name);
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4574 return 1;
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4575 }
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4576
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4577 return 0;
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2377
diff changeset
4578 }
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4579
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4580 /*------------------------------------------------------------------------*/
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4581 /* The dialog for setting V-Card info */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4582 /*------------------------------------------------------------------------*/
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4583 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4584 * There are actually two "chunks" of code following: generic "multi-entry dialog"
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4585 * support and V-Card dialog specific support.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4586 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4587 * At first blush, this may seem like an unnecessary duplication of effort given
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4588 * that a "set dir info" dialog already exists. However, this is not so because:
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4589 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4590 * 1. V-Cards can have a lot more data in them than what the current
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4591 * "set dir" dialog supports.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4592 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4593 * 2. V-Card data, at least with respect to Jabber, is currently in a
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4594 * state of flux. As the data and format changes, all that need be
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4595 * changed with the V-Card support I've written is the "template"
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4596 * data.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4597 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4598 * 3. The "multi entry dialog" support itself was originally written
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4599 * to support Jabber server user registration (TBD). A "dynamically
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4600 * configurable" multi-entry dialog is needed for that, as different
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4601 * servers may require different registration information. It just
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4602 * turned out to be well-suited to adding V-Card setting support, as
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4603 * well :-).
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4604 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4605 * TBD: Add check-box support to the generic multi-entry dialog support so that
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4606 * it can be used to "replace" the "set dir info" support?
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4607 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4608 * Multiple-language support. Currently Not In There. I think this should
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4609 * be easy. Note that when it's added: if anybody saved their data in
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4610 * English, it'll be lost when MLS is added and they'll have to re-enter it.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4611 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4612 * More "TBDs" noted in the code.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4613 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4614
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4615
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4616 /*------------------------------------*/
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4617 /* generic multi-entry dialog support */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4618 /*------------------------------------*/
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4619
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4620 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4621 * Print all multi-entry items
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4622 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4623 * Note: Simply a debug helper
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4624 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4625 void multi_entry_item_print_all(const GSList *list) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4626
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4627 int cnt = 0;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4628
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4629 /* While there's something to print... */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4630 while(list != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4631 fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiEntryData *) (list->data))->label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4632 if(((MultiEntryData *) (list->data))->text != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4633 fprintf(stderr, ", text: \"%s\"", ((MultiEntryData *) (list->data))->text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4634 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4635 fputs("\n", stderr);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4636 list = list->next;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4637 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4638 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4639
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4640 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4641 * Print all multi-text items
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4642 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4643 * Note: Simply a debug helper
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4644 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4645 void multi_text_item_print_all(const GSList *list) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4646
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4647 int cnt = 0;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4648
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4649 /* While there's something to print... */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4650 while(list != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4651 fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiTextData *) (list->data))->label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4652 if(((MultiTextData *) (list->data))->text != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4653 fprintf(stderr, ", text: \"%s\"", ((MultiTextData *) (list->data))->text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4654 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4655 fputs("\n", stderr);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4656 list = list->next;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4657 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4658 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4659
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4660
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4661 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4662 * Free all multi-entry item allocs and NULL the list pointer
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4663 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4664 void multi_entry_items_free_all(GSList **list)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4665 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4666
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4667 GSList *next = *list;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4668 MultiEntryData *data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4669
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4670 /* While there's something to free() ... */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4671 while(next != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4672 data = (MultiEntryData *) next->data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4673 g_free(data->label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4674 g_free(data->text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4675 g_free(data);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4676 next = next->next;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4677 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4678 g_slist_free(*list);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4679 *list = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4680 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4681
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4682 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4683 * Free all multi-text item allocs and NULL the list pointer
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4684 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4685 void multi_text_items_free_all(GSList **list)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4686 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4687
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4688 GSList *next = *list;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4689 MultiTextData *data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4690
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4691 /* While there's something to free() ... */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4692 while(next != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4693 data = (MultiTextData *) next->data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4694 g_free(data->label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4695 g_free(data->text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4696 g_free(data);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4697 next = next->next;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4698 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4699 g_slist_free(*list);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4700 *list = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4701 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4702
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4703 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4704 * See if a MultiEntryData item contains a given label
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4705 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4706 * See: glib docs for g_slist_compare_custom() for details
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4707 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4708 static gint multi_entry_data_label_compare(gconstpointer data, gconstpointer label)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4709 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4710 return(strcmp(((MultiEntryData *) (data))->label, (char *) label));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4711 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4712
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4713 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4714 * Add a new multi-entry item to list
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4715 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4716 * If adding to existing list: will search the list for existence of
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4717 * "label" and change/create "text" entry if necessary.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4718 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4719
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4720 MultiEntryData *multi_entry_list_update(GSList **list, const char *label, const char *text, int add_it)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4721 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4722 GSList *found;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4723 MultiEntryData *data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4724
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4725 if((found = g_slist_find_custom(*list, (void *)label, multi_entry_data_label_compare)) == NULL) {
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4726 if(add_it) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4727 data = (MultiEntryData *) g_slist_last(*list =
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4728 g_slist_append(*list, g_malloc(sizeof(MultiEntryData))))->data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4729 data->label = strcpy(g_malloc(strlen(label) +1), label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4730 data->text = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4731 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4732 * default to setting "visible" and editable to TRUE - they can be
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4733 * overridden later, of course.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4734 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4735 data->visible = TRUE;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4736 data->editable = TRUE;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4737 } else {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4738 data = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4739 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4740 } else {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4741 data = found->data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4742 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4743
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4744 if(data != NULL && text != NULL && text[0] != '\0') {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4745 if(data->text == NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4746 data->text = g_malloc(strlen(text) + 1);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4747 } else {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4748 data->text = g_realloc(data->text, strlen(text) + 1);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4749 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4750 strcpy(data->text, text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4751 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4752
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4753 return(data);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4754 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4755
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4756 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4757 * See if a MultiTextData item contains a given label
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4758 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4759 * See: glib docs for g_slist_compare_custom() for details
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4760 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4761 static gint multi_text_data_label_compare(gconstpointer data, gconstpointer label)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4762 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4763 return(strcmp(((MultiTextData *) (data))->label, (char *) label));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4764 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4765
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4766 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4767 * Add a new multi-text item to list
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4768 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4769 * If adding to existing list: will search the list for existence of
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4770 * "label" and change/create "text" text if necessary.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4771 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4772
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4773 MultiTextData *multi_text_list_update(GSList **list, const char *label, const char *text, int add_it)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4774 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4775 GSList *found;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4776 MultiTextData *data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4777
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4778 if((found = g_slist_find_custom(*list, (void *)label, multi_text_data_label_compare)) == NULL) {
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4779 if(add_it) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4780 data = (MultiTextData *) g_slist_last(*list =
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4781 g_slist_append(*list, g_malloc(sizeof(MultiTextData))))->data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4782 data->label = strcpy(g_malloc(strlen(label) +1), label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4783 data->text = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4784 } else {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4785 data = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4786 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4787 } else {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4788 data = found->data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4789 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4790
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4791 if(data != NULL && text != NULL && text[0] != '\0') {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4792 if(data->text == NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4793 data->text = g_malloc(strlen(text) + 1);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4794 } else {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4795 data->text = g_realloc(data->text, strlen(text) + 1);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4796 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4797 strcpy(data->text, text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4798 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4799
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4800 return(data);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4801 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4802
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4803 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4804 * Free-up the multi-entry item list and the MultiEntryDlg
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4805 * struct alloc.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4806 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4807 void multi_entry_free(struct multi_entry_dlg *b)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4808 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4809 multi_entry_items_free_all(&(b->multi_entry_items));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4810 multi_text_items_free_all(&(b->multi_text_items));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4811 g_free(b->instructions->text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4812 g_free(b->instructions);
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4813 g_free(b->entries_title);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4814 g_free(b);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4815 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4816
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4817 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4818 * Multi-Entry dialog "destroyed" catcher
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4819 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4820 * Free-up the multi-entry item list, destroy the dialog widget
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4821 * and free the MultiEntryDlg struct alloc.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4822 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4823 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4824 void multi_entry_dialog_destroy(GtkWidget *widget, gpointer data)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4825 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4826 MultiEntryDlg *b = data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4827
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4828 multi_entry_free(b);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4829 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4830
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4831 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4832 * Show/Re-show instructions
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4833 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4834 void re_show_multi_entry_instr(MultiInstrData *instructions)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4835 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4836 if(instructions->label != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4837 if(instructions->text == NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4838 gtk_widget_hide(instructions->label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4839 } else {
5236
0d4b8ca97c17 [gaim-migrate @ 5606]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
4840 gtk_label_set_text(GTK_LABEL (instructions->label), _(instructions->text));
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4841 gtk_widget_show(instructions->label);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4842 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4843 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4844 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4845
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4846 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4847 * Show/Re-show entry boxes
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4848 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4849 void re_show_multi_entry_entries(GtkWidget **entries_table,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4850 GtkWidget *entries_frame,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4851 GSList *multi_entry_items)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4852 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4853 GtkWidget *label;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4854 GSList *multi_entry;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4855 MultiEntryData *med;
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4856 int rows, row_num, col_num, col_offset;
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4857 int cols = 1;
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4858
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4859 /* Figure-out number of rows needed for table */
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4860 if((rows = g_slist_length(multi_entry_items)) > 9) {
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4861 rows /= 2;
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4862 ++cols;
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4863 }
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4864
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4865 if(*entries_table != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4866 gtk_widget_destroy(GTK_WIDGET (*entries_table));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4867 }
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4868 *entries_table = gtk_table_new(rows, 3 * cols, FALSE);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4869 gtk_container_add(GTK_CONTAINER (entries_frame), *entries_table);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4870
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4871 for(col_num = 0, multi_entry = multi_entry_items; col_num < cols && multi_entry != NULL;
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4872 ++col_num) {
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4873 col_offset = col_num * 3;
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4874 for(row_num = 0; row_num < rows && multi_entry != NULL;
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4875 ++row_num, multi_entry = multi_entry->next) {
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4876
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4877 med = (MultiEntryData *) multi_entry->data;
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4878
5236
0d4b8ca97c17 [gaim-migrate @ 5606]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
4879 label = gtk_label_new(_(med->label));
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4880 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 1.0, (gfloat) 0.5);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4881 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label,
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4882 col_offset, 1 + col_offset, row_num, row_num +1);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4883 gtk_widget_show(label);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4884
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4885 label = gtk_label_new(": ");
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4886 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4887 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label,
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4888 1 + col_offset, 2 + col_offset, row_num, row_num +1);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4889 gtk_widget_show(label);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4890
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4891 med->widget = gtk_entry_new();
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4892 gtk_entry_set_max_length(GTK_ENTRY(med->widget), 50);
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4893 if(med->text != NULL) {
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4894 gtk_entry_set_text(GTK_ENTRY (med->widget), med->text);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4895 }
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4896 gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4897 gtk_editable_set_editable(GTK_EDITABLE(med->widget), med->editable);
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4898 gtk_table_attach(GTK_TABLE (*entries_table), med->widget,
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4899 2 + col_offset, 3 + col_offset, row_num, row_num +1,
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4900 GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0);
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
4901 gtk_widget_show(med->widget);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4902 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4903 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4904
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4905 gtk_widget_show(*entries_table);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4906 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4907
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4908 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4909 * Show/Re-show textboxes
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4910 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4911 void re_show_multi_entry_textboxes(GtkWidget **texts_ibox,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4912 GtkWidget *texts_obox,
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4913 GSList *multi_text_items)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4914 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4915 GSList *multi_text;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4916 MultiTextData *mtd;
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4917 GtkWidget *frame;
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4918 GtkWidget *sw;
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4919
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4920 if(*texts_ibox != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4921 gtk_widget_destroy(GTK_WIDGET (*texts_ibox));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4922 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4923 *texts_ibox = gtk_vbox_new(FALSE, 5);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4924 gtk_container_add(GTK_CONTAINER (texts_obox), *texts_ibox);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4925
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4926 for(multi_text = multi_text_items; multi_text != NULL; multi_text = multi_text->next) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4927 mtd = (MultiTextData *) multi_text->data;
5236
0d4b8ca97c17 [gaim-migrate @ 5606]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
4928 frame = gtk_frame_new(_(mtd->label));
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4929 sw = gtk_scrolled_window_new(NULL, NULL);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4930 gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4931 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4932 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4933 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4934 GTK_SHADOW_IN);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4935 gtk_widget_set_size_request(sw, 300, 100);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4936 gtk_container_add(GTK_CONTAINER (frame), sw);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4937 gtk_container_add(GTK_CONTAINER (*texts_ibox), frame);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4938 mtd->textbox = gtk_text_view_new();
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4939 gtk_text_view_set_editable(GTK_TEXT_VIEW(mtd->textbox), TRUE);
5105
4cfc49e31c2e [gaim-migrate @ 5468]
Luke Schierer <lschiere@pidgin.im>
parents: 5092
diff changeset
4940 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(mtd->textbox), GTK_WRAP_WORD_CHAR);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4941 gtk_text_buffer_set_text(
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4942 gtk_text_view_get_buffer(GTK_TEXT_VIEW(mtd->textbox)),
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4943 mtd->text?mtd->text:"", -1);
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4944 gtk_container_add(GTK_CONTAINER (sw), mtd->textbox);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4945 gtk_widget_show(mtd->textbox);
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
4946 gtk_widget_show(sw);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4947 gtk_widget_show(frame);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4948 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4949
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4950 gtk_widget_show(*texts_ibox);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4951 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4952
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4953 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4954 * Create and initialize a new Multi-Entry Dialog struct
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4955 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4956 MultiEntryDlg *multi_entry_dialog_new()
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4957 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4958 MultiEntryDlg *b = g_new0(MultiEntryDlg, 1);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4959 b->instructions = g_new0(MultiInstrData, 1);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4960 b->multi_entry_items = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4961 b->multi_text_items = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4962 return(b);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4963 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4964
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4965 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4966 * Instantiate a new multi-entry dialog
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4967 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4968 * data == pointer to MultiEntryDlg with the following
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4969 * initialized:
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4970 *
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
4971 * role
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4972 * title
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4973 * user
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4974 * multi_entry_items - pointers to MultiEntryData list
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4975 * and MultiTextData list
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4976 * instructions (optional)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4977 * ok function pointer
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4978 * cancel function pointer (actually used to set
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4979 * window destroy signal--cancel asserts destroy)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4980 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4981 * sets the following in the MultiEntryDialog struct:
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4982 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4983 * window
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4984 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4985 void show_multi_entry_dialog(gpointer data)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4986 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4987 GtkWidget *vbox, *hbox;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4988 GtkWidget *button;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4989 MultiEntryDlg *b = data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4990
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4991 GAIM_DIALOG(b->window);
2969
a67cae459b01 [gaim-migrate @ 2982]
Rob Flynn <gaim@robflynn.com>
parents: 2956
diff changeset
4992 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
4074
3ccbdf8e7f8d [gaim-migrate @ 4289]
Sean Egan <seanegan@gmail.com>
parents: 4061
diff changeset
4993 gtk_window_set_role(GTK_WINDOW(b->window), b->role);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4994 gtk_window_set_title(GTK_WINDOW (b->window), b->title);
2969
a67cae459b01 [gaim-migrate @ 2982]
Rob Flynn <gaim@robflynn.com>
parents: 2956
diff changeset
4995
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4996 /* Clean up if user dismisses window via window manager! */
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
4997 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(b->cancel), (gpointer) b);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4998 gtk_widget_realize(b->window);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
4999
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5000 vbox = gtk_vbox_new(FALSE, 5);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5001 gtk_container_add(GTK_CONTAINER (b->window), vbox);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5002
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5003 b->instructions->label = gtk_label_new(NULL);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5004 gtk_label_set_line_wrap(GTK_LABEL (b->instructions->label), TRUE);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5005 gtk_box_pack_start(GTK_BOX (vbox), b->instructions->label, TRUE, TRUE, 5);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5006 re_show_multi_entry_instr(b->instructions);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5007
2975
626729653436 [gaim-migrate @ 2988]
Rob Flynn <gaim@robflynn.com>
parents: 2969
diff changeset
5008 b->entries_frame = gtk_frame_new(b->entries_title);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5009 gtk_box_pack_start(GTK_BOX (vbox), b->entries_frame, TRUE, TRUE, 5);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5010 b->entries_table = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5011 re_show_multi_entry_entries(&(b->entries_table), b->entries_frame, b->multi_entry_items);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5012
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5013 b->texts_obox = gtk_vbox_new(FALSE, 0);
2969
a67cae459b01 [gaim-migrate @ 2982]
Rob Flynn <gaim@robflynn.com>
parents: 2956
diff changeset
5014 gtk_box_pack_start(GTK_BOX (vbox), b->texts_obox, TRUE, TRUE, 5);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5015 b->texts_ibox = NULL;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5016 re_show_multi_entry_textboxes(&(b->texts_ibox), b->texts_obox, b->multi_text_items);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5017
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5018 hbox = gtk_hbox_new(FALSE, 0);
2969
a67cae459b01 [gaim-migrate @ 2982]
Rob Flynn <gaim@robflynn.com>
parents: 2956
diff changeset
5019 gtk_box_pack_start(GTK_BOX (vbox), hbox, FALSE, FALSE, 5);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
5020
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
5021 button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
4236
9641bd9c79f5 [gaim-migrate @ 4482]
Mark Doliner <mark@kingant.net>
parents: 4227
diff changeset
5022 g_signal_connect(GTK_OBJECT (button), "clicked",
9641bd9c79f5 [gaim-migrate @ 4482]
Mark Doliner <mark@kingant.net>
parents: 4227
diff changeset
5023 G_CALLBACK (b->ok), (gpointer) b);
9641bd9c79f5 [gaim-migrate @ 4482]
Mark Doliner <mark@kingant.net>
parents: 4227
diff changeset
5024 gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
5025
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
5026 button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
2969
a67cae459b01 [gaim-migrate @ 2982]
Rob Flynn <gaim@robflynn.com>
parents: 2956
diff changeset
5027
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5028 /* Let "destroy handling" (set above) handle cleanup */
4162
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
5029 g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
d3c8d2b40494 [gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents: 4142
diff changeset
5030 G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (b->window));
2969
a67cae459b01 [gaim-migrate @ 2982]
Rob Flynn <gaim@robflynn.com>
parents: 2956
diff changeset
5031 gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5);
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
5032
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
5033 gtk_widget_show_all(b->window);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5034 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5035
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5036
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5037 /*------------------------------------*/
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5038 /* V-Card dialog specific support */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5039 /*------------------------------------*/
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5040
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5041 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5042 * V-Card "set info" dialog "Save" clicked
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5043 *
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5044 * Copy data from GTK+ dialogs into GSLists, call protocol-specific
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5045 * formatter and save the user info data.
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5046 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5047 void set_vcard_dialog_ok_clicked(GtkWidget *widget, gpointer data)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5048 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5049 MultiEntryDlg *b = (MultiEntryDlg *) data;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5050 struct gaim_connection *gc;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5051 gchar *tmp;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5052 GSList *list;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5053
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5054 for(list = b->multi_entry_items; list != NULL; list = list->next) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5055 if(((MultiEntryData *) list->data)->text != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5056 g_free(((MultiEntryData *) list->data)->text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5057 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5058 ((MultiEntryData *) list->data)->text =
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5059 g_strdup(gtk_entry_get_text(GTK_ENTRY(((MultiEntryData *) list->data)->widget)));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5060 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5061
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5062 for(list = b->multi_text_items; list != NULL; list = list->next) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5063 if(((MultiTextData *) list->data)->text != NULL) {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5064 g_free(((MultiTextData *) list->data)->text);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5065 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5066 ((MultiTextData *) list->data)->text =
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4630
diff changeset
5067 gtk_text_view_get_text(GTK_TEXT_VIEW(((MultiTextData *) list->data)->textbox), FALSE);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5068 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5069
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5070
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5071 tmp = b->custom(b);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5072
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5073 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5074 * Set the user info and (possibly) send to the server
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5075 */
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
5076 if (b->account) {
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
5077 strncpy(b->account->user_info, tmp, sizeof b->account->user_info);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
5078 gc = b->account->gc;
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5079
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5080 save_prefs();
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5081
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5082 if (gc)
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
5083 serv_set_info(gc, b->account->user_info);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5084 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5085
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5086 g_free(tmp);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5087
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5088 /* Let multi-edit dialog window "destroy" event catching handle remaining cleanup */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5089 gtk_widget_destroy(GTK_WIDGET (b->window));
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5090 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5091
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5092 /*
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5093 * Instantiate a v-card dialog
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5094 */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5095 void show_set_vcard(MultiEntryDlg *b)
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5096 {
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5097 b->ok = set_vcard_dialog_ok_clicked;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5098 b->cancel = multi_entry_dialog_destroy;
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5099
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5100 show_multi_entry_dialog(b);
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5101 }
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5102
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5103
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5104 /*------------------------------------------------------------------------*/
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5105 /* End dialog for setting v-card info */
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2906
diff changeset
5106 /*------------------------------------------------------------------------*/
4359
5fb47ec9bfe4 [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4350
diff changeset
5107