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