src/gtkpounce.c

Sun, 26 Dec 2004 00:46:26 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sun, 26 Dec 2004 00:46:26 +0000
changeset 10418
7b632343a29c
parent 10366
feb6a8f58e7d
child 10432
da2df724be56
permissions
-rw-r--r--

[gaim-migrate @ 11669]
I split the status-saving code into it's own little API, because it
really is separate from the other status.c

savedstatuses.c sits on top of the rest of the status API.

And you can delete saved statuses now.

5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
2 * @file gtkpounce.c GTK+ Buddy Pounce API
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
3 * @ingroup gtkui
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7994
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7994
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7994
diff changeset
9 * source distribution.
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
10 *
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 *
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 */
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9709
diff changeset
26 #include "internal.h"
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9709
diff changeset
27 #include "gtkgaim.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
28
8235
00045afab151 [gaim-migrate @ 8958]
Gary Kramlich <grim@pidgin.im>
parents: 8157
diff changeset
29 #include "account.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
30 #include "conversation.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
31 #include "debug.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
32 #include "notify.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
33 #include "prpl.h"
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
34 #include "request.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
35 #include "server.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
36 #include "sound.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9699
diff changeset
37 #include "util.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
38
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
39 #include "gtkblist.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9699
diff changeset
40 #include "gtkdialogs.h"
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41 #include "gtkpounce.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
42 #include "gtkutils.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
43
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
44 typedef struct
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
45 {
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46 /* Pounce data */
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
47 GaimPounce *pounce;
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5530
diff changeset
48 GaimAccount *account;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
49
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50 /* The window */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 GtkWidget *window;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 /* Pounce Who */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 GtkWidget *account_menu;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55 GtkWidget *buddy_entry;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57 /* Pounce When */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58 GtkWidget *signon;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 GtkWidget *signoff;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60 GtkWidget *away;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61 GtkWidget *away_return;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 GtkWidget *idle;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 GtkWidget *idle_return;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 GtkWidget *typing;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 GtkWidget *stop_typing;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 /* Pounce Action */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68 GtkWidget *open_win;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69 GtkWidget *popup;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 GtkWidget *send_msg;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 GtkWidget *send_msg_entry;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 GtkWidget *exec_cmd;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73 GtkWidget *exec_cmd_entry;
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
74 GtkWidget *exec_cmd_browse;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
75 GtkWidget *play_sound;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76 GtkWidget *play_sound_entry;
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
77 GtkWidget *play_sound_browse;
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
78 GtkWidget *play_sound_test;
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
79
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80 GtkWidget *save_pounce;
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
81
5876
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
82 /* Buttons */
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
83 GtkWidget *save_button;
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
84
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
85 } GaimGtkPounceDialog;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
86
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
87 /**************************************************************************
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88 * Callbacks
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
89 **************************************************************************/
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
90 static gint
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
91 delete_win_cb(GtkWidget *w, GdkEventAny *e, GaimGtkPounceDialog *dialog)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
92 {
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
93 gtk_widget_destroy(dialog->window);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
94 g_free(dialog);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
95
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
96 return TRUE;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
97 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
98
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
99 static void
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
100 delete_cb(GtkWidget *w, GaimGtkPounceDialog *dialog)
5052
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
101 {
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
102 gaim_pounce_destroy(dialog->pounce);
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
103
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
104 delete_win_cb(NULL, NULL, dialog);
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
105 }
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
106
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
107 static void
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
108 cancel_cb(GtkWidget *w, GaimGtkPounceDialog *dialog)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
109 {
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
110 delete_win_cb(NULL, NULL, dialog);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
111 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
112
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
113 static void
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
114 pounce_update_entry_fields(void *user_data, const char *filename)
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
115 {
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
116 GtkWidget *entry = (GtkWidget *)user_data;
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
117
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
118 gtk_entry_set_text(GTK_ENTRY(entry), filename);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
119 }
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
120
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
121 static void
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
122 filesel(GtkWidget *widget, gpointer data)
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
123 {
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
124 GtkWidget *entry;
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
125 const gchar *name;
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
126
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
127 entry = (GtkWidget *)data;
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
128 name = gtk_entry_get_text(GTK_ENTRY(entry));
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
129
9505
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
130 gaim_request_file(entry, _("Select a file"), name, FALSE,
6120a3cb8af7 [gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents: 9206
diff changeset
131 G_CALLBACK(pounce_update_entry_fields), NULL, entry);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
132 }
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
133
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
134 static void
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
135 pounce_test_sound(GtkWidget *w, GtkWidget *entry)
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
136 {
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
137 const char *filename;
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
138
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
139 filename = gtk_entry_get_text(GTK_ENTRY(entry));
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
140
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
141 if (filename != NULL && *filename != '\0')
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
142 gaim_sound_play_file((char *) filename);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
143 else
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
144 gaim_sound_play_event(GAIM_SOUND_POUNCE_DEFAULT);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
145 }
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
146
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
147 static void
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
148 save_pounce_cb(GtkWidget *w, GaimGtkPounceDialog *dialog)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
149 {
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
150 const char *name;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151 const char *message, *command, *sound;
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
152 GaimBuddyList *blist;
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
153 GaimGtkBuddyList *gtkblist;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
154 GaimPounceEvent events = GAIM_POUNCE_NONE;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
155
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
156 name = gtk_entry_get_text(GTK_ENTRY(dialog->buddy_entry));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
157
9206
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
158 if (*name == '\0')
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
159 {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5319
diff changeset
160 gaim_notify_error(NULL, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5319
diff changeset
161 _("Please enter a buddy to pounce."), NULL);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
162 return;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
163 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
164
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
165 /* Events */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
166 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->signon)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
167 events |= GAIM_POUNCE_SIGNON;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
168
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
169 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->signoff)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
170 events |= GAIM_POUNCE_SIGNOFF;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
171
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
172 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->away)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
173 events |= GAIM_POUNCE_AWAY;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
174
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
175 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->away_return)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
176 events |= GAIM_POUNCE_AWAY_RETURN;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
177
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
178 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->idle)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
179 events |= GAIM_POUNCE_IDLE;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
180
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
181 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->idle_return)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
182 events |= GAIM_POUNCE_IDLE_RETURN;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
183
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
184 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->typing)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
185 events |= GAIM_POUNCE_TYPING;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
186
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
187 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->stop_typing)))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
188 events |= GAIM_POUNCE_TYPING_STOPPED;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
189
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
190 /* Data fields */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
191 message = gtk_entry_get_text(GTK_ENTRY(dialog->send_msg_entry));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
192 command = gtk_entry_get_text(GTK_ENTRY(dialog->exec_cmd_entry));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
193 sound = gtk_entry_get_text(GTK_ENTRY(dialog->play_sound_entry));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
194
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
195 if (*message == '\0') message = NULL;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
196 if (*command == '\0') command = NULL;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
197 if (*sound == '\0') sound = NULL;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
198
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
199 if (dialog->pounce == NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
200 {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
201 dialog->pounce = gaim_pounce_new(GAIM_GTK_UI, dialog->account,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
202 name, events);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
203 }
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
204 else {
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
205 gaim_pounce_set_events(dialog->pounce, events);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
206 gaim_pounce_set_pouncer(dialog->pounce, dialog->account);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
207 gaim_pounce_set_pouncee(dialog->pounce, name);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
208 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
209
9206
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
210 /* Actions */
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
211 gaim_pounce_action_set_enabled(dialog->pounce, "open-window",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
212 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->open_win)));
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
213 gaim_pounce_action_set_enabled(dialog->pounce, "popup-notify",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
214 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->popup)));
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
215 gaim_pounce_action_set_enabled(dialog->pounce, "send-message",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
216 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->send_msg)));
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
217 gaim_pounce_action_set_enabled(dialog->pounce, "execute-command",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
218 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd)));
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
219 gaim_pounce_action_set_enabled(dialog->pounce, "play-sound",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
220 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->play_sound)));
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
221
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
222 gaim_pounce_action_set_attribute(dialog->pounce, "send-message",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
223 "message", message);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
224 gaim_pounce_action_set_attribute(dialog->pounce, "execute-command",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
225 "command", command);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
226 gaim_pounce_action_set_attribute(dialog->pounce, "play-sound",
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
227 "filename", sound);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
228
9206
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
229 /* Set the defaults for next time. */
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
230 gaim_prefs_set_bool("/gaim/gtk/pounces/default_actions/open-window",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
231 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->open_win)));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
232 gaim_prefs_set_bool("/gaim/gtk/pounces/default_actions/popup-notify",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
233 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->popup)));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
234 gaim_prefs_set_bool("/gaim/gtk/pounces/default_actions/send-message",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
235 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->send_msg)));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
236 gaim_prefs_set_bool("/gaim/gtk/pounces/default_actions/execute-command",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
237 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd)));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
238 gaim_prefs_set_bool("/gaim/gtk/pounces/default_actions/play-sound",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
239 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->play_sound)));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
240
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
241 gaim_pounce_set_save(dialog->pounce,
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
242 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->save_pounce)));
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
243
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
244 delete_win_cb(NULL, NULL, dialog);
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
245
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
246 gaim_pounces_sync();
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
247
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
248 /* Rebuild the pounce menu */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
249 blist = gaim_get_blist();
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
250
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
251 if (GAIM_IS_GTK_BLIST(blist))
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
252 {
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
253 gtkblist = GAIM_GTK_BLIST(blist);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
254
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
255 gaim_gtkpounce_menu_build(gtkblist->bpmenu);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
256 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
257 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
258
5054
803b9e19f4ea [gaim-migrate @ 5404]
Nathan Walp <nwalp@pidgin.im>
parents: 5052
diff changeset
259 static void
5877
37695b88b248 [gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents: 5876
diff changeset
260 pounce_choose_cb(GtkWidget *item, GaimAccount *account,
37695b88b248 [gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents: 5876
diff changeset
261 GaimGtkPounceDialog *dialog)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
262 {
5877
37695b88b248 [gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents: 5876
diff changeset
263 dialog->account = account;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
264 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
265
5876
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
266 static void
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
267 buddy_changed_cb(GtkEntry *entry, GaimGtkPounceDialog *dialog)
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
268 {
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
269 if (dialog->save_button == NULL)
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
270 return;
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
271
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
272 gtk_widget_set_sensitive(dialog->save_button,
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
273 *gtk_entry_get_text(entry) != '\0');
5876
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
274 }
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
275
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
276 static void
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
277 pounce_dnd_recv(GtkWidget *widget, GdkDragContext *dc, gint x, gint y,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
278 GtkSelectionData *sd, guint info, guint t, gpointer data)
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
279 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
280 GaimGtkPounceDialog *dialog;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
281
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
282 if (sd->target == gdk_atom_intern("GAIM_BLIST_NODE", FALSE))
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
283 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
284 GaimBlistNode *node = NULL;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
285 GaimBuddy *buddy;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
286
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
287 memcpy(&node, sd->data, sizeof(node));
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
288
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
289 if (GAIM_BLIST_NODE_IS_CONTACT(node))
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
290 buddy = gaim_contact_get_priority_buddy((GaimContact *)node);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
291 else if (GAIM_BLIST_NODE_IS_BUDDY(node))
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
292 buddy = (GaimBuddy *)node;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
293 else
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
294 return;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
295
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
296 dialog = (GaimGtkPounceDialog *)data;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
297
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
298 gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry), buddy->name);
9910
7b4465b92411 [gaim-migrate @ 10802]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
299 dialog->account = buddy->account;
7b4465b92411 [gaim-migrate @ 10802]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
300 gaim_gtk_account_option_menu_set_selected(dialog->account_menu, buddy->account);
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
301
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
302 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
303 }
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
304 else if (sd->target == gdk_atom_intern("application/x-im-contact", FALSE))
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
305 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
306 char *protocol = NULL;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
307 char *username = NULL;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
308 GaimAccount *account;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
309
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
310 if (gaim_gtk_parse_x_im_contact(sd->data, FALSE, &account,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
311 &protocol, &username, NULL))
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
312 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
313 if (account == NULL)
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
314 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
315 gaim_notify_error(NULL, NULL,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
316 _("You are not currently signed on with an account that "
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
317 "can add that buddy."), NULL);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
318 }
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
319 else
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
320 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
321 dialog = (GaimGtkPounceDialog *)data;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
322
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
323 gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry), username);
9910
7b4465b92411 [gaim-migrate @ 10802]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
324 dialog->account = account;
7b4465b92411 [gaim-migrate @ 10802]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9791
diff changeset
325 gaim_gtk_account_option_menu_set_selected(dialog->account_menu, account);
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
326 }
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
327 }
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
328
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
329 if (username != NULL) g_free(username);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
330 if (protocol != NULL) g_free(protocol);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
331
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
332 gtk_drag_finish(dc, TRUE, (dc->action == GDK_ACTION_MOVE), t);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
333 }
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
334 }
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
335
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
336 static const GtkTargetEntry dnd_targets[] =
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
337 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
338 {"GAIM_BLIST_NODE", GTK_TARGET_SAME_APP, 0},
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
339 {"application/x-im-contact", 0, 1}
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
340 };
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
341
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
342 void
5907
b2812113a4a6 [gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents: 5877
diff changeset
343 gaim_gtkpounce_dialog_show(GaimAccount *account, const char *name,
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
344 GaimPounce *cur_pounce)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
345 {
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
346 GaimGtkPounceDialog *dialog;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
347 GtkWidget *window;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
348 GtkWidget *label;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
349 GtkWidget *bbox;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
350 GtkWidget *vbox1, *vbox2;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
351 GtkWidget *hbox;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
352 GtkWidget *button;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
353 GtkWidget *frame;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
354 GtkWidget *table;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
355 GtkWidget *sep;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
356 GtkSizeGroup *sg;
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
357 GPtrArray *sound_widgets;
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
358 GPtrArray *exec_widgets;
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
359
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10250
diff changeset
360 g_return_if_fail((cur_pounce != NULL) || (account != NULL) ||
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10250
diff changeset
361 (gaim_connections_get_all() != NULL));
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10250
diff changeset
362
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
363 dialog = g_new0(GaimGtkPounceDialog, 1);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
364
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
365 if (cur_pounce != NULL)
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
366 {
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
367 dialog->pounce = cur_pounce;
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
368 dialog->account = gaim_pounce_get_pouncer(cur_pounce);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
369 }
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
370 else if (account != NULL)
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
371 {
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
372 dialog->pounce = NULL;
5907
b2812113a4a6 [gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents: 5877
diff changeset
373 dialog->account = account;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
374 }
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
375 else
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
376 {
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
377 GaimConnection *gc;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
378
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
379 gc = (GaimConnection *)gaim_connections_get_all()->data;
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
380
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
381 dialog->pounce = NULL;
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
382 dialog->account = gaim_connection_get_account(gc);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
383 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
384
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
385 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
386
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
387 /* Create the window. */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
388 dialog->window = window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
389 gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
390 gtk_window_set_role(GTK_WINDOW(window), "buddy_pounce");
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
391 gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
392 gtk_window_set_title(GTK_WINDOW(window),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
393 (cur_pounce == NULL
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
394 ? _("New Buddy Pounce") : _("Edit Buddy Pounce")));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
395
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
396 gtk_container_set_border_width(GTK_CONTAINER(window), 12);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
397
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
398 g_signal_connect(G_OBJECT(window), "delete_event",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
399 G_CALLBACK(delete_win_cb), dialog);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
400
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
401 /* Create the parent vbox for everything. */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
402 vbox1 = gtk_vbox_new(FALSE, 12);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
403 gtk_container_add(GTK_CONTAINER(window), vbox1);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
404 gtk_widget_show(vbox1);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
405
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
406 /* Create the vbox that will contain all the prefs stuff. */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
407 vbox2 = gtk_vbox_new(FALSE, 18);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
408 gtk_box_pack_start(GTK_BOX(vbox1), vbox2, TRUE, TRUE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
409
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
410 /* Create the "Pounce Who" frame. */
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
411 frame = gaim_gtk_make_frame(vbox2, _("Pounce Who"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
412
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
413 /* Account: */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
414 hbox = gtk_hbox_new(FALSE, 6);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
415 gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
416 gtk_widget_show(hbox);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
417
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
418 label = gtk_label_new_with_mnemonic(_("_Account:"));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
419 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
420 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
421 gtk_widget_show(label);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
422 gtk_size_group_add_widget(sg, label);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
423
5877
37695b88b248 [gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents: 5876
diff changeset
424 dialog->account_menu =
6646
b9a0b5eb74e6 [gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents: 6640
diff changeset
425 gaim_gtk_account_option_menu_new(dialog->account, FALSE,
b9a0b5eb74e6 [gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents: 6640
diff changeset
426 G_CALLBACK(pounce_choose_cb),
b9a0b5eb74e6 [gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents: 6640
diff changeset
427 NULL, dialog);
5877
37695b88b248 [gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents: 5876
diff changeset
428
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
429 gtk_box_pack_start(GTK_BOX(hbox), dialog->account_menu, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
430 gtk_widget_show(dialog->account_menu);
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8046
diff changeset
431 gaim_set_accessible_label (dialog->account_menu, label);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
432
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
433 /* Buddy: */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
434 hbox = gtk_hbox_new(FALSE, 6);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
435 gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
436 gtk_widget_show(hbox);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
437
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
438 label = gtk_label_new_with_mnemonic(_("_Buddy name:"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
439 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
440 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
441 gtk_widget_show(label);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
442 gtk_size_group_add_widget(sg, label);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
443
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
444 dialog->buddy_entry = gtk_entry_new();
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
445
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
446 gtk_box_pack_start(GTK_BOX(hbox), dialog->buddy_entry, TRUE, TRUE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
447 gtk_widget_show(dialog->buddy_entry);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
448
5876
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
449 g_signal_connect(G_OBJECT(dialog->buddy_entry), "changed",
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
450 G_CALLBACK(buddy_changed_cb), dialog);
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8046
diff changeset
451 gaim_set_accessible_label (dialog->buddy_entry, label);
5876
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
452
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
453 if (cur_pounce != NULL) {
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
454 gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
455 gaim_pounce_get_pouncee(cur_pounce));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
456 }
5907
b2812113a4a6 [gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents: 5877
diff changeset
457 else if (name != NULL) {
b2812113a4a6 [gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents: 5877
diff changeset
458 gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry), name);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
459 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
460
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
461 /* Create the "Pounce When" frame. */
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
462 frame = gaim_gtk_make_frame(vbox2, _("Pounce When"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
463
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
464 table = gtk_table_new(2, 4, FALSE);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
465 gtk_container_add(GTK_CONTAINER(frame), table);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
466 gtk_table_set_col_spacings(GTK_TABLE(table), 12);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
467 gtk_widget_show(table);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
468
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
469 dialog->signon =
9591
e664cd540917 [gaim-migrate @ 10434]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9505
diff changeset
470 gtk_check_button_new_with_mnemonic(_("Si_gn on"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
471 dialog->signoff =
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
472 gtk_check_button_new_with_mnemonic(_("Sign _off"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
473 dialog->away =
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
474 gtk_check_button_new_with_mnemonic(_("A_way"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
475 dialog->away_return =
9591
e664cd540917 [gaim-migrate @ 10434]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9505
diff changeset
476 gtk_check_button_new_with_mnemonic(_("_Return from away"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
477 dialog->idle =
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
478 gtk_check_button_new_with_mnemonic(_("_Idle"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
479 dialog->idle_return =
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
480 gtk_check_button_new_with_mnemonic(_("Retur_n from idle"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
481 dialog->typing =
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
482 gtk_check_button_new_with_mnemonic(_("Buddy starts _typing"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
483 dialog->stop_typing =
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
484 gtk_check_button_new_with_mnemonic(_("Buddy stops t_yping"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
485
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
486 gtk_table_attach(GTK_TABLE(table), dialog->signon, 0, 1, 0, 1,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
487 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
488 gtk_table_attach(GTK_TABLE(table), dialog->signoff, 1, 2, 0, 1,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
489 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
490 gtk_table_attach(GTK_TABLE(table), dialog->away, 0, 1, 1, 2,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
491 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
492 gtk_table_attach(GTK_TABLE(table), dialog->away_return, 1, 2, 1, 2,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
493 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
494 gtk_table_attach(GTK_TABLE(table), dialog->idle, 0, 1, 2, 3,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
495 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
496 gtk_table_attach(GTK_TABLE(table), dialog->idle_return, 1, 2, 2, 3,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
497 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
498 gtk_table_attach(GTK_TABLE(table), dialog->typing, 0, 1, 3, 4,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
499 GTK_FILL, 0, 0, 0);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
500 gtk_table_attach(GTK_TABLE(table), dialog->stop_typing, 1, 2, 3, 5,
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
501 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
502
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
503 gtk_widget_show(dialog->signon);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
504 gtk_widget_show(dialog->signoff);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
505 gtk_widget_show(dialog->away);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
506 gtk_widget_show(dialog->away_return);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
507 gtk_widget_show(dialog->idle);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
508 gtk_widget_show(dialog->idle_return);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
509 gtk_widget_show(dialog->typing);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
510 gtk_widget_show(dialog->stop_typing);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
511
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
512 /* Create the "Pounce Action" frame. */
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5436
diff changeset
513 frame = gaim_gtk_make_frame(vbox2, _("Pounce Action"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
514
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
515 table = gtk_table_new(3, 5, FALSE);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
516 gtk_container_add(GTK_CONTAINER(frame), table);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
517 gtk_table_set_col_spacings(GTK_TABLE(table), 12);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
518 gtk_widget_show(table);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
519
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
520 dialog->open_win
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
521 = gtk_check_button_new_with_mnemonic(_("Op_en an IM window"));
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
522 dialog->popup
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
523 = gtk_check_button_new_with_mnemonic(_("_Popup notification"));
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
524 dialog->send_msg
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
525 = gtk_check_button_new_with_mnemonic(_("Send a _message"));
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
526 dialog->exec_cmd
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
527 = gtk_check_button_new_with_mnemonic(_("E_xecute a command"));
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
528 dialog->play_sound
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
529 = gtk_check_button_new_with_mnemonic(_("P_lay a sound"));
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
530
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
531 dialog->send_msg_entry = gtk_entry_new();
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
532 dialog->exec_cmd_entry = gtk_entry_new();
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
533 dialog->exec_cmd_browse = gtk_button_new_with_mnemonic(_("B_rowse..."));
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
534 dialog->play_sound_entry = gtk_entry_new();
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
535 dialog->play_sound_browse = gtk_button_new_with_mnemonic(_("Bro_wse..."));
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
536 dialog->play_sound_test = gtk_button_new_with_mnemonic(_("Pre_view"));
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
537
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
538 gtk_widget_set_sensitive(dialog->send_msg_entry, FALSE);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
539 gtk_widget_set_sensitive(dialog->exec_cmd_entry, FALSE);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
540 gtk_widget_set_sensitive(dialog->exec_cmd_browse, FALSE);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
541 gtk_widget_set_sensitive(dialog->play_sound_entry, FALSE);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
542 gtk_widget_set_sensitive(dialog->play_sound_browse, FALSE);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
543 gtk_widget_set_sensitive(dialog->play_sound_test, FALSE);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
544
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
545 gtk_table_attach(GTK_TABLE(table), dialog->open_win, 0, 1, 0, 1,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
546 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
547 gtk_table_attach(GTK_TABLE(table), dialog->popup, 0, 1, 1, 2,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
548 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
549 gtk_table_attach(GTK_TABLE(table), dialog->send_msg, 0, 1, 2, 3,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
550 GTK_FILL, 0, 0, 0);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
551 gtk_table_attach(GTK_TABLE(table), dialog->send_msg_entry, 1, 4, 2, 3,
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
552 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
553 gtk_table_attach(GTK_TABLE(table), dialog->exec_cmd, 0, 1, 3, 4,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
554 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
555 gtk_table_attach(GTK_TABLE(table), dialog->exec_cmd_entry, 1, 2, 3, 4,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
556 GTK_FILL, 0, 0, 0);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
557 gtk_table_attach(GTK_TABLE(table), dialog->exec_cmd_browse, 2, 3, 3, 4,
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
558 GTK_FILL | GTK_EXPAND, 0, 0, 0);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
559 gtk_table_attach(GTK_TABLE(table), dialog->play_sound, 0, 1, 4, 5,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
560 GTK_FILL, 0, 0, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
561 gtk_table_attach(GTK_TABLE(table), dialog->play_sound_entry, 1, 2, 4, 5,
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
562 GTK_FILL, 0, 0, 0);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
563 gtk_table_attach(GTK_TABLE(table), dialog->play_sound_browse, 2, 3, 4, 5,
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
564 GTK_FILL | GTK_EXPAND, 0, 0, 0);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
565 gtk_table_attach(GTK_TABLE(table), dialog->play_sound_test, 3, 4, 4, 5,
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
566 GTK_FILL | GTK_EXPAND, 0, 0, 0);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
567
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
568 gtk_widget_show(dialog->open_win);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
569 gtk_widget_show(dialog->popup);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
570 gtk_widget_show(dialog->send_msg);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
571 gtk_widget_show(dialog->send_msg_entry);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
572 gtk_widget_show(dialog->exec_cmd);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
573 gtk_widget_show(dialog->exec_cmd_entry);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
574 gtk_widget_show(dialog->exec_cmd_browse);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
575 gtk_widget_show(dialog->play_sound);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
576 gtk_widget_show(dialog->play_sound_entry);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
577 gtk_widget_show(dialog->play_sound_browse);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
578 gtk_widget_show(dialog->play_sound_test);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
579
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
580 g_signal_connect(G_OBJECT(dialog->send_msg), "clicked",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
581 G_CALLBACK(gaim_gtk_toggle_sensitive),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
582 dialog->send_msg_entry);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
583
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
584 exec_widgets = g_ptr_array_new();
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
585 g_ptr_array_add(exec_widgets,dialog->exec_cmd_entry);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
586 g_ptr_array_add(exec_widgets,dialog->exec_cmd_browse);
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
587
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
588 g_signal_connect(G_OBJECT(dialog->exec_cmd), "clicked",
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
589 G_CALLBACK(gtk_toggle_sensitive_array),
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
590 exec_widgets);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
591 g_signal_connect(G_OBJECT(dialog->exec_cmd_browse), "clicked",
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
592 G_CALLBACK(filesel),
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
593 dialog->exec_cmd_entry);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
594
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
595 sound_widgets = g_ptr_array_new();
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
596 g_ptr_array_add(sound_widgets,dialog->play_sound_entry);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
597 g_ptr_array_add(sound_widgets,dialog->play_sound_browse);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
598 g_ptr_array_add(sound_widgets,dialog->play_sound_test);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
599
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
600 g_signal_connect(G_OBJECT(dialog->play_sound), "clicked",
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
601 G_CALLBACK(gtk_toggle_sensitive_array),
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
602 sound_widgets);
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
603 g_signal_connect(G_OBJECT(dialog->play_sound_browse), "clicked",
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
604 G_CALLBACK(filesel),
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
605 dialog->play_sound_entry);
5319
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
606 g_signal_connect(G_OBJECT(dialog->play_sound_test), "clicked",
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
607 G_CALLBACK(pounce_test_sound),
d3832c88d562 [gaim-migrate @ 5691]
Benjamin Zeiss
parents: 5228
diff changeset
608 dialog->play_sound_entry);
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
609
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
610 g_signal_connect(G_OBJECT(dialog->send_msg_entry), "activate",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
611 G_CALLBACK(save_pounce_cb), dialog);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
612 g_signal_connect(G_OBJECT(dialog->exec_cmd_entry), "activate",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
613 G_CALLBACK(save_pounce_cb), dialog);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
614 g_signal_connect(G_OBJECT(dialog->play_sound_entry), "activate",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
615 G_CALLBACK(save_pounce_cb), dialog);
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
616
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
617 /* Now the last part, where we have the Save checkbox */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
618 dialog->save_pounce = gtk_check_button_new_with_mnemonic(
8157
3d0fa227ab3c [gaim-migrate @ 8869]
Ethan Blanton <elb@pidgin.im>
parents: 8137
diff changeset
619 _("Sav_e this pounce after activation"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
620
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
621 gtk_box_pack_start(GTK_BOX(vbox2), dialog->save_pounce, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
622
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
623 /* Separator... */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
624 sep = gtk_hseparator_new();
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
625 gtk_box_pack_start(GTK_BOX(vbox1), sep, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
626 gtk_widget_show(sep);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
627
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
628 /* Now the button box! */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
629 bbox = gtk_hbutton_box_new();
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
630 gtk_box_set_spacing(GTK_BOX(bbox), 6);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
631 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
632 gtk_box_pack_end(GTK_BOX(vbox1), bbox, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
633 gtk_widget_show(bbox);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
634
5052
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
635 /* Delete button */
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
636 button = gtk_button_new_from_stock(GTK_STOCK_DELETE);
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
637 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
10366
feb6a8f58e7d [gaim-migrate @ 11584]
Kevin Stange <kstange@pidgin.im>
parents: 10352
diff changeset
638 if (cur_pounce == NULL)
feb6a8f58e7d [gaim-migrate @ 11584]
Kevin Stange <kstange@pidgin.im>
parents: 10352
diff changeset
639 gtk_widget_set_sensitive(button, FALSE);
5052
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
640 gtk_widget_show(button);
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
641
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
642 g_signal_connect(G_OBJECT(button), "clicked",
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
643 G_CALLBACK(delete_cb), dialog);
8df6b6a43a49 [gaim-migrate @ 5401]
Christian Hammond <chipx86@chipx86.com>
parents: 5051
diff changeset
644
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
645 /* Cancel button */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
646 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
647 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
648 gtk_widget_show(button);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
649
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
650 g_signal_connect(G_OBJECT(button), "clicked",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
651 G_CALLBACK(cancel_cb), dialog);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
652
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
653 /* Save button */
5876
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
654 dialog->save_button = button = gtk_button_new_from_stock(GTK_STOCK_SAVE);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
655 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
656 gtk_widget_show(button);
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
657
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
658 g_signal_connect(G_OBJECT(button), "clicked",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
659 G_CALLBACK(save_pounce_cb), dialog);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
660
5876
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
661 if (*gtk_entry_get_text(GTK_ENTRY(dialog->buddy_entry)) == '\0')
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
662 gtk_widget_set_sensitive(button, FALSE);
c12b198bde14 [gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents: 5875
diff changeset
663
8803
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
664 /* Setup drag-and-drop */
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
665 gtk_drag_dest_set(window,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
666 GTK_DEST_DEFAULT_MOTION |
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
667 GTK_DEST_DEFAULT_DROP,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
668 dnd_targets,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
669 sizeof(dnd_targets) / sizeof(GtkTargetEntry),
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
670 GDK_ACTION_COPY);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
671 gtk_drag_dest_set(dialog->buddy_entry,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
672 GTK_DEST_DEFAULT_MOTION |
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
673 GTK_DEST_DEFAULT_DROP,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
674 dnd_targets,
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
675 sizeof(dnd_targets) / sizeof(GtkTargetEntry),
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
676 GDK_ACTION_COPY);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
677
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
678 g_signal_connect(G_OBJECT(window), "drag_data_received",
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
679 G_CALLBACK(pounce_dnd_recv), dialog);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
680 g_signal_connect(G_OBJECT(dialog->buddy_entry), "drag_data_received",
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
681 G_CALLBACK(pounce_dnd_recv), dialog);
79bc4ecbcac7 [gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents: 8259
diff changeset
682
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
683 /* Set the values of stuff. */
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
684 if (cur_pounce != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
685 {
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
686 GaimPounceEvent events = gaim_pounce_get_events(cur_pounce);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
687 const char *value;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
688
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
689 /* Events */
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
690 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->signon),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
691 (events & GAIM_POUNCE_SIGNON));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
692 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->signoff),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
693 (events & GAIM_POUNCE_SIGNOFF));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
694 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->away),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
695 (events & GAIM_POUNCE_AWAY));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
696 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->away_return),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
697 (events & GAIM_POUNCE_AWAY_RETURN));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
698 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->idle),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
699 (events & GAIM_POUNCE_IDLE));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
700 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->idle_return),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
701 (events & GAIM_POUNCE_IDLE_RETURN));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
702 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->typing),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
703 (events & GAIM_POUNCE_TYPING));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
704 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->stop_typing),
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
705 (events & GAIM_POUNCE_TYPING_STOPPED));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
706
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
707 /* Actions */
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
708 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->open_win),
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
709 gaim_pounce_action_is_enabled(cur_pounce, "open-window"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
710 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->popup),
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
711 gaim_pounce_action_is_enabled(cur_pounce, "popup-notify"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
712 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->send_msg),
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
713 gaim_pounce_action_is_enabled(cur_pounce, "send-message"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
714 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd),
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
715 gaim_pounce_action_is_enabled(cur_pounce, "execute-command"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
716 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->play_sound),
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
717 gaim_pounce_action_is_enabled(cur_pounce, "play-sound"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
718
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
719 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->save_pounce),
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
720 gaim_pounce_get_save(cur_pounce));
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
721
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
722 if ((value = gaim_pounce_action_get_attribute(cur_pounce,
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
723 "send-message",
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
724 "message")) != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
725 {
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
726 gtk_entry_set_text(GTK_ENTRY(dialog->send_msg_entry), value);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
727 }
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
728
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
729 if ((value = gaim_pounce_action_get_attribute(cur_pounce,
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
730 "execute-command",
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
731 "command")) != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
732 {
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
733 gtk_entry_set_text(GTK_ENTRY(dialog->exec_cmd_entry), value);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
734 }
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
735
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
736 if ((value = gaim_pounce_action_get_attribute(cur_pounce,
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
737 "play-sound",
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
738 "filename")) != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
739 {
5864
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
740 gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry), value);
86822afeeab0 [gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents: 5857
diff changeset
741 }
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
742 }
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
743 else
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
744 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
745 GaimBuddy *buddy = NULL;
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
746
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
747 if (name != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
748 buddy = gaim_find_buddy(account, name);
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
749
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
750 /* Set some defaults */
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
751 if (buddy == NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
752 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
753 gtk_toggle_button_set_active(
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
754 GTK_TOGGLE_BUTTON(dialog->signon), TRUE);
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
755 }
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
756 else
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
757 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
758 if (!GAIM_BUDDY_IS_ONLINE(buddy))
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
759 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
760 gtk_toggle_button_set_active(
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
761 GTK_TOGGLE_BUTTON(dialog->signon), TRUE);
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
762 }
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
763 else
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
764 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
765 gboolean default_set = FALSE;
9949
377cd65fab3d [gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents: 9910
diff changeset
766 GaimPresence *presence = gaim_buddy_get_presence(buddy);
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
767
9949
377cd65fab3d [gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents: 9910
diff changeset
768 if (gaim_presence_is_idle(presence))
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
769 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
770 gtk_toggle_button_set_active(
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
771 GTK_TOGGLE_BUTTON(dialog->idle_return), TRUE);
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
772
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
773 default_set = TRUE;
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
774 }
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
775
9949
377cd65fab3d [gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents: 9910
diff changeset
776 if (!gaim_presence_is_available(presence))
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
777 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
778 gtk_toggle_button_set_active(
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
779 GTK_TOGGLE_BUTTON(dialog->away_return), TRUE);
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
780
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
781 default_set = TRUE;
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
782 }
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
783
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
784 if (!default_set)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
785 {
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
786 gtk_toggle_button_set_active(
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
787 GTK_TOGGLE_BUTTON(dialog->signon), TRUE);
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
788 }
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
789 }
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
790 }
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
791
9206
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
792 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->open_win),
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
793 gaim_prefs_get_bool("/gaim/gtk/pounces/default_actions/open-window"));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
794 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->popup),
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
795 gaim_prefs_get_bool("/gaim/gtk/pounces/default_actions/popup-notify"));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
796 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->send_msg),
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
797 gaim_prefs_get_bool("/gaim/gtk/pounces/default_actions/send-message"));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
798 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd),
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
799 gaim_prefs_get_bool("/gaim/gtk/pounces/default_actions/execute-command"));
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
800 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->play_sound),
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
801 gaim_prefs_get_bool("/gaim/gtk/pounces/default_actions/play-sound"));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
802 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
803
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
804 gtk_widget_show_all(vbox2);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
805 gtk_widget_show(window);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
806 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
807
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
808 static void
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6660
diff changeset
809 new_pounce_cb(GtkWidget *w, GaimBuddy *b)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
810 {
5937
2315e21b7638 [gaim-migrate @ 6377]
Christian Hammond <chipx86@chipx86.com>
parents: 5907
diff changeset
811 if (b == NULL)
2315e21b7638 [gaim-migrate @ 6377]
Christian Hammond <chipx86@chipx86.com>
parents: 5907
diff changeset
812 gaim_gtkpounce_dialog_show(NULL, NULL, NULL);
2315e21b7638 [gaim-migrate @ 6377]
Christian Hammond <chipx86@chipx86.com>
parents: 5907
diff changeset
813 else
2315e21b7638 [gaim-migrate @ 6377]
Christian Hammond <chipx86@chipx86.com>
parents: 5907
diff changeset
814 gaim_gtkpounce_dialog_show(b->account, b->name, NULL);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
815 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
816
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
817 static void
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
818 delete_pounce_cb(GtkWidget *w, GaimPounce *pounce)
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
819 {
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
820 gaim_pounce_destroy(pounce);
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
821 }
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
822
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
823 static void
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
824 edit_pounce_cb(GtkWidget *w, GaimPounce *pounce)
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
825 {
5907
b2812113a4a6 [gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents: 5877
diff changeset
826 gaim_gtkpounce_dialog_show(NULL, NULL, pounce);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
827 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
828
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
829 static gboolean
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
830 fill_menu(GtkWidget *menu, GCallback cb)
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
831 {
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
832 GtkWidget *image;
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
833 GtkWidget *item;
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
834 GdkPixbuf *pixbuf, *scale;
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
835 GaimPounce *pounce;
10250
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
836 GaimBuddy *buddy;
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
837 const char *buddyname;
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
838 gboolean has_items = FALSE;
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
839 GList *bp;
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
840
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
841 for (bp = gaim_pounces_get_all(); bp != NULL; bp = bp->next)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
842 {
5857
52cff8a95261 [gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents: 5676
diff changeset
843 pounce = (GaimPounce *)bp->data;
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
844
8235
00045afab151 [gaim-migrate @ 8958]
Gary Kramlich <grim@pidgin.im>
parents: 8157
diff changeset
845 /* Check if account is online, if not skip it */
10250
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
846 if (!gaim_account_is_connected(gaim_pounce_get_pouncer(pounce)))
8235
00045afab151 [gaim-migrate @ 8958]
Gary Kramlich <grim@pidgin.im>
parents: 8157
diff changeset
847 continue;
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
848
10250
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
849 buddy = gaim_find_buddy(gaim_pounce_get_pouncer(pounce), gaim_pounce_get_pouncee(pounce));
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
850
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
851 if (buddy != NULL)
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
852 buddyname = gaim_buddy_get_contact_alias(buddy);
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
853 else
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
854 buddyname = gaim_pounce_get_pouncee(pounce);
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
855
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
856 has_items = TRUE;
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
857
5161
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
858 /* Build the menu item */
10250
9a0f00083ec1 [gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents: 10246
diff changeset
859 item = gtk_image_menu_item_new_with_label(buddyname);
5161
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
860
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
861 /* Create a pixmap for the protocol icon. */
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
862 pixbuf = create_prpl_icon(gaim_pounce_get_pouncer(pounce));
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
863 if (pixbuf != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
864 {
5161
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
865 scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16,
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
866 GDK_INTERP_BILINEAR);
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
867
5161
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
868 /* Now convert it to GtkImage */
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
869 image = gtk_image_new_from_pixbuf(scale);
5161
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
870 g_object_unref(G_OBJECT(scale));
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
871 g_object_unref(G_OBJECT(pixbuf));
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
872 gtk_widget_show(image);
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
873 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
874 }
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
875
5161
9a5172d9d9e1 [gaim-migrate @ 5525]
Nathan Walp <nwalp@pidgin.im>
parents: 5158
diff changeset
876 /* Put the item in the menu */
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
877 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
878 gtk_widget_show(item);
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
879
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
880 /* Set our callbacks. */
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
881 g_signal_connect(G_OBJECT(item), "activate", cb, pounce);
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
882 }
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
883
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
884 return has_items;
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
885 }
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
886
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
887 void
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
888 gaim_gtkpounce_menu_build(GtkWidget *menu)
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
889 {
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
890 GtkWidget *remmenu;
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
891 GtkWidget *item;
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
892 GList *children, *l;
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
893 gboolean has_items;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
894
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
895 g_return_if_fail(menu != NULL);
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8236
diff changeset
896
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
897 if ((children = gtk_container_get_children(GTK_CONTAINER(menu))) != NULL)
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
898 {
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
899 for (l = children; l != NULL; l = l->next)
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
900 gtk_widget_destroy(GTK_WIDGET(l->data));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
901
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
902 g_list_free(children);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
903 }
8252
15c6f400498a [gaim-migrate @ 8975]
Nathan Walp <nwalp@pidgin.im>
parents: 8236
diff changeset
904
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
905 /* "New Buddy Pounce" */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
906 item = gtk_menu_item_new_with_label(_("New Buddy Pounce"));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
907 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
10352
802e7ab5b838 [gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents: 10250
diff changeset
908 gtk_widget_set_sensitive(item, (gaim_connections_get_all() != NULL));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
909 gtk_widget_show(item);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
910 g_signal_connect(G_OBJECT(item), "activate",
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
911 G_CALLBACK(new_pounce_cb), NULL);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
912
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
913 /* "Remove Buddy Pounce" */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
914 item = gtk_menu_item_new_with_label(_("Remove Buddy Pounce"));
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
915 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
916
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
917 /* "Remove Buddy Pounce" menu */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
918 remmenu = gtk_menu_new();
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
919
8259
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
920 has_items = fill_menu(remmenu, G_CALLBACK(delete_pounce_cb));
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
921
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
922 if (!has_items)
7ed91862683d [gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents: 8252
diff changeset
923 gtk_widget_set_sensitive(item, FALSE);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
924
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
925 gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), remmenu);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
926 gtk_widget_show(remmenu);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
927 gtk_widget_show(item);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
928
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
929 /* Separator */
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
930 item = gtk_separator_menu_item_new();
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
931 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
932 gtk_widget_show(item);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
933
5153
4865538db77a [gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents: 5054
diff changeset
934 fill_menu(menu, G_CALLBACK(edit_pounce_cb));
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
935 }
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
936
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
937 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
938 pounce_cb(GaimPounce *pounce, GaimPounceEvent events, void *data)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
939 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
940 GaimConversation *conv;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
941 GaimAccount *account;
7994
13b0203d6d52 [gaim-migrate @ 8671]
Christian Hammond <chipx86@chipx86.com>
parents: 7276
diff changeset
942 GaimBuddy *buddy;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
943 const char *pouncee;
7994
13b0203d6d52 [gaim-migrate @ 8671]
Christian Hammond <chipx86@chipx86.com>
parents: 7276
diff changeset
944 const char *alias;
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
945
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
946 pouncee = gaim_pounce_get_pouncee(pounce);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
947 account = gaim_pounce_get_pouncer(pounce);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
948
7994
13b0203d6d52 [gaim-migrate @ 8671]
Christian Hammond <chipx86@chipx86.com>
parents: 7276
diff changeset
949 buddy = gaim_find_buddy(account, pouncee);
13b0203d6d52 [gaim-migrate @ 8671]
Christian Hammond <chipx86@chipx86.com>
parents: 7276
diff changeset
950
9620
fe99fcea5c1c [gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents: 9606
diff changeset
951 alias = gaim_buddy_get_alias(buddy);
7994
13b0203d6d52 [gaim-migrate @ 8671]
Christian Hammond <chipx86@chipx86.com>
parents: 7276
diff changeset
952
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
953 if (gaim_pounce_action_is_enabled(pounce, "open-window"))
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
954 {
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10238
diff changeset
955 conv = gaim_find_conversation_with_account(GAIM_CONV_IM, pouncee, account);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
956
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
957 if (conv == NULL)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
958 conv = gaim_conversation_new(GAIM_CONV_IM, account, pouncee);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
959 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
960
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
961 if (gaim_pounce_action_is_enabled(pounce, "popup-notify"))
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
962 {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
963 char tmp[1024];
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
964 const char *name_shown;
10167
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9949
diff changeset
965 char *escaped;
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9949
diff changeset
966
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9949
diff changeset
967 escaped = g_markup_escape_text(alias, -1);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
968
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
969 /*
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
970 * Here we place the protocol name in the pounce dialog to lessen
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
971 * confusion about what protocol a pounce is for.
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
972 */
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
973 g_snprintf(tmp, sizeof(tmp),
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
974 (events & GAIM_POUNCE_TYPING) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
975 _("%s has started typing to you (%s)") :
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
976 (events & GAIM_POUNCE_SIGNON) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
977 _("%s has signed on (%s)") :
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
978 (events & GAIM_POUNCE_IDLE_RETURN) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
979 _("%s has returned from being idle (%s)") :
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
980 (events & GAIM_POUNCE_AWAY_RETURN) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
981 _("%s has returned from being away (%s)") :
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
982 (events & GAIM_POUNCE_TYPING_STOPPED) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
983 _("%s has stopped typing to you (%s)") :
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
984 (events & GAIM_POUNCE_SIGNOFF) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
985 _("%s has signed off (%s)") :
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
986 (events & GAIM_POUNCE_IDLE) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
987 _("%s has become idle (%s)") :
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
988 (events & GAIM_POUNCE_AWAY) ?
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
989 _("%s has gone away. (%s)") :
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
990 _("Unknown pounce event. Please report this!"),
10167
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9949
diff changeset
991 escaped, gaim_account_get_protocol_name(account));
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9949
diff changeset
992
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9949
diff changeset
993 g_free(escaped);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
994
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
995 /*
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
996 * Ok here is where I change the second argument, title, from
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
997 * NULL to the account name if that's all we have or the account
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
998 * alias if we have that
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
999 */
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1000 if ((name_shown = gaim_account_get_alias(account)) == NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1001 name_shown = gaim_account_get_username(account);
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1002
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1003 gaim_notify_info(NULL, name_shown, tmp, gaim_date_full());
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1004 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1005
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1006 if (gaim_pounce_action_is_enabled(pounce, "send-message"))
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1007 {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1008 const char *message;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1009
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1010 message = gaim_pounce_action_get_attribute(pounce, "send-message",
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1011 "message");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1012
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1013 if (message != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1014 {
10246
aa5bff72f94c [gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents: 10238
diff changeset
1015 conv = gaim_find_conversation_with_account(GAIM_CONV_IM, pouncee, account);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1016
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1017 if (conv == NULL)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1018 conv = gaim_conversation_new(GAIM_CONV_IM, account, pouncee);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1019
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6695
diff changeset
1020 gaim_conversation_write(conv, NULL, message,
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6444
diff changeset
1021 GAIM_MESSAGE_SEND, time(NULL));
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1022
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6695
diff changeset
1023 serv_send_im(account->gc, (char *)pouncee, (char *)message, 0);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1024 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1025 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1026
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1027 if (gaim_pounce_action_is_enabled(pounce, "execute-command"))
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1028 {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1029 const char *command;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1030
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1031 command = gaim_pounce_action_get_attribute(pounce, "execute-command",
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1032 "command");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1033
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1034 if (command != NULL)
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1035 {
6660
b0f52293fb7e [gaim-migrate @ 7185]
Kevin Stange <kstange@pidgin.im>
parents: 6646
diff changeset
1036 #ifndef _WIN32
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1037 int pid = fork();
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1038
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1039 if (pid == 0) {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1040 char *args[4];
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1041
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1042 args[0] = "sh";
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1043 args[1] = "-c";
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1044 args[2] = (char *)command;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1045 args[3] = NULL;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1046
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1047 execvp(args[0], args);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1048
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1049 _exit(0);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1050 }
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1051 #else /* !_WIN32 */
6660
b0f52293fb7e [gaim-migrate @ 7185]
Kevin Stange <kstange@pidgin.im>
parents: 6646
diff changeset
1052 STARTUPINFO StartInfo;
b0f52293fb7e [gaim-migrate @ 7185]
Kevin Stange <kstange@pidgin.im>
parents: 6646
diff changeset
1053 PROCESS_INFORMATION ProcInfo;
b0f52293fb7e [gaim-migrate @ 7185]
Kevin Stange <kstange@pidgin.im>
parents: 6646
diff changeset
1054
b0f52293fb7e [gaim-migrate @ 7185]
Kevin Stange <kstange@pidgin.im>
parents: 6646
diff changeset
1055 memset(&ProcInfo, 0, sizeof(ProcInfo));
b0f52293fb7e [gaim-migrate @ 7185]
Kevin Stange <kstange@pidgin.im>
parents: 6646
diff changeset
1056 memset(&StartInfo, 0 , sizeof(StartInfo));
b0f52293fb7e [gaim-migrate @ 7185]
Kevin Stange <kstange@pidgin.im>
parents: 6646
diff changeset
1057 StartInfo.cb = sizeof(StartInfo);
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1058 CreateProcess(NULL, (char *)command, NULL, NULL, 0, 0, NULL,
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1059 NULL, &StartInfo, &ProcInfo);
7276
08382c6de2eb [gaim-migrate @ 7855]
Christian Hammond <chipx86@chipx86.com>
parents: 7098
diff changeset
1060 gaim_debug_info("pounce",
08382c6de2eb [gaim-migrate @ 7855]
Christian Hammond <chipx86@chipx86.com>
parents: 7098
diff changeset
1061 "Pounce execute command called for: %s\n",
08382c6de2eb [gaim-migrate @ 7855]
Christian Hammond <chipx86@chipx86.com>
parents: 7098
diff changeset
1062 command);
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1063 #endif /* !_WIN32 */
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1064 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1065 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1066
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1067 if (gaim_pounce_action_is_enabled(pounce, "play-sound"))
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1068 {
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1069 const char *sound;
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1070
9205
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1071 sound = gaim_pounce_action_get_attribute(pounce,
8c4dbbe6386f [gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents: 9191
diff changeset
1072 "play-sound", "filename");
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1073
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1074 if (sound != NULL)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1075 gaim_sound_play_file(sound);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1076 else
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1077 gaim_sound_play_event(GAIM_SOUND_POUNCE_DEFAULT);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1078 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1079 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1080
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1081 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1082 free_pounce(GaimPounce *pounce)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1083 {
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
1084 GaimBuddyList *blist;
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
1085 GaimGtkBuddyList *gtkblist;
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1086
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1087 /* Rebuild the pounce menu */
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1088 blist = gaim_get_blist();
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1089
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1090 if (GAIM_IS_GTK_BLIST(blist))
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1091 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1092 gtkblist = GAIM_GTK_BLIST(blist);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1093
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1094 gaim_gtkpounce_menu_build(gtkblist->bpmenu);
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1095 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1096 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1097
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1098 static void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1099 new_pounce(GaimPounce *pounce)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1100 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1101 gaim_pounce_action_register(pounce, "open-window");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1102 gaim_pounce_action_register(pounce, "popup-notify");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1103 gaim_pounce_action_register(pounce, "send-message");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1104 gaim_pounce_action_register(pounce, "execute-command");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1105 gaim_pounce_action_register(pounce, "play-sound");
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1106 }
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1107
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1108 void
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1109 gaim_gtk_pounces_init(void)
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1110 {
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1111 gaim_pounces_register_handler(GAIM_GTK_UI, pounce_cb, new_pounce,
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1112 free_pounce);
9206
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1113
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1114 gaim_prefs_add_none("/gaim/gtk/pounces");
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1115 gaim_prefs_add_none("/gaim/gtk/pounces/default_actions");
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1116 gaim_prefs_add_bool("/gaim/gtk/pounces/default_actions/open-window",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1117 FALSE);
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1118 gaim_prefs_add_bool("/gaim/gtk/pounces/default_actions/popup-notify",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1119 FALSE);
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1120 gaim_prefs_add_bool("/gaim/gtk/pounces/default_actions/send-message",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1121 TRUE);
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1122 gaim_prefs_add_bool("/gaim/gtk/pounces/default_actions/execute-command",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1123 FALSE);
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1124 gaim_prefs_add_bool("/gaim/gtk/pounces/default_actions/play-sound",
57a4db675f8d [gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents: 9205
diff changeset
1125 FALSE);
5875
493a921c0378 [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1126 }

mercurial