Thu, 29 Jun 2017 15:33:29 -0500
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Modern Linux desktops use one of 3 DBus interfaces for querying if
the screensaver is currently active. There's a FreeDesktop one, a
GNOME one, and a KDE one. Rather than querying XScreensaver, which
may not be available, such as with Wayland, this patch ports Pidgin's
idle checking function to use these modern DBus interfaces.
Because Gio includes built-in DBus API, this patch also drops the
guards around pidgin_get_time_idle(), which also re-enables the
Win32 code which wasn't enabled with the previous guards.
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* pidgin |
| 5032 | 2 | * |
|
15931
716b5fac1895
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents:
15884
diff
changeset
|
3 | * Pidgin is the legal property of its developers, whose names are too numerous |
| 8046 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
6 | * |
| 5032 | 7 | * This program is free software; you can redistribute it and/or modify |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 18 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19786
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 5032 | 20 | * |
| 21 | */ | |
| 9791 | 22 | #include "internal.h" |
| 15577 | 23 | #include "pidgin.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
24 | |
| 8235 | 25 | #include "account.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
26 | #include "conversation.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
27 | #include "debug.h" |
|
36543
a8c3fecee2d3
Renamed prpl.[ch] to protocol.[ch]
Ankit Vani <a@nevitus.org>
parents:
34874
diff
changeset
|
28 | #include "protocol.h" |
|
9505
6120a3cb8af7
[gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents:
9206
diff
changeset
|
29 | #include "request.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
30 | #include "server.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
31 | #include "sound.h" |
|
9709
2e73f176cc80
[gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents:
9699
diff
changeset
|
32 | #include "util.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
33 | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35500
diff
changeset
|
34 | #include "gtk3compat.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
35 | #include "gtkblist.h" |
|
9709
2e73f176cc80
[gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents:
9699
diff
changeset
|
36 | #include "gtkdialogs.h" |
| 5032 | 37 | #include "gtkpounce.h" |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
38 | #include "gtknotify.h" |
|
15883
969b74a3e27a
According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@pidgin.im>
parents:
15882
diff
changeset
|
39 | #include "pidginstock.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
40 | #include "gtkutils.h" |
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
41 | #include "gtkwebview.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
42 | |
|
33212
970a460e74fa
Fix compilation for GTK2
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
33195
diff
changeset
|
43 | #include <gdk/gdkkeysyms.h> |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
44 | |
|
35455
216a37403c5b
Fix a bunch of gtk-doc warnings in pidgin
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
45 | /* |
| 12136 | 46 | * These are used for the GtkTreeView when you're scrolling through |
| 47 | * all your saved pounces. | |
| 48 | */ | |
| 49 | enum | |
| 50 | { | |
| 15884 | 51 | /* Hidden column containing the PurplePounce */ |
| 12136 | 52 | POUNCES_MANAGER_COLUMN_POUNCE, |
| 53 | POUNCES_MANAGER_COLUMN_ICON, | |
| 54 | POUNCES_MANAGER_COLUMN_TARGET, | |
| 55 | POUNCES_MANAGER_COLUMN_ACCOUNT, | |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
56 | POUNCES_MANAGER_COLUMN_RECURRING, |
| 12136 | 57 | POUNCES_MANAGER_NUM_COLUMNS |
| 58 | }; | |
| 59 | ||
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
60 | typedef struct |
| 5032 | 61 | { |
| 62 | /* Pounce data */ | |
| 15884 | 63 | PurplePounce *pounce; |
| 64 | PurpleAccount *account; | |
| 5032 | 65 | |
| 66 | /* The window */ | |
| 67 | GtkWidget *window; | |
| 68 | ||
| 12694 | 69 | /* Pounce on Whom */ |
| 5032 | 70 | GtkWidget *account_menu; |
| 71 | GtkWidget *buddy_entry; | |
| 72 | ||
| 12694 | 73 | /* Pounce options */ |
| 74 | GtkWidget *on_away; | |
| 75 | ||
| 76 | /* Pounce When Buddy... */ | |
| 5032 | 77 | GtkWidget *signon; |
| 78 | GtkWidget *signoff; | |
| 79 | GtkWidget *away; | |
| 80 | GtkWidget *away_return; | |
| 81 | GtkWidget *idle; | |
| 82 | GtkWidget *idle_return; | |
| 83 | GtkWidget *typing; | |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
84 | GtkWidget *typed; |
| 5032 | 85 | GtkWidget *stop_typing; |
| 12694 | 86 | GtkWidget *message_recv; |
| 5032 | 87 | |
| 12694 | 88 | /* Action */ |
| 5032 | 89 | GtkWidget *open_win; |
| 90 | GtkWidget *popup; | |
| 12934 | 91 | GtkWidget *popup_entry; |
| 5032 | 92 | GtkWidget *send_msg; |
| 93 | GtkWidget *send_msg_entry; | |
| 94 | GtkWidget *exec_cmd; | |
| 95 | GtkWidget *exec_cmd_entry; | |
| 5319 | 96 | GtkWidget *exec_cmd_browse; |
| 5032 | 97 | GtkWidget *play_sound; |
| 98 | GtkWidget *play_sound_entry; | |
| 5319 | 99 | GtkWidget *play_sound_browse; |
| 100 | GtkWidget *play_sound_test; | |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
101 | GtkWidget *play_sound_reset; |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
102 | |
| 5032 | 103 | GtkWidget *save_pounce; |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
104 | |
|
5876
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
105 | /* Buttons */ |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
106 | GtkWidget *save_button; |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
107 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
108 | } PidginPounceDialog; |
| 5032 | 109 | |
| 12136 | 110 | typedef struct |
| 111 | { | |
| 112 | GtkWidget *window; | |
| 113 | GtkListStore *model; | |
| 114 | GtkWidget *treeview; | |
| 115 | GtkWidget *modify_button; | |
| 116 | GtkWidget *delete_button; | |
| 117 | } PouncesManager; | |
| 118 | ||
| 119 | static PouncesManager *pounces_manager = NULL; | |
| 120 | ||
| 5032 | 121 | /************************************************************************** |
| 122 | * Callbacks | |
| 123 | **************************************************************************/ | |
| 124 | static gint | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
125 | delete_win_cb(GtkWidget *w, GdkEventAny *e, PidginPounceDialog *dialog) |
| 5032 | 126 | { |
| 127 | gtk_widget_destroy(dialog->window); | |
| 128 | g_free(dialog); | |
| 129 | ||
| 130 | return TRUE; | |
| 131 | } | |
| 132 | ||
| 133 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
134 | cancel_cb(GtkWidget *w, PidginPounceDialog *dialog) |
| 5032 | 135 | { |
| 136 | delete_win_cb(NULL, NULL, dialog); | |
| 137 | } | |
| 138 | ||
| 5319 | 139 | static void |
|
9505
6120a3cb8af7
[gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents:
9206
diff
changeset
|
140 | pounce_update_entry_fields(void *user_data, const char *filename) |
| 5319 | 141 | { |
|
9505
6120a3cb8af7
[gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents:
9206
diff
changeset
|
142 | GtkWidget *entry = (GtkWidget *)user_data; |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
143 | |
|
9505
6120a3cb8af7
[gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents:
9206
diff
changeset
|
144 | gtk_entry_set_text(GTK_ENTRY(entry), filename); |
| 5319 | 145 | } |
| 146 | ||
| 147 | static void | |
|
9505
6120a3cb8af7
[gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents:
9206
diff
changeset
|
148 | filesel(GtkWidget *widget, gpointer data) |
| 5319 | 149 | { |
| 150 | GtkWidget *entry; | |
|
9505
6120a3cb8af7
[gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents:
9206
diff
changeset
|
151 | const gchar *name; |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
152 | |
|
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
153 | entry = (GtkWidget *)data; |
|
9505
6120a3cb8af7
[gaim-migrate @ 10332]
Mark Doliner <markdoliner@pidgin.im>
parents:
9206
diff
changeset
|
154 | name = gtk_entry_get_text(GTK_ENTRY(entry)); |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
155 | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
156 | purple_request_file(entry, _("Select a file"), name, FALSE, |
|
34333
b92698241603
Request API refactoring: switch purple_request_file to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34331
diff
changeset
|
157 | G_CALLBACK(pounce_update_entry_fields), NULL, NULL, entry); |
|
15319
f8f83efdc3a6
[gaim-migrate @ 18047]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15315
diff
changeset
|
158 | g_signal_connect_swapped(G_OBJECT(entry), "destroy", |
| 15884 | 159 | G_CALLBACK(purple_request_close_with_handle), entry); |
| 5319 | 160 | } |
| 161 | ||
| 162 | static void | |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
163 | pounce_test_sound(GtkWidget *w, GtkWidget *entry) |
| 5319 | 164 | { |
| 165 | const char *filename; | |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
166 | gboolean temp_mute; |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
167 | |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
168 | temp_mute = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute"); |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
169 | |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
170 | if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", FALSE); |
| 5319 | 171 | |
| 172 | filename = gtk_entry_get_text(GTK_ENTRY(entry)); | |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
173 | |
|
38259
c593fc9f5438
Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents:
38258
diff
changeset
|
174 | if (filename != NULL && *filename != '\0' && !purple_strequal(filename, _("(default)"))) |
| 15884 | 175 | purple_sound_play_file(filename, NULL); |
| 5319 | 176 | else |
| 15884 | 177 | purple_sound_play_event(PURPLE_SOUND_POUNCE_DEFAULT, NULL); |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
178 | |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
179 | if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", TRUE); |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
180 | } |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
181 | |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
182 | static void |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
183 | pounce_reset_sound(GtkWidget *w, GtkWidget *entry) |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
184 | { |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
185 | gtk_entry_set_text(GTK_ENTRY(entry), _("(default)")); |
| 5319 | 186 | } |
| 5032 | 187 | |
| 188 | static void | |
| 15884 | 189 | add_pounce_to_treeview(GtkListStore *model, PurplePounce *pounce) |
| 12136 | 190 | { |
| 191 | GtkTreeIter iter; | |
| 15884 | 192 | PurpleAccount *account; |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
193 | gboolean recurring; |
| 12136 | 194 | const char *pouncer; |
| 195 | const char *pouncee; | |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13033
diff
changeset
|
196 | GdkPixbuf *pixbuf; |
| 12136 | 197 | |
| 15884 | 198 | account = purple_pounce_get_pouncer(pounce); |
| 12136 | 199 | |
|
36545
23b59a16c808
Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents:
36543
diff
changeset
|
200 | pixbuf = pidgin_create_protocol_icon(account, PIDGIN_PROTOCOL_ICON_MEDIUM); |
| 12136 | 201 | |
| 15884 | 202 | pouncer = purple_account_get_username(account); |
| 203 | pouncee = purple_pounce_get_pouncee(pounce); | |
| 204 | recurring = purple_pounce_get_save(pounce); | |
| 12136 | 205 | |
| 206 | gtk_list_store_append(model, &iter); | |
| 207 | gtk_list_store_set(model, &iter, | |
| 208 | POUNCES_MANAGER_COLUMN_POUNCE, pounce, | |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13033
diff
changeset
|
209 | POUNCES_MANAGER_COLUMN_ICON, pixbuf, |
| 12136 | 210 | POUNCES_MANAGER_COLUMN_TARGET, pouncee, |
| 211 | POUNCES_MANAGER_COLUMN_ACCOUNT, pouncer, | |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
212 | POUNCES_MANAGER_COLUMN_RECURRING, recurring, |
| 12136 | 213 | -1); |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13033
diff
changeset
|
214 | |
|
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13033
diff
changeset
|
215 | if (pixbuf != NULL) |
|
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13033
diff
changeset
|
216 | g_object_unref(pixbuf); |
| 12136 | 217 | } |
| 218 | ||
| 219 | static void | |
| 220 | populate_pounces_list(PouncesManager *dialog) | |
| 221 | { | |
|
18190
bcf28ef7e8ff
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents:
18186
diff
changeset
|
222 | GList *pounces; |
| 12136 | 223 | |
| 224 | gtk_list_store_clear(dialog->model); | |
| 225 | ||
|
18209
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18193
diff
changeset
|
226 | for (pounces = purple_pounces_get_all_for_ui(PIDGIN_UI); pounces != NULL; |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18193
diff
changeset
|
227 | pounces = g_list_delete_link(pounces, pounces)) |
| 12136 | 228 | { |
| 229 | add_pounce_to_treeview(dialog->model, pounces->data); | |
| 230 | } | |
| 231 | } | |
| 232 | ||
| 233 | static void | |
| 234 | update_pounces(void) | |
| 235 | { | |
| 236 | /* Rebuild the pounces list if the pounces manager is open */ | |
| 237 | if (pounces_manager != NULL) | |
| 238 | { | |
| 239 | populate_pounces_list(pounces_manager); | |
| 240 | } | |
| 241 | } | |
| 242 | ||
| 243 | static void | |
| 15884 | 244 | signed_on_off_cb(PurpleConnection *gc, gpointer user_data) |
| 12136 | 245 | { |
| 246 | update_pounces(); | |
| 247 | } | |
| 248 | ||
| 249 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
250 | save_pounce_cb(GtkWidget *w, PidginPounceDialog *dialog) |
| 5032 | 251 | { |
| 252 | const char *name; | |
|
17388
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
253 | const char *command, *sound, *reason; |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
254 | char *message; |
| 15884 | 255 | PurplePounceEvent events = PURPLE_POUNCE_NONE; |
| 256 | PurplePounceOption options = PURPLE_POUNCE_OPTION_NONE; | |
| 5032 | 257 | |
| 258 | name = gtk_entry_get_text(GTK_ENTRY(dialog->buddy_entry)); | |
| 259 | ||
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
260 | if (*name == '\0') |
|
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
261 | { |
|
34449
bbcb198650b7
Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34333
diff
changeset
|
262 | purple_notify_error(NULL, NULL, _("Please enter a buddy to " |
|
bbcb198650b7
Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34333
diff
changeset
|
263 | "pounce."), NULL, NULL); |
| 5032 | 264 | return; |
| 265 | } | |
| 266 | ||
| 12694 | 267 | /* Options */ |
| 268 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->on_away))) | |
| 15884 | 269 | options |= PURPLE_POUNCE_OPTION_AWAY; |
| 12694 | 270 | |
| 5032 | 271 | /* Events */ |
| 272 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->signon))) | |
| 15884 | 273 | events |= PURPLE_POUNCE_SIGNON; |
| 5032 | 274 | |
| 275 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->signoff))) | |
| 15884 | 276 | events |= PURPLE_POUNCE_SIGNOFF; |
| 5032 | 277 | |
| 278 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->away))) | |
| 15884 | 279 | events |= PURPLE_POUNCE_AWAY; |
| 5032 | 280 | |
| 281 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->away_return))) | |
| 15884 | 282 | events |= PURPLE_POUNCE_AWAY_RETURN; |
| 5032 | 283 | |
| 284 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->idle))) | |
| 15884 | 285 | events |= PURPLE_POUNCE_IDLE; |
| 5032 | 286 | |
| 287 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->idle_return))) | |
| 15884 | 288 | events |= PURPLE_POUNCE_IDLE_RETURN; |
| 5032 | 289 | |
| 290 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->typing))) | |
| 15884 | 291 | events |= PURPLE_POUNCE_TYPING; |
| 5032 | 292 | |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
293 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->typed))) |
| 15884 | 294 | events |= PURPLE_POUNCE_TYPED; |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
295 | |
| 5032 | 296 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->stop_typing))) |
| 15884 | 297 | events |= PURPLE_POUNCE_TYPING_STOPPED; |
| 5032 | 298 | |
| 12694 | 299 | if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->message_recv))) |
| 15884 | 300 | events |= PURPLE_POUNCE_MESSAGE_RECEIVED; |
| 12694 | 301 | |
| 5032 | 302 | /* Data fields */ |
|
35500
ae6432ea326f
Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents:
35499
diff
changeset
|
303 | message = pidgin_webview_get_body_html(PIDGIN_WEBVIEW(dialog->send_msg_entry)); |
| 5032 | 304 | command = gtk_entry_get_text(GTK_ENTRY(dialog->exec_cmd_entry)); |
| 305 | sound = gtk_entry_get_text(GTK_ENTRY(dialog->play_sound_entry)); | |
| 12934 | 306 | reason = gtk_entry_get_text(GTK_ENTRY(dialog->popup_entry)); |
| 5032 | 307 | |
| 12934 | 308 | if (*reason == '\0') reason = NULL; |
|
17388
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
309 | if (*message == '\0') { |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
310 | g_free(message); |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
311 | message = NULL; |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
312 | } |
| 5032 | 313 | if (*command == '\0') command = NULL; |
|
38258
9a6551eba09c
Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents:
33794
diff
changeset
|
314 | if (*sound == '\0' || purple_strequal(sound, _("(default)"))) sound = NULL; |
| 5032 | 315 | |
|
20168
5d2fb40e4cdf
If a pounce has been deleted or triggered while we're editing it, make a new one when saving instead of crashing. Fixes #3326
Daniel Atallah <datallah@pidgin.im>
parents:
20147
diff
changeset
|
316 | /* If the pounce has already been triggered, let's pretend it is a new one */ |
|
5d2fb40e4cdf
If a pounce has been deleted or triggered while we're editing it, make a new one when saving instead of crashing. Fixes #3326
Daniel Atallah <datallah@pidgin.im>
parents:
20147
diff
changeset
|
317 | if (dialog->pounce != NULL |
|
5d2fb40e4cdf
If a pounce has been deleted or triggered while we're editing it, make a new one when saving instead of crashing. Fixes #3326
Daniel Atallah <datallah@pidgin.im>
parents:
20147
diff
changeset
|
318 | && g_list_find(purple_pounces_get_all(), dialog->pounce) == NULL) { |
|
5d2fb40e4cdf
If a pounce has been deleted or triggered while we're editing it, make a new one when saving instead of crashing. Fixes #3326
Daniel Atallah <datallah@pidgin.im>
parents:
20147
diff
changeset
|
319 | purple_debug_info("gtkpounce", "Saving pounce that no longer exists; creating new pounce.\n"); |
|
5d2fb40e4cdf
If a pounce has been deleted or triggered while we're editing it, make a new one when saving instead of crashing. Fixes #3326
Daniel Atallah <datallah@pidgin.im>
parents:
20147
diff
changeset
|
320 | dialog->pounce = NULL; |
|
5d2fb40e4cdf
If a pounce has been deleted or triggered while we're editing it, make a new one when saving instead of crashing. Fixes #3326
Daniel Atallah <datallah@pidgin.im>
parents:
20147
diff
changeset
|
321 | } |
|
5d2fb40e4cdf
If a pounce has been deleted or triggered while we're editing it, make a new one when saving instead of crashing. Fixes #3326
Daniel Atallah <datallah@pidgin.im>
parents:
20147
diff
changeset
|
322 | |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
323 | if (dialog->pounce == NULL) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
324 | { |
| 15884 | 325 | dialog->pounce = purple_pounce_new(PIDGIN_UI, dialog->account, |
| 12694 | 326 | name, events, options); |
| 5032 | 327 | } |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
328 | else { |
| 15884 | 329 | purple_pounce_set_events(dialog->pounce, events); |
| 330 | purple_pounce_set_options(dialog->pounce, options); | |
| 331 | purple_pounce_set_pouncer(dialog->pounce, dialog->account); | |
| 332 | purple_pounce_set_pouncee(dialog->pounce, name); | |
| 5032 | 333 | } |
| 334 | ||
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
335 | /* Actions */ |
| 15884 | 336 | purple_pounce_action_set_enabled(dialog->pounce, "open-window", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
337 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->open_win))); |
| 15884 | 338 | purple_pounce_action_set_enabled(dialog->pounce, "popup-notify", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
339 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->popup))); |
| 15884 | 340 | purple_pounce_action_set_enabled(dialog->pounce, "send-message", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
341 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->send_msg))); |
| 15884 | 342 | purple_pounce_action_set_enabled(dialog->pounce, "execute-command", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
343 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd))); |
| 15884 | 344 | purple_pounce_action_set_enabled(dialog->pounce, "play-sound", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
345 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->play_sound))); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
346 | |
| 15884 | 347 | purple_pounce_action_set_attribute(dialog->pounce, "send-message", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
348 | "message", message); |
| 15884 | 349 | purple_pounce_action_set_attribute(dialog->pounce, "execute-command", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
350 | "command", command); |
| 15884 | 351 | purple_pounce_action_set_attribute(dialog->pounce, "play-sound", |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
352 | "filename", sound); |
| 15884 | 353 | purple_pounce_action_set_attribute(dialog->pounce, "popup-notify", |
| 12934 | 354 | "reason", reason); |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
355 | |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
356 | /* Set the defaults for next time. */ |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
357 | purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/open-window", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
358 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->open_win))); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
359 | purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/popup-notify", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
360 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->popup))); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
361 | purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/send-message", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
362 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->send_msg))); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
363 | purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/execute-command", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
364 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd))); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
365 | purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/play-sound", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
366 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->play_sound))); |
|
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
367 | |
| 15884 | 368 | purple_pounce_set_save(dialog->pounce, |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
369 | gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->save_pounce))); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
370 | |
| 12136 | 371 | update_pounces(); |
|
17388
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
372 | g_free(message); |
| 5032 | 373 | |
| 12136 | 374 | delete_win_cb(NULL, NULL, dialog); |
| 5032 | 375 | } |
| 376 | ||
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
377 | static gboolean |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
378 | entry_key_press_cb(GtkWidget *widget, GdkEventKey *event, |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
379 | PidginPounceDialog *dialog) |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
380 | { |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
381 | if ((event->keyval == GDK_KEY_Return) |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
382 | || (event->keyval == GDK_KEY_KP_Enter)) { |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
383 | save_pounce_cb(widget, dialog); |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
384 | return TRUE; |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
385 | } |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
386 | |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
387 | return FALSE; |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
388 | } |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
389 | |
| 5054 | 390 | static void |
| 15884 | 391 | pounce_choose_cb(GtkWidget *item, PurpleAccount *account, |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
392 | PidginPounceDialog *dialog) |
| 5032 | 393 | { |
|
5877
37695b88b248
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5876
diff
changeset
|
394 | dialog->account = account; |
| 5032 | 395 | } |
| 396 | ||
|
5876
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
397 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
398 | buddy_changed_cb(GtkEntry *entry, PidginPounceDialog *dialog) |
|
5876
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
399 | { |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
400 | if (dialog->save_button == NULL) |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
401 | return; |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
402 | |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
403 | gtk_widget_set_sensitive(dialog->save_button, |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
404 | *gtk_entry_get_text(entry) != '\0'); |
|
5876
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
405 | } |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
406 | |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
407 | static void |
| 12694 | 408 | message_recv_toggle(GtkButton *message_recv, GtkWidget *send_msg) |
| 409 | { | |
| 410 | gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(message_recv)); | |
| 411 | ||
| 412 | gtk_widget_set_sensitive(send_msg, !active); | |
| 413 | if (active) | |
| 414 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(send_msg), FALSE); | |
| 415 | } | |
| 416 | ||
| 417 | static void | |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
418 | pounce_dnd_recv(GtkWidget *widget, GdkDragContext *dc, gint x, gint y, |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
419 | GtkSelectionData *sd, guint info, guint t, gpointer data) |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
420 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
421 | PidginPounceDialog *dialog; |
|
32422
c215bc5d85e4
Whitespace fixes. Try and check your editor settings before writing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32394
diff
changeset
|
422 | GdkAtom target = gtk_selection_data_get_target(sd); |
|
c215bc5d85e4
Whitespace fixes. Try and check your editor settings before writing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32394
diff
changeset
|
423 | const guchar *sd_data = gtk_selection_data_get_data(sd); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
424 | |
|
32394
f883709bdba4
compiles using GTK+ 3 from git, beware it does not yet run, in fact it crashes...
Marcus Lundblad <malu@pidgin.im>
parents:
30706
diff
changeset
|
425 | if (target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE)) |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
426 | { |
| 15884 | 427 | PurpleBlistNode *node = NULL; |
| 428 | PurpleBuddy *buddy; | |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
429 | |
|
32394
f883709bdba4
compiles using GTK+ 3 from git, beware it does not yet run, in fact it crashes...
Marcus Lundblad <malu@pidgin.im>
parents:
30706
diff
changeset
|
430 | memcpy(&node, sd_data, sizeof(node)); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
431 | |
|
34696
6e0d13978666
Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents:
34662
diff
changeset
|
432 | if (PURPLE_IS_CONTACT(node)) |
| 15884 | 433 | buddy = purple_contact_get_priority_buddy((PurpleContact *)node); |
|
34696
6e0d13978666
Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents:
34662
diff
changeset
|
434 | else if (PURPLE_IS_BUDDY(node)) |
| 15884 | 435 | buddy = (PurpleBuddy *)node; |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
436 | else |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
437 | return; |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
438 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
439 | dialog = (PidginPounceDialog *)data; |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
440 | |
|
32709
0edad3ff7243
Use the PurpleBuddy accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents:
32678
diff
changeset
|
441 | gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry), purple_buddy_get_name(buddy)); |
|
0edad3ff7243
Use the PurpleBuddy accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents:
32678
diff
changeset
|
442 | dialog->account = purple_buddy_get_account(buddy); |
|
0edad3ff7243
Use the PurpleBuddy accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents:
32678
diff
changeset
|
443 | pidgin_account_option_menu_set_selected(dialog->account_menu, purple_buddy_get_account(buddy)); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
444 | |
|
32394
f883709bdba4
compiles using GTK+ 3 from git, beware it does not yet run, in fact it crashes...
Marcus Lundblad <malu@pidgin.im>
parents:
30706
diff
changeset
|
445 | gtk_drag_finish(dc, TRUE, (gdk_drag_context_get_actions(dc) == GDK_ACTION_MOVE), t); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
446 | } |
|
32394
f883709bdba4
compiles using GTK+ 3 from git, beware it does not yet run, in fact it crashes...
Marcus Lundblad <malu@pidgin.im>
parents:
30706
diff
changeset
|
447 | else if (target == gdk_atom_intern("application/x-im-contact", FALSE)) |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
448 | { |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
449 | char *protocol = NULL; |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
450 | char *username = NULL; |
| 15884 | 451 | PurpleAccount *account; |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
452 | |
|
33170
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33141
diff
changeset
|
453 | if (pidgin_parse_x_im_contact((const char *)sd_data, FALSE, &account, |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
454 | &protocol, &username, NULL)) |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
455 | { |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
456 | if (account == NULL) |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
457 | { |
| 15884 | 458 | purple_notify_error(NULL, NULL, |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
459 | _("You are not currently signed on with an account that " |
|
34449
bbcb198650b7
Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34333
diff
changeset
|
460 | "can add that buddy."), NULL, NULL); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
461 | } |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
462 | else |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
463 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
464 | dialog = (PidginPounceDialog *)data; |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
465 | |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
466 | gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry), username); |
|
9910
7b4465b92411
[gaim-migrate @ 10802]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9791
diff
changeset
|
467 | dialog->account = account; |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
468 | pidgin_account_option_menu_set_selected(dialog->account_menu, account); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
469 | } |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
470 | } |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
471 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
472 | g_free(username); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
473 | g_free(protocol); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
474 | |
|
32394
f883709bdba4
compiles using GTK+ 3 from git, beware it does not yet run, in fact it crashes...
Marcus Lundblad <malu@pidgin.im>
parents:
30706
diff
changeset
|
475 | gtk_drag_finish(dc, TRUE, (gdk_drag_context_get_actions(dc) == GDK_ACTION_MOVE), t); |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
476 | } |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
477 | } |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
478 | |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
479 | static const GtkTargetEntry dnd_targets[] = |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
480 | { |
| 15884 | 481 | {"PURPLE_BLIST_NODE", GTK_TARGET_SAME_APP, 0}, |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
482 | {"application/x-im-contact", 0, 1} |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
483 | }; |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
484 | |
|
17388
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
485 | static void |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
486 | reset_send_msg_entry(PidginPounceDialog *dialog, GtkWidget *dontcare) |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
487 | { |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
488 | PurpleAccount *account = pidgin_account_option_menu_get_selected(dialog->account_menu); |
|
35500
ae6432ea326f
Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents:
35499
diff
changeset
|
489 | pidgin_webview_setup_entry(PIDGIN_WEBVIEW(dialog->send_msg_entry), |
|
34746
dc9c911dbd35
Started GObjectification of PurpleConnection.
Ankit Vani <a@nevitus.org>
parents:
34728
diff
changeset
|
490 | (account && purple_account_get_connection(account)) ? purple_connection_get_flags(purple_account_get_connection(account)) : PURPLE_CONNECTION_FLAG_HTML); |
|
17388
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
491 | } |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
492 | |
| 5032 | 493 | void |
| 20706 | 494 | pidgin_pounce_editor_show(PurpleAccount *account, const char *name, |
|
25390
02100938b030
Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <deryni@pidgin.im>
parents:
24594
diff
changeset
|
495 | PurplePounce *cur_pounce) |
| 20706 | 496 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
497 | PidginPounceDialog *dialog; |
| 5032 | 498 | GtkWidget *window; |
| 499 | GtkWidget *label; | |
| 500 | GtkWidget *vbox1, *vbox2; | |
| 501 | GtkWidget *hbox; | |
| 502 | GtkWidget *button; | |
| 503 | GtkWidget *frame; | |
|
36247
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
504 | GtkWidget *grid; |
| 5032 | 505 | GtkSizeGroup *sg; |
| 5319 | 506 | GPtrArray *sound_widgets; |
| 507 | GPtrArray *exec_widgets; | |
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
508 | GtkWidget *send_msg_webview; |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
509 | |
|
15058
212b71a4faf6
[gaim-migrate @ 17775]
Richard Laager <rlaager@pidgin.im>
parents:
14253
diff
changeset
|
510 | g_return_if_fail((cur_pounce != NULL) || |
|
212b71a4faf6
[gaim-migrate @ 17775]
Richard Laager <rlaager@pidgin.im>
parents:
14253
diff
changeset
|
511 | (account != NULL) || |
| 15884 | 512 | (purple_accounts_get_all() != NULL)); |
|
10352
802e7ab5b838
[gaim-migrate @ 11569]
Mark Doliner <markdoliner@pidgin.im>
parents:
10250
diff
changeset
|
513 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
514 | dialog = g_new0(PidginPounceDialog, 1); |
| 5032 | 515 | |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
516 | if (cur_pounce != NULL) |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
517 | { |
| 5032 | 518 | dialog->pounce = cur_pounce; |
| 15884 | 519 | dialog->account = purple_pounce_get_pouncer(cur_pounce); |
| 5032 | 520 | } |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
521 | else if (account != NULL) |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
522 | { |
| 5032 | 523 | dialog->pounce = NULL; |
|
5907
b2812113a4a6
[gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents:
5877
diff
changeset
|
524 | dialog->account = account; |
| 5032 | 525 | } |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
526 | else |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
527 | { |
|
18122
9bf9970c1b6a
disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents:
18121
diff
changeset
|
528 | GList *connections = purple_connections_get_all(); |
| 15884 | 529 | PurpleConnection *gc; |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
530 | |
|
15058
212b71a4faf6
[gaim-migrate @ 17775]
Richard Laager <rlaager@pidgin.im>
parents:
14253
diff
changeset
|
531 | if (connections != NULL) |
|
212b71a4faf6
[gaim-migrate @ 17775]
Richard Laager <rlaager@pidgin.im>
parents:
14253
diff
changeset
|
532 | { |
| 15884 | 533 | gc = (PurpleConnection *)connections->data; |
| 534 | dialog->account = purple_connection_get_account(gc); | |
|
15058
212b71a4faf6
[gaim-migrate @ 17775]
Richard Laager <rlaager@pidgin.im>
parents:
14253
diff
changeset
|
535 | } |
|
212b71a4faf6
[gaim-migrate @ 17775]
Richard Laager <rlaager@pidgin.im>
parents:
14253
diff
changeset
|
536 | else |
| 15884 | 537 | dialog->account = purple_accounts_get_all()->data; |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
538 | |
| 5032 | 539 | dialog->pounce = NULL; |
| 540 | } | |
| 541 | ||
| 542 | sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 543 | ||
| 544 | /* Create the window. */ | |
|
19546
b7a8a86af65a
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@pidgin.im>
parents:
18966
diff
changeset
|
545 | dialog->window = window = gtk_dialog_new(); |
|
25868
66d6c3e2963d
Use "Add Buddy Pounce" and "Modify Buddy Pounce" as the buddy pounce dialog
Etan Reisner <deryni@pidgin.im>
parents:
24594
diff
changeset
|
546 | gtk_window_set_title(GTK_WINDOW(window), (cur_pounce == NULL ? _("Add Buddy Pounce") : _("Modify Buddy Pounce"))); |
|
19546
b7a8a86af65a
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@pidgin.im>
parents:
18966
diff
changeset
|
547 | gtk_window_set_role(GTK_WINDOW(window), "buddy_pounce"); |
| 5032 | 548 | |
| 549 | g_signal_connect(G_OBJECT(window), "delete_event", | |
| 550 | G_CALLBACK(delete_win_cb), dialog); | |
| 551 | ||
|
33170
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33141
diff
changeset
|
552 | /* Get the parent vbox for everything. */ |
|
32394
f883709bdba4
compiles using GTK+ 3 from git, beware it does not yet run, in fact it crashes...
Marcus Lundblad <malu@pidgin.im>
parents:
30706
diff
changeset
|
553 | vbox1 = gtk_dialog_get_content_area(GTK_DIALOG(window)); |
| 5032 | 554 | |
| 555 | /* Create the vbox that will contain all the prefs stuff. */ | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35500
diff
changeset
|
556 | vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, PIDGIN_HIG_BOX_SPACE); |
| 5032 | 557 | gtk_box_pack_start(GTK_BOX(vbox1), vbox2, TRUE, TRUE, 0); |
| 558 | ||
| 12694 | 559 | /* Create the "Pounce on Whom" frame. */ |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
560 | frame = pidgin_make_frame(vbox2, _("Pounce on Whom")); |
| 5032 | 561 | |
| 562 | /* Account: */ | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35500
diff
changeset
|
563 | hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE); |
| 5032 | 564 | gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); |
| 565 | gtk_widget_show(hbox); | |
| 566 | ||
| 567 | label = gtk_label_new_with_mnemonic(_("_Account:")); | |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
568 | gtk_label_set_xalign(GTK_LABEL(label), 0); |
| 5032 | 569 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 570 | gtk_widget_show(label); | |
| 571 | gtk_size_group_add_widget(sg, label); | |
| 572 | ||
|
5877
37695b88b248
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5876
diff
changeset
|
573 | dialog->account_menu = |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
574 | pidgin_account_option_menu_new(dialog->account, TRUE, |
|
6646
b9a0b5eb74e6
[gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents:
6640
diff
changeset
|
575 | G_CALLBACK(pounce_choose_cb), |
|
b9a0b5eb74e6
[gaim-migrate @ 7171]
Christian Hammond <chipx86@chipx86.com>
parents:
6640
diff
changeset
|
576 | NULL, dialog); |
|
5877
37695b88b248
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5876
diff
changeset
|
577 | |
| 5032 | 578 | gtk_box_pack_start(GTK_BOX(hbox), dialog->account_menu, FALSE, FALSE, 0); |
| 579 | gtk_widget_show(dialog->account_menu); | |
|
35721
abae078d0525
Fix some warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35527
diff
changeset
|
580 | pidgin_set_accessible_label(dialog->account_menu, GTK_LABEL(label)); |
| 5032 | 581 | |
| 582 | /* Buddy: */ | |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35500
diff
changeset
|
583 | hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PIDGIN_HIG_BOX_SPACE); |
| 5032 | 584 | gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); |
| 585 | gtk_widget_show(hbox); | |
| 586 | ||
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
587 | label = gtk_label_new_with_mnemonic(_("_Buddy name:")); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
588 | gtk_label_set_xalign(GTK_LABEL(label), 0); |
| 5032 | 589 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 590 | gtk_widget_show(label); | |
| 591 | gtk_size_group_add_widget(sg, label); | |
| 592 | ||
| 593 | dialog->buddy_entry = gtk_entry_new(); | |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
594 | |
|
33698
e730d1a5f058
Rename pidgin_setup_screenname_autocomplete_with_filter to pidgin_setup_screenname_autocomplete.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33375
diff
changeset
|
595 | pidgin_setup_screenname_autocomplete(dialog->buddy_entry, dialog->account_menu, pidgin_screenname_autocomplete_default_filter, GINT_TO_POINTER(FALSE)); |
|
13361
bb2f64cf6721
[gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13228
diff
changeset
|
596 | |
| 5032 | 597 | gtk_box_pack_start(GTK_BOX(hbox), dialog->buddy_entry, TRUE, TRUE, 0); |
| 598 | gtk_widget_show(dialog->buddy_entry); | |
| 599 | ||
|
5876
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
600 | g_signal_connect(G_OBJECT(dialog->buddy_entry), "changed", |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
601 | G_CALLBACK(buddy_changed_cb), dialog); |
|
35721
abae078d0525
Fix some warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35527
diff
changeset
|
602 | pidgin_set_accessible_label(dialog->buddy_entry, GTK_LABEL(label)); |
|
5876
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
603 | |
| 5032 | 604 | if (cur_pounce != NULL) { |
| 605 | gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry), | |
| 15884 | 606 | purple_pounce_get_pouncee(cur_pounce)); |
| 5032 | 607 | } |
|
5907
b2812113a4a6
[gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents:
5877
diff
changeset
|
608 | else if (name != NULL) { |
|
b2812113a4a6
[gaim-migrate @ 6339]
Christian Hammond <chipx86@chipx86.com>
parents:
5877
diff
changeset
|
609 | gtk_entry_set_text(GTK_ENTRY(dialog->buddy_entry), name); |
| 5032 | 610 | } |
| 611 | ||
| 12694 | 612 | /* Create the "Pounce When Buddy..." frame. */ |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
613 | frame = pidgin_make_frame(vbox2, _("Pounce When Buddy...")); |
| 5032 | 614 | |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
615 | grid = gtk_grid_new(); |
|
36247
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
616 | gtk_container_add(GTK_CONTAINER(frame), grid); |
|
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
617 | gtk_grid_set_column_spacing(GTK_GRID(grid), PIDGIN_HIG_BORDER); |
|
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
618 | gtk_widget_show(grid); |
| 5032 | 619 | |
| 620 | dialog->signon = | |
|
12141
9cd436b9b7f6
[gaim-migrate @ 14442]
Richard Laager <rlaager@pidgin.im>
parents:
12137
diff
changeset
|
621 | gtk_check_button_new_with_mnemonic(_("Si_gns on")); |
| 5032 | 622 | dialog->signoff = |
|
12142
45aba96df80d
[gaim-migrate @ 14443]
Richard Laager <rlaager@pidgin.im>
parents:
12141
diff
changeset
|
623 | gtk_check_button_new_with_mnemonic(_("Signs o_ff")); |
| 5032 | 624 | dialog->away = |
|
12141
9cd436b9b7f6
[gaim-migrate @ 14442]
Richard Laager <rlaager@pidgin.im>
parents:
12137
diff
changeset
|
625 | gtk_check_button_new_with_mnemonic(_("Goes a_way")); |
| 5032 | 626 | dialog->away_return = |
|
12144
a24ccdee060b
[gaim-migrate @ 14445]
Richard Laager <rlaager@pidgin.im>
parents:
12142
diff
changeset
|
627 | gtk_check_button_new_with_mnemonic(_("Ret_urns from away")); |
| 5032 | 628 | dialog->idle = |
|
12192
36b7b33aa956
[gaim-migrate @ 14494]
Richard Laager <rlaager@pidgin.im>
parents:
12186
diff
changeset
|
629 | gtk_check_button_new_with_mnemonic(_("Becomes _idle")); |
| 5032 | 630 | dialog->idle_return = |
|
12192
36b7b33aa956
[gaim-migrate @ 14494]
Richard Laager <rlaager@pidgin.im>
parents:
12186
diff
changeset
|
631 | gtk_check_button_new_with_mnemonic(_("Is no longer i_dle")); |
| 5032 | 632 | dialog->typing = |
|
12141
9cd436b9b7f6
[gaim-migrate @ 14442]
Richard Laager <rlaager@pidgin.im>
parents:
12137
diff
changeset
|
633 | gtk_check_button_new_with_mnemonic(_("Starts _typing")); |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
634 | dialog->typed = |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
635 | gtk_check_button_new_with_mnemonic(_("P_auses while typing")); |
| 5032 | 636 | dialog->stop_typing = |
|
12141
9cd436b9b7f6
[gaim-migrate @ 14442]
Richard Laager <rlaager@pidgin.im>
parents:
12137
diff
changeset
|
637 | gtk_check_button_new_with_mnemonic(_("Stops t_yping")); |
| 12694 | 638 | dialog->message_recv = |
| 639 | gtk_check_button_new_with_mnemonic(_("Sends a _message")); | |
| 5032 | 640 | |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
641 | gtk_widget_set_valign(dialog->message_recv, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
642 | gtk_widget_set_valign(dialog->signon, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
643 | gtk_widget_set_valign(dialog->signoff, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
644 | gtk_widget_set_valign(dialog->away, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
645 | gtk_widget_set_valign(dialog->away_return, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
646 | gtk_widget_set_valign(dialog->idle, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
647 | gtk_widget_set_valign(dialog->idle_return, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
648 | gtk_widget_set_valign(dialog->typing, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
649 | gtk_widget_set_valign(dialog->typed, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
650 | gtk_widget_set_valign(dialog->stop_typing, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
651 | |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
652 | gtk_grid_attach(GTK_GRID(grid), dialog->message_recv, 0, 0, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
653 | gtk_grid_attach(GTK_GRID(grid), dialog->signon, 0, 1, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
654 | gtk_grid_attach(GTK_GRID(grid), dialog->signoff, 0, 2, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
655 | gtk_grid_attach(GTK_GRID(grid), dialog->away, 1, 0, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
656 | gtk_grid_attach(GTK_GRID(grid), dialog->away_return, 1, 1, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
657 | gtk_grid_attach(GTK_GRID(grid), dialog->idle, 1, 2, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
658 | gtk_grid_attach(GTK_GRID(grid), dialog->idle_return, 2, 0, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
659 | gtk_grid_attach(GTK_GRID(grid), dialog->typing, 2, 1, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
660 | gtk_grid_attach(GTK_GRID(grid), dialog->typed, 2, 2, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
661 | gtk_grid_attach(GTK_GRID(grid), dialog->stop_typing, 3, 0, 1, 1); |
| 5032 | 662 | |
| 663 | gtk_widget_show(dialog->signon); | |
| 664 | gtk_widget_show(dialog->signoff); | |
| 665 | gtk_widget_show(dialog->away); | |
| 666 | gtk_widget_show(dialog->away_return); | |
| 667 | gtk_widget_show(dialog->idle); | |
| 668 | gtk_widget_show(dialog->idle_return); | |
| 669 | gtk_widget_show(dialog->typing); | |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
670 | gtk_widget_show(dialog->typed); |
| 5032 | 671 | gtk_widget_show(dialog->stop_typing); |
| 12694 | 672 | gtk_widget_show(dialog->message_recv); |
| 5032 | 673 | |
| 12694 | 674 | /* Create the "Action" frame. */ |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
675 | frame = pidgin_make_frame(vbox2, _("Action")); |
| 5032 | 676 | |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
677 | grid = gtk_grid_new(); |
|
36247
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
678 | gtk_container_add(GTK_CONTAINER(frame), grid); |
|
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
679 | gtk_grid_set_column_spacing(GTK_GRID(grid), PIDGIN_HIG_BORDER); |
|
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
680 | gtk_widget_show(grid); |
| 5032 | 681 | |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
682 | dialog->open_win |
|
12192
36b7b33aa956
[gaim-migrate @ 14494]
Richard Laager <rlaager@pidgin.im>
parents:
12186
diff
changeset
|
683 | = gtk_check_button_new_with_mnemonic(_("Ope_n an IM window")); |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
684 | dialog->popup |
|
12141
9cd436b9b7f6
[gaim-migrate @ 14442]
Richard Laager <rlaager@pidgin.im>
parents:
12137
diff
changeset
|
685 | = gtk_check_button_new_with_mnemonic(_("_Pop up a notification")); |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
686 | dialog->send_msg |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
687 | = gtk_check_button_new_with_mnemonic(_("Send a _message")); |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
688 | dialog->exec_cmd |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
689 | = gtk_check_button_new_with_mnemonic(_("E_xecute a command")); |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
690 | dialog->play_sound |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
691 | = gtk_check_button_new_with_mnemonic(_("P_lay a sound")); |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
692 | |
|
34274
9169710b5af5
Hide GtkWebViewToolbar stuff within the GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33796
diff
changeset
|
693 | send_msg_webview = pidgin_create_webview(TRUE, &dialog->send_msg_entry, NULL); |
|
17388
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
694 | reset_send_msg_entry(dialog, NULL); |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
695 | dialog->exec_cmd_entry = gtk_entry_new(); |
| 12934 | 696 | dialog->popup_entry = gtk_entry_new(); |
|
12192
36b7b33aa956
[gaim-migrate @ 14494]
Richard Laager <rlaager@pidgin.im>
parents:
12186
diff
changeset
|
697 | dialog->exec_cmd_browse = gtk_button_new_with_mnemonic(_("Brows_e...")); |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
698 | dialog->play_sound_entry = gtk_entry_new(); |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
699 | gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry), _("(default)")); |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
700 | gtk_editable_set_editable(GTK_EDITABLE(dialog->play_sound_entry), FALSE); |
|
12144
a24ccdee060b
[gaim-migrate @ 14445]
Richard Laager <rlaager@pidgin.im>
parents:
12142
diff
changeset
|
701 | dialog->play_sound_browse = gtk_button_new_with_mnemonic(_("Br_owse...")); |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
702 | dialog->play_sound_test = gtk_button_new_with_mnemonic(_("Pre_view")); |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
703 | dialog->play_sound_reset = gtk_button_new_with_mnemonic(_("Reset")); |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
704 | |
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
705 | gtk_widget_set_sensitive(send_msg_webview, FALSE); |
| 12694 | 706 | gtk_widget_set_sensitive(dialog->exec_cmd_entry, FALSE); |
| 12934 | 707 | gtk_widget_set_sensitive(dialog->popup_entry, FALSE); |
| 12694 | 708 | gtk_widget_set_sensitive(dialog->exec_cmd_browse, FALSE); |
| 709 | gtk_widget_set_sensitive(dialog->play_sound_entry, FALSE); | |
| 710 | gtk_widget_set_sensitive(dialog->play_sound_browse, FALSE); | |
| 711 | gtk_widget_set_sensitive(dialog->play_sound_test, FALSE); | |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
712 | gtk_widget_set_sensitive(dialog->play_sound_reset, FALSE); |
| 12694 | 713 | |
|
20289
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20168
diff
changeset
|
714 | g_object_unref(sg); |
|
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20168
diff
changeset
|
715 | |
| 12694 | 716 | sg = gtk_size_group_new(GTK_SIZE_GROUP_VERTICAL); |
| 717 | gtk_size_group_add_widget(sg, dialog->open_win); | |
| 718 | gtk_size_group_add_widget(sg, dialog->popup); | |
| 12934 | 719 | gtk_size_group_add_widget(sg, dialog->popup_entry); |
| 12694 | 720 | gtk_size_group_add_widget(sg, dialog->exec_cmd); |
| 721 | gtk_size_group_add_widget(sg, dialog->exec_cmd_entry); | |
| 722 | gtk_size_group_add_widget(sg, dialog->exec_cmd_browse); | |
| 723 | gtk_size_group_add_widget(sg, dialog->play_sound); | |
| 724 | gtk_size_group_add_widget(sg, dialog->play_sound_entry); | |
| 725 | gtk_size_group_add_widget(sg, dialog->play_sound_browse); | |
| 726 | gtk_size_group_add_widget(sg, dialog->play_sound_test); | |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
727 | gtk_size_group_add_widget(sg, dialog->play_sound_reset); |
| 5032 | 728 | |
|
20289
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20168
diff
changeset
|
729 | g_object_unref(sg); |
|
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20168
diff
changeset
|
730 | sg = NULL; |
|
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20168
diff
changeset
|
731 | |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
732 | gtk_widget_set_valign(dialog->open_win, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
733 | gtk_widget_set_valign(dialog->popup, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
734 | gtk_widget_set_valign(dialog->popup_entry, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
735 | gtk_widget_set_valign(dialog->send_msg, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
736 | gtk_widget_set_valign(send_msg_webview, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
737 | gtk_widget_set_valign(dialog->exec_cmd, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
738 | gtk_widget_set_valign(dialog->exec_cmd_entry, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
739 | gtk_widget_set_hexpand(dialog->exec_cmd_browse, TRUE); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
740 | gtk_widget_set_valign(dialog->exec_cmd_browse, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
741 | gtk_widget_set_valign(dialog->play_sound, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
742 | gtk_widget_set_valign(dialog->play_sound_entry, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
743 | gtk_widget_set_hexpand(dialog->play_sound_browse, TRUE); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
744 | gtk_widget_set_valign(dialog->play_sound_browse, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
745 | gtk_widget_set_hexpand(dialog->play_sound_test, TRUE); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
746 | gtk_widget_set_valign(dialog->play_sound_test, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
747 | gtk_widget_set_hexpand(dialog->play_sound_reset, TRUE); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
748 | gtk_widget_set_valign(dialog->play_sound_reset, GTK_ALIGN_CENTER); |
| 5032 | 749 | |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
750 | gtk_grid_attach(GTK_GRID(grid), dialog->open_win, 0, 0, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
751 | gtk_grid_attach(GTK_GRID(grid), dialog->popup, 0, 1, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
752 | gtk_grid_attach(GTK_GRID(grid), dialog->popup_entry, 1, 1, 4, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
753 | gtk_grid_attach(GTK_GRID(grid), dialog->send_msg, 0, 2, 5, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
754 | gtk_grid_attach(GTK_GRID(grid), send_msg_webview, 0, 3, 5, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
755 | gtk_grid_attach(GTK_GRID(grid), dialog->exec_cmd, 0, 4, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
756 | gtk_grid_attach(GTK_GRID(grid), dialog->exec_cmd_entry, 1, 4, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
757 | gtk_grid_attach(GTK_GRID(grid), dialog->exec_cmd_browse, 2, 4, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
758 | gtk_grid_attach(GTK_GRID(grid), dialog->play_sound, 0, 5, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
759 | gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_entry, 1, 5, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
760 | gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_browse,2, 5, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
761 | gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_test, 3, 5, 1, 1); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
762 | gtk_grid_attach(GTK_GRID(grid), dialog->play_sound_reset, 4, 5, 1, 1); |
| 5032 | 763 | |
|
36247
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
764 | gtk_grid_set_row_spacing(GTK_GRID(grid), PIDGIN_HIG_BOX_SPACE / 2); |
| 12694 | 765 | |
| 5032 | 766 | gtk_widget_show(dialog->open_win); |
| 767 | gtk_widget_show(dialog->popup); | |
| 12934 | 768 | gtk_widget_show(dialog->popup_entry); |
| 5032 | 769 | gtk_widget_show(dialog->send_msg); |
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
770 | gtk_widget_show(send_msg_webview); |
| 5032 | 771 | gtk_widget_show(dialog->exec_cmd); |
| 772 | gtk_widget_show(dialog->exec_cmd_entry); | |
| 5319 | 773 | gtk_widget_show(dialog->exec_cmd_browse); |
| 5032 | 774 | gtk_widget_show(dialog->play_sound); |
| 775 | gtk_widget_show(dialog->play_sound_entry); | |
| 5319 | 776 | gtk_widget_show(dialog->play_sound_browse); |
| 777 | gtk_widget_show(dialog->play_sound_test); | |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
778 | gtk_widget_show(dialog->play_sound_reset); |
| 5032 | 779 | |
| 12694 | 780 | g_signal_connect(G_OBJECT(dialog->message_recv), "clicked", |
| 781 | G_CALLBACK(message_recv_toggle), | |
| 782 | dialog->send_msg); | |
| 783 | ||
| 5032 | 784 | g_signal_connect(G_OBJECT(dialog->send_msg), "clicked", |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
785 | G_CALLBACK(pidgin_toggle_sensitive), |
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
786 | send_msg_webview); |
| 5319 | 787 | |
| 12934 | 788 | g_signal_connect(G_OBJECT(dialog->popup), "clicked", |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
789 | G_CALLBACK(pidgin_toggle_sensitive), |
| 12934 | 790 | dialog->popup_entry); |
| 791 | ||
| 5319 | 792 | exec_widgets = g_ptr_array_new(); |
| 793 | g_ptr_array_add(exec_widgets,dialog->exec_cmd_entry); | |
| 794 | g_ptr_array_add(exec_widgets,dialog->exec_cmd_browse); | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
795 | |
| 5032 | 796 | g_signal_connect(G_OBJECT(dialog->exec_cmd), "clicked", |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
797 | G_CALLBACK(pidgin_toggle_sensitive_array), |
| 5319 | 798 | exec_widgets); |
| 799 | g_signal_connect(G_OBJECT(dialog->exec_cmd_browse), "clicked", | |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
800 | G_CALLBACK(filesel), |
| 5032 | 801 | dialog->exec_cmd_entry); |
|
15315
048e3e051d67
[gaim-migrate @ 18043]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15058
diff
changeset
|
802 | g_object_set_data_full(G_OBJECT(dialog->window), "exec-widgets", |
|
048e3e051d67
[gaim-migrate @ 18043]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15058
diff
changeset
|
803 | exec_widgets, (GDestroyNotify)g_ptr_array_free); |
| 5319 | 804 | |
| 805 | sound_widgets = g_ptr_array_new(); | |
| 806 | g_ptr_array_add(sound_widgets,dialog->play_sound_entry); | |
| 807 | g_ptr_array_add(sound_widgets,dialog->play_sound_browse); | |
| 808 | g_ptr_array_add(sound_widgets,dialog->play_sound_test); | |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
809 | g_ptr_array_add(sound_widgets,dialog->play_sound_reset); |
| 5319 | 810 | |
| 5032 | 811 | g_signal_connect(G_OBJECT(dialog->play_sound), "clicked", |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
812 | G_CALLBACK(pidgin_toggle_sensitive_array), |
| 5319 | 813 | sound_widgets); |
| 814 | g_signal_connect(G_OBJECT(dialog->play_sound_browse), "clicked", | |
|
5857
52cff8a95261
[gaim-migrate @ 6288]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
815 | G_CALLBACK(filesel), |
| 5032 | 816 | dialog->play_sound_entry); |
| 5319 | 817 | g_signal_connect(G_OBJECT(dialog->play_sound_test), "clicked", |
| 818 | G_CALLBACK(pounce_test_sound), | |
| 819 | dialog->play_sound_entry); | |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
820 | g_signal_connect(G_OBJECT(dialog->play_sound_reset), "clicked", |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
821 | G_CALLBACK(pounce_reset_sound), |
|
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
822 | dialog->play_sound_entry); |
|
15315
048e3e051d67
[gaim-migrate @ 18043]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15058
diff
changeset
|
823 | g_object_set_data_full(G_OBJECT(dialog->window), "sound-widgets", |
|
048e3e051d67
[gaim-migrate @ 18043]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15058
diff
changeset
|
824 | sound_widgets, (GDestroyNotify)g_ptr_array_free); |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
825 | |
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
826 | g_signal_connect_swapped(G_OBJECT(dialog->send_msg_entry), "format-cleared", |
|
17388
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
827 | G_CALLBACK(reset_send_msg_entry), dialog); |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
828 | g_signal_connect_swapped(G_OBJECT(dialog->account_menu), "changed", |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
829 | G_CALLBACK(reset_send_msg_entry), dialog); |
|
8be39f0de528
Allow formatted text in the pounce dialog. Also, use the same code to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
830 | |
|
33194
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
831 | g_signal_connect(G_OBJECT(dialog->send_msg_entry), "key-press-event", |
|
e5258008e4d7
Convert pounce dialog to a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
832 | G_CALLBACK(entry_key_press_cb), dialog); |
| 12934 | 833 | g_signal_connect(G_OBJECT(dialog->popup_entry), "activate", |
| 834 | G_CALLBACK(save_pounce_cb), dialog); | |
| 5032 | 835 | g_signal_connect(G_OBJECT(dialog->exec_cmd_entry), "activate", |
| 836 | G_CALLBACK(save_pounce_cb), dialog); | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
837 | |
| 12694 | 838 | /* Create the "Options" frame. */ |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
839 | frame = pidgin_make_frame(vbox2, _("Options")); |
| 12694 | 840 | |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
841 | grid = gtk_grid_new(); |
|
36247
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
842 | gtk_container_add(GTK_CONTAINER(frame), grid); |
|
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
843 | gtk_grid_set_column_spacing(GTK_GRID(grid), PIDGIN_HIG_BORDER); |
|
b6b783c2b362
Replace GtkTable with GtkGrid in Pounce window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
36098
diff
changeset
|
844 | gtk_widget_show(grid); |
| 12694 | 845 | |
| 846 | dialog->on_away = | |
|
17655
64f25df341e4
Hopefully make what this checkbox does a little more clear by changing
Etan Reisner <deryni@pidgin.im>
parents:
16490
diff
changeset
|
847 | gtk_check_button_new_with_mnemonic(_("P_ounce only when my status is not Available")); |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
848 | gtk_widget_set_valign(dialog->on_away, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
849 | gtk_grid_attach(GTK_GRID(grid), dialog->on_away, 0, 0, 1, 1); |
| 12694 | 850 | |
| 5032 | 851 | dialog->save_pounce = gtk_check_button_new_with_mnemonic( |
|
12186
fddd08d58f3b
[gaim-migrate @ 14488]
Mark Doliner <markdoliner@pidgin.im>
parents:
12144
diff
changeset
|
852 | _("_Recurring")); |
|
37989
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
853 | gtk_widget_set_valign(dialog->save_pounce, GTK_ALIGN_CENTER); |
|
018063ec9d2e
Remove backwards-compatibility with GTK+2.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37422
diff
changeset
|
854 | gtk_grid_attach(GTK_GRID(grid), dialog->save_pounce, 0, 1, 1, 1); |
| 5032 | 855 | |
| 12694 | 856 | gtk_widget_show(dialog->on_away); |
| 857 | gtk_widget_show(dialog->save_pounce); | |
| 5032 | 858 | |
| 859 | /* Cancel button */ | |
|
19546
b7a8a86af65a
Use GtkDialog more often. Thanks nix_nix. Fixes #2618
Sean Egan <seanegan@pidgin.im>
parents:
18966
diff
changeset
|
860 | button = gtk_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); |
| 5032 | 861 | g_signal_connect(G_OBJECT(button), "clicked", |
| 862 | G_CALLBACK(cancel_cb), dialog); | |
| 863 | ||
|
25390
02100938b030
Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <deryni@pidgin.im>
parents:
24594
diff
changeset
|
864 | /* Save/Add button */ |
|
02100938b030
Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <deryni@pidgin.im>
parents:
24594
diff
changeset
|
865 | dialog->save_button = button = gtk_dialog_add_button(GTK_DIALOG(window), |
|
02100938b030
Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <deryni@pidgin.im>
parents:
24594
diff
changeset
|
866 | (cur_pounce == NULL ? GTK_STOCK_ADD : GTK_STOCK_SAVE), |
|
02100938b030
Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <deryni@pidgin.im>
parents:
24594
diff
changeset
|
867 | GTK_RESPONSE_OK); |
| 5032 | 868 | g_signal_connect(G_OBJECT(button), "clicked", |
|
25390
02100938b030
Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <deryni@pidgin.im>
parents:
24594
diff
changeset
|
869 | G_CALLBACK(save_pounce_cb), dialog); |
| 5032 | 870 | |
|
5876
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
871 | if (*gtk_entry_get_text(GTK_ENTRY(dialog->buddy_entry)) == '\0') |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
872 | gtk_widget_set_sensitive(button, FALSE); |
|
c12b198bde14
[gaim-migrate @ 6308]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
873 | |
|
8803
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
874 | /* Setup drag-and-drop */ |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
875 | gtk_drag_dest_set(window, |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
876 | GTK_DEST_DEFAULT_MOTION | |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
877 | GTK_DEST_DEFAULT_DROP, |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
878 | dnd_targets, |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
879 | sizeof(dnd_targets) / sizeof(GtkTargetEntry), |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
880 | GDK_ACTION_COPY); |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
881 | gtk_drag_dest_set(dialog->buddy_entry, |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
882 | GTK_DEST_DEFAULT_MOTION | |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
883 | GTK_DEST_DEFAULT_DROP, |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
884 | dnd_targets, |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
885 | sizeof(dnd_targets) / sizeof(GtkTargetEntry), |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
886 | GDK_ACTION_COPY); |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
887 | |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
888 | g_signal_connect(G_OBJECT(window), "drag_data_received", |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
889 | G_CALLBACK(pounce_dnd_recv), dialog); |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
890 | g_signal_connect(G_OBJECT(dialog->buddy_entry), "drag_data_received", |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
891 | G_CALLBACK(pounce_dnd_recv), dialog); |
|
79bc4ecbcac7
[gaim-migrate @ 9565]
Christian Hammond <chipx86@chipx86.com>
parents:
8259
diff
changeset
|
892 | |
| 5032 | 893 | /* Set the values of stuff. */ |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
894 | if (cur_pounce != NULL) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
895 | { |
| 15884 | 896 | PurplePounceEvent events = purple_pounce_get_events(cur_pounce); |
| 897 | PurplePounceOption options = purple_pounce_get_options(cur_pounce); | |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
898 | const char *value; |
| 5032 | 899 | |
| 12694 | 900 | /* Options */ |
| 901 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->on_away), | |
| 15884 | 902 | (options & PURPLE_POUNCE_OPTION_AWAY)); |
| 12694 | 903 | |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
904 | /* Events */ |
| 5032 | 905 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->signon), |
| 15884 | 906 | (events & PURPLE_POUNCE_SIGNON)); |
| 5032 | 907 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->signoff), |
| 15884 | 908 | (events & PURPLE_POUNCE_SIGNOFF)); |
| 5032 | 909 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->away), |
| 15884 | 910 | (events & PURPLE_POUNCE_AWAY)); |
| 5032 | 911 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->away_return), |
| 15884 | 912 | (events & PURPLE_POUNCE_AWAY_RETURN)); |
| 5032 | 913 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->idle), |
| 15884 | 914 | (events & PURPLE_POUNCE_IDLE)); |
| 5032 | 915 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->idle_return), |
| 15884 | 916 | (events & PURPLE_POUNCE_IDLE_RETURN)); |
| 5032 | 917 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->typing), |
| 15884 | 918 | (events & PURPLE_POUNCE_TYPING)); |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
919 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->typed), |
| 15884 | 920 | (events & PURPLE_POUNCE_TYPED)); |
| 5032 | 921 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->stop_typing), |
| 15884 | 922 | (events & PURPLE_POUNCE_TYPING_STOPPED)); |
| 12694 | 923 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->message_recv), |
| 15884 | 924 | (events & PURPLE_POUNCE_MESSAGE_RECEIVED)); |
| 5032 | 925 | |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
926 | /* Actions */ |
| 5032 | 927 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->open_win), |
| 15884 | 928 | purple_pounce_action_is_enabled(cur_pounce, "open-window")); |
| 5032 | 929 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->popup), |
| 15884 | 930 | purple_pounce_action_is_enabled(cur_pounce, "popup-notify")); |
| 5032 | 931 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->send_msg), |
| 15884 | 932 | purple_pounce_action_is_enabled(cur_pounce, "send-message")); |
| 5032 | 933 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd), |
| 15884 | 934 | purple_pounce_action_is_enabled(cur_pounce, "execute-command")); |
| 5032 | 935 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->play_sound), |
| 15884 | 936 | purple_pounce_action_is_enabled(cur_pounce, "play-sound")); |
| 5032 | 937 | |
| 938 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->save_pounce), | |
| 15884 | 939 | purple_pounce_get_save(cur_pounce)); |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
940 | |
| 15884 | 941 | if ((value = purple_pounce_action_get_attribute(cur_pounce, |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
942 | "send-message", |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
943 | "message")) != NULL) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
944 | { |
|
35500
ae6432ea326f
Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents:
35499
diff
changeset
|
945 | pidgin_webview_append_html(PIDGIN_WEBVIEW(dialog->send_msg_entry), value); |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
946 | } |
| 5032 | 947 | |
| 15884 | 948 | if ((value = purple_pounce_action_get_attribute(cur_pounce, |
| 12934 | 949 | "popup-notify", |
| 950 | "reason")) != NULL) | |
| 951 | { | |
| 952 | gtk_entry_set_text(GTK_ENTRY(dialog->popup_entry), value); | |
| 953 | } | |
| 954 | ||
| 15884 | 955 | if ((value = purple_pounce_action_get_attribute(cur_pounce, |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
956 | "execute-command", |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
957 | "command")) != NULL) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
958 | { |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
959 | gtk_entry_set_text(GTK_ENTRY(dialog->exec_cmd_entry), value); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
960 | } |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
961 | |
| 15884 | 962 | if ((value = purple_pounce_action_get_attribute(cur_pounce, |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
963 | "play-sound", |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
964 | "filename")) != NULL) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
965 | { |
|
23260
56fda1590379
Make it more obvious that there is a default buddy pounce sound, and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22214
diff
changeset
|
966 | gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry), (value && *value != '\0') ? value : _("(default)")); |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
967 | } |
| 5032 | 968 | } |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
969 | else |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
970 | { |
| 15884 | 971 | PurpleBuddy *buddy = NULL; |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
972 | |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
973 | if (name != NULL) |
|
34728
8efd73063ecf
Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents:
34708
diff
changeset
|
974 | buddy = purple_blist_find_buddy(account, name); |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
975 | |
| 5032 | 976 | /* Set some defaults */ |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
977 | if (buddy == NULL) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
978 | { |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
979 | gtk_toggle_button_set_active( |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
980 | GTK_TOGGLE_BUTTON(dialog->signon), TRUE); |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
981 | } |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
982 | else |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
983 | { |
| 15884 | 984 | if (!PURPLE_BUDDY_IS_ONLINE(buddy)) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
985 | { |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
986 | gtk_toggle_button_set_active( |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
987 | GTK_TOGGLE_BUTTON(dialog->signon), TRUE); |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
988 | } |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
989 | else |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
990 | { |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
991 | gboolean default_set = FALSE; |
| 15884 | 992 | PurplePresence *presence = purple_buddy_get_presence(buddy); |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
993 | |
| 15884 | 994 | if (purple_presence_is_idle(presence)) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
995 | { |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
996 | gtk_toggle_button_set_active( |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
997 | GTK_TOGGLE_BUTTON(dialog->idle_return), TRUE); |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
998 | |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
999 | default_set = TRUE; |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1000 | } |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1001 | |
| 15884 | 1002 | if (!purple_presence_is_available(presence)) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1003 | { |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1004 | gtk_toggle_button_set_active( |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1005 | GTK_TOGGLE_BUTTON(dialog->away_return), TRUE); |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1006 | |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1007 | default_set = TRUE; |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1008 | } |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1009 | |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1010 | if (!default_set) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1011 | { |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1012 | gtk_toggle_button_set_active( |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1013 | GTK_TOGGLE_BUTTON(dialog->signon), TRUE); |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1014 | } |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1015 | } |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1016 | } |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1017 | |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1018 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->open_win), |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1019 | purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/open-window")); |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1020 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->popup), |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1021 | purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/popup-notify")); |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1022 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->send_msg), |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1023 | purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/send-message")); |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1024 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->exec_cmd), |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1025 | purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/execute-command")); |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1026 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->play_sound), |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1027 | purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/play-sound")); |
| 5032 | 1028 | } |
| 1029 | ||
|
19786
33ab83cd846b
Don't show *all*\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19546
diff
changeset
|
1030 | gtk_widget_show(vbox2); |
| 5032 | 1031 | gtk_widget_show(window); |
| 1032 | } | |
| 1033 | ||
| 12136 | 1034 | static gboolean |
| 1035 | pounces_manager_configure_cb(GtkWidget *widget, GdkEventConfigure *event, PouncesManager *dialog) | |
| 1036 | { | |
|
32913
af2c726febce
Fix all deprecated GTK_WIDGET_* macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32624
diff
changeset
|
1037 | if (gtk_widget_get_visible(widget)) { |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1038 | purple_prefs_set_int(PIDGIN_PREFS_ROOT "/pounces/dialog/width", event->width); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1039 | purple_prefs_set_int(PIDGIN_PREFS_ROOT "/pounces/dialog/height", event->height); |
| 12136 | 1040 | } |
| 1041 | ||
| 1042 | return FALSE; | |
| 1043 | } | |
| 1044 | ||
| 1045 | static gboolean | |
| 15884 | 1046 | pounces_manager_find_pounce(GtkTreeIter *iter, PurplePounce *pounce) |
| 5032 | 1047 | { |
| 12136 | 1048 | GtkTreeModel *model = GTK_TREE_MODEL(pounces_manager->model); |
| 15884 | 1049 | PurplePounce *p; |
| 12136 | 1050 | |
| 1051 | if (!gtk_tree_model_get_iter_first(model, iter)) | |
| 1052 | return FALSE; | |
| 1053 | ||
| 1054 | gtk_tree_model_get(model, iter, POUNCES_MANAGER_COLUMN_POUNCE, &p, -1); | |
| 1055 | if (pounce == p) | |
| 1056 | return TRUE; | |
| 1057 | ||
| 1058 | while (gtk_tree_model_iter_next(model, iter)) | |
| 1059 | { | |
| 1060 | gtk_tree_model_get(model, iter, POUNCES_MANAGER_COLUMN_POUNCE, &p, -1); | |
| 1061 | if (pounce == p) | |
| 1062 | return TRUE; | |
| 1063 | } | |
| 1064 | ||
| 1065 | return FALSE; | |
| 1066 | } | |
| 1067 | ||
| 1068 | static gboolean | |
| 1069 | pounces_manager_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) | |
| 1070 | { | |
| 1071 | PouncesManager *dialog = user_data; | |
| 1072 | ||
| 1073 | dialog->window = NULL; | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
1074 | pidgin_pounces_manager_hide(); |
| 12136 | 1075 | |
| 1076 | return FALSE; | |
| 1077 | } | |
| 1078 | ||
| 1079 | static void | |
| 15884 | 1080 | pounces_manager_connection_cb(PurpleConnection *gc, GtkWidget *add_button) |
| 12136 | 1081 | { |
| 15884 | 1082 | gtk_widget_set_sensitive(add_button, (purple_connections_get_all() != NULL)); |
| 5032 | 1083 | } |
| 1084 | ||
| 1085 | static void | |
| 12136 | 1086 | pounces_manager_add_cb(GtkButton *button, gpointer user_data) |
| 1087 | { | |
|
21214
db28e29a4990
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@pidgin.im>
parents:
21171
diff
changeset
|
1088 | pidgin_pounce_editor_show(NULL, NULL, NULL); |
| 12136 | 1089 | } |
| 1090 | ||
| 1091 | static void | |
| 1092 | pounces_manager_modify_foreach(GtkTreeModel *model, GtkTreePath *path, | |
| 1093 | GtkTreeIter *iter, gpointer user_data) | |
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1094 | { |
| 15884 | 1095 | PurplePounce *pounce; |
| 12136 | 1096 | |
| 1097 | gtk_tree_model_get(model, iter, POUNCES_MANAGER_COLUMN_POUNCE, &pounce, -1); | |
|
21214
db28e29a4990
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@pidgin.im>
parents:
21171
diff
changeset
|
1098 | pidgin_pounce_editor_show(NULL, NULL, pounce); |
| 12136 | 1099 | } |
| 1100 | ||
| 1101 | static void | |
| 1102 | pounces_manager_modify_cb(GtkButton *button, gpointer user_data) | |
| 1103 | { | |
| 1104 | PouncesManager *dialog = user_data; | |
| 1105 | GtkTreeSelection *selection; | |
| 1106 | ||
| 1107 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); | |
| 1108 | ||
| 1109 | gtk_tree_selection_selected_foreach(selection, pounces_manager_modify_foreach, user_data); | |
| 1110 | } | |
| 1111 | ||
| 1112 | static void | |
| 15884 | 1113 | pounces_manager_delete_confirm_cb(PurplePounce *pounce) |
| 12136 | 1114 | { |
| 1115 | GtkTreeIter iter; | |
| 1116 | ||
|
13172
4e7621289194
[gaim-migrate @ 15534]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1117 | if (pounces_manager && pounces_manager_find_pounce(&iter, pounce)) |
| 12136 | 1118 | gtk_list_store_remove(pounces_manager->model, &iter); |
| 1119 | ||
| 15884 | 1120 | purple_request_close_with_handle(pounce); |
| 1121 | purple_pounce_destroy(pounce); | |
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1122 | } |
|
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1123 | |
|
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1124 | static void |
| 12136 | 1125 | pounces_manager_delete_foreach(GtkTreeModel *model, GtkTreePath *path, |
| 1126 | GtkTreeIter *iter, gpointer user_data) | |
| 1127 | { | |
| 15884 | 1128 | PurplePounce *pounce; |
| 1129 | PurpleAccount *account; | |
| 12136 | 1130 | const char *pouncer, *pouncee; |
| 1131 | char *buf; | |
| 1132 | ||
| 1133 | gtk_tree_model_get(model, iter, POUNCES_MANAGER_COLUMN_POUNCE, &pounce, -1); | |
| 15884 | 1134 | account = purple_pounce_get_pouncer(pounce); |
| 1135 | pouncer = purple_account_get_username(account); | |
| 1136 | pouncee = purple_pounce_get_pouncee(pounce); | |
| 12136 | 1137 | |
| 1138 | buf = g_strdup_printf(_("Are you sure you want to delete the pounce on %s for %s?"), pouncee, pouncer); | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
1139 | purple_request_action(pounce, NULL, buf, NULL, 0, |
|
34331
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34274
diff
changeset
|
1140 | purple_request_cpar_from_account(account), |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34274
diff
changeset
|
1141 | pounce, 2, _("Delete"), pounces_manager_delete_confirm_cb, |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34274
diff
changeset
|
1142 | _("Cancel"), NULL); |
| 12136 | 1143 | g_free(buf); |
| 1144 | } | |
| 1145 | ||
| 1146 | static void | |
| 1147 | pounces_manager_delete_cb(GtkButton *button, gpointer user_data) | |
| 1148 | { | |
| 1149 | PouncesManager *dialog = user_data; | |
| 1150 | GtkTreeSelection *selection; | |
| 1151 | ||
| 1152 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); | |
| 1153 | ||
| 1154 | gtk_tree_selection_selected_foreach(selection, pounces_manager_delete_foreach, user_data); | |
| 1155 | } | |
| 1156 | ||
| 1157 | static void | |
| 1158 | pounces_manager_close_cb(GtkButton *button, gpointer user_data) | |
| 5032 | 1159 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
1160 | pidgin_pounces_manager_hide(); |
| 12136 | 1161 | } |
| 1162 | ||
| 1163 | static void | |
| 1164 | pounce_selected_cb(GtkTreeSelection *sel, gpointer user_data) | |
| 1165 | { | |
| 1166 | PouncesManager *dialog = user_data; | |
| 1167 | int num_selected = 0; | |
| 1168 | ||
| 1169 | num_selected = gtk_tree_selection_count_selected_rows(sel); | |
| 1170 | ||
| 1171 | gtk_widget_set_sensitive(dialog->modify_button, (num_selected > 0)); | |
| 1172 | gtk_widget_set_sensitive(dialog->delete_button, (num_selected > 0)); | |
| 1173 | } | |
| 1174 | ||
|
12137
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1175 | static gboolean |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1176 | pounce_double_click_cb(GtkTreeView *treeview, GdkEventButton *event, gpointer user_data) |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1177 | { |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1178 | PouncesManager *dialog = user_data; |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1179 | GtkTreePath *path; |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1180 | GtkTreeIter iter; |
| 15884 | 1181 | PurplePounce *pounce; |
|
12137
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1182 | |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1183 | /* Figure out which node was clicked */ |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1184 | if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(dialog->treeview), event->x, event->y, &path, NULL, NULL, NULL)) |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1185 | return FALSE; |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1186 | gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path); |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1187 | gtk_tree_path_free(path); |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1188 | gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, POUNCES_MANAGER_COLUMN_POUNCE, &pounce, -1); |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1189 | |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1190 | if ((pounce != NULL) && (event->button == 1) && |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1191 | (event->type == GDK_2BUTTON_PRESS)) |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1192 | { |
|
21214
db28e29a4990
Reverted changes from ef7ac46f90a801547f7dfc4295927a956f90e869 to
Richard Laager <rlaager@pidgin.im>
parents:
21171
diff
changeset
|
1193 | pidgin_pounce_editor_show(NULL, NULL, pounce); |
|
12137
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1194 | return TRUE; |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1195 | } |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1196 | |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1197 | return FALSE; |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1198 | } |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1199 | |
| 12136 | 1200 | static void |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1201 | pounces_manager_recurring_cb(GtkCellRendererToggle *renderer, gchar *path_str, |
| 12136 | 1202 | gpointer user_data) |
| 1203 | { | |
| 1204 | PouncesManager *dialog = user_data; | |
| 15884 | 1205 | PurplePounce *pounce; |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1206 | gboolean recurring; |
| 12136 | 1207 | GtkTreeModel *model = GTK_TREE_MODEL(dialog->model); |
| 1208 | GtkTreeIter iter; | |
| 1209 | ||
| 1210 | gtk_tree_model_get_iter_from_string(model, &iter, path_str); | |
| 1211 | gtk_tree_model_get(model, &iter, | |
| 1212 | POUNCES_MANAGER_COLUMN_POUNCE, &pounce, | |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1213 | POUNCES_MANAGER_COLUMN_RECURRING, &recurring, |
| 12136 | 1214 | -1); |
| 1215 | ||
| 15884 | 1216 | purple_pounce_set_save(pounce, !recurring); |
| 12136 | 1217 | |
| 1218 | update_pounces(); | |
| 5032 | 1219 | } |
| 1220 | ||
|
8259
7ed91862683d
[gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents:
8252
diff
changeset
|
1221 | static gboolean |
| 12136 | 1222 | search_func(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) |
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1223 | { |
| 12136 | 1224 | gboolean result; |
| 1225 | char *haystack; | |
| 1226 | ||
| 1227 | gtk_tree_model_get(model, iter, column, &haystack, -1); | |
| 1228 | ||
| 15884 | 1229 | result = (purple_strcasestr(haystack, key) == NULL); |
| 12136 | 1230 | |
| 1231 | g_free(haystack); | |
| 1232 | ||
| 1233 | return result; | |
| 1234 | } | |
| 1235 | ||
| 1236 | static GtkWidget * | |
| 1237 | create_pounces_list(PouncesManager *dialog) | |
| 1238 | { | |
| 1239 | GtkWidget *treeview; | |
| 1240 | GtkTreeSelection *sel; | |
| 1241 | GtkTreeViewColumn *column; | |
| 1242 | GtkCellRenderer *renderer; | |
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1243 | |
| 12136 | 1244 | /* Create the list model */ |
| 1245 | dialog->model = gtk_list_store_new(POUNCES_MANAGER_NUM_COLUMNS, | |
| 1246 | G_TYPE_POINTER, | |
| 1247 | GDK_TYPE_PIXBUF, | |
| 1248 | G_TYPE_STRING, | |
| 1249 | G_TYPE_STRING, | |
| 1250 | G_TYPE_BOOLEAN | |
| 1251 | ); | |
|
10250
9a0f00083ec1
[gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents:
10246
diff
changeset
|
1252 | |
| 12136 | 1253 | /* Create the treeview */ |
| 1254 | treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); | |
|
22214
e8a9916cb99e
It turns out the tree-models need to be unref'ed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22005
diff
changeset
|
1255 | g_object_unref(G_OBJECT(dialog->model)); |
| 12136 | 1256 | dialog->treeview = treeview; |
| 1257 | gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); | |
|
10250
9a0f00083ec1
[gaim-migrate @ 11390]
Mark Doliner <markdoliner@pidgin.im>
parents:
10246
diff
changeset
|
1258 | |
| 12136 | 1259 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); |
| 1260 | gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); | |
| 1261 | g_signal_connect(G_OBJECT(sel), "changed", | |
| 1262 | G_CALLBACK(pounce_selected_cb), dialog); | |
| 1263 | ||
|
12137
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1264 | /* Handle double-clicking */ |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1265 | g_signal_connect(G_OBJECT(treeview), "button_press_event", |
|
6a9dafcaaed1
[gaim-migrate @ 14437]
Richard Laager <rlaager@pidgin.im>
parents:
12136
diff
changeset
|
1266 | G_CALLBACK(pounce_double_click_cb), dialog); |
| 12136 | 1267 | gtk_widget_show(treeview); |
|
8259
7ed91862683d
[gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents:
8252
diff
changeset
|
1268 | |
| 12136 | 1269 | /* Pouncee Column */ |
| 1270 | column = gtk_tree_view_column_new(); | |
| 1271 | gtk_tree_view_column_set_title(column, _("Pounce Target")); | |
| 1272 | gtk_tree_view_column_set_resizable(column, TRUE); | |
| 1273 | gtk_tree_view_column_set_min_width(column, 200); | |
| 1274 | gtk_tree_view_column_set_sort_column_id(column, | |
| 1275 | POUNCES_MANAGER_COLUMN_TARGET); | |
| 1276 | gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); | |
| 5161 | 1277 | |
| 12136 | 1278 | /* Icon */ |
| 1279 | renderer = gtk_cell_renderer_pixbuf_new(); | |
| 1280 | gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
| 1281 | gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", | |
| 1282 | POUNCES_MANAGER_COLUMN_ICON); | |
| 1283 | ||
| 1284 | /* Pouncee */ | |
| 1285 | renderer = gtk_cell_renderer_text_new(); | |
| 1286 | gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
| 1287 | gtk_tree_view_column_add_attribute(column, renderer, "text", | |
| 1288 | POUNCES_MANAGER_COLUMN_TARGET); | |
| 1289 | ||
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1290 | |
| 12136 | 1291 | /* Account Column */ |
| 1292 | column = gtk_tree_view_column_new(); | |
| 1293 | gtk_tree_view_column_set_title(column, _("Account")); | |
| 1294 | gtk_tree_view_column_set_resizable(column, TRUE); | |
| 1295 | gtk_tree_view_column_set_min_width(column, 200); | |
| 1296 | gtk_tree_view_column_set_sort_column_id(column, | |
| 1297 | POUNCES_MANAGER_COLUMN_ACCOUNT); | |
| 1298 | gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); | |
| 1299 | renderer = gtk_cell_renderer_text_new(); | |
| 1300 | gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
| 1301 | gtk_tree_view_column_add_attribute(column, renderer, "text", | |
| 1302 | POUNCES_MANAGER_COLUMN_ACCOUNT); | |
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1303 | |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1304 | /* Recurring Column */ |
| 12136 | 1305 | renderer = gtk_cell_renderer_toggle_new(); |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1306 | column = gtk_tree_view_column_new_with_attributes(_("Recurring"), renderer, |
|
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1307 | "active", POUNCES_MANAGER_COLUMN_RECURRING, NULL); |
| 12136 | 1308 | gtk_tree_view_column_set_sort_column_id(column, |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1309 | POUNCES_MANAGER_COLUMN_RECURRING); |
| 12136 | 1310 | gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); |
| 1311 | g_signal_connect(G_OBJECT(renderer), "toggled", | |
|
12193
243b18a880ba
[gaim-migrate @ 14495]
Richard Laager <rlaager@pidgin.im>
parents:
12192
diff
changeset
|
1312 | G_CALLBACK(pounces_manager_recurring_cb), dialog); |
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1313 | |
| 12136 | 1314 | /* Enable CTRL+F searching */ |
| 1315 | gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview), POUNCES_MANAGER_COLUMN_TARGET); | |
| 1316 | gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(treeview), search_func, NULL, NULL); | |
|
8259
7ed91862683d
[gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents:
8252
diff
changeset
|
1317 | |
| 12136 | 1318 | /* Sort the pouncee column by default */ |
| 1319 | gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(dialog->model), | |
| 1320 | POUNCES_MANAGER_COLUMN_TARGET, | |
| 1321 | GTK_SORT_ASCENDING); | |
| 1322 | ||
| 1323 | /* Populate list */ | |
| 1324 | populate_pounces_list(dialog); | |
| 1325 | ||
|
31321
1fef3832cfa2
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents:
30706
diff
changeset
|
1326 | return pidgin_make_scrollable(treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_IN, -1, -1); |
|
5153
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1327 | } |
|
4865538db77a
[gaim-migrate @ 5517]
Christian Hammond <chipx86@chipx86.com>
parents:
5054
diff
changeset
|
1328 | |
| 5032 | 1329 | void |
|
21182
23cc39e90bf7
Only the request API changes
Gabriel Schulhof <nix@go-nix.ca>
parents:
21162
diff
changeset
|
1330 | pidgin_pounces_manager_show(void) |
| 5032 | 1331 | { |
| 12136 | 1332 | PouncesManager *dialog; |
| 1333 | GtkWidget *button; | |
| 1334 | GtkWidget *list; | |
| 1335 | GtkWidget *vbox; | |
| 1336 | GtkWidget *win; | |
| 1337 | int width, height; | |
| 5032 | 1338 | |
| 12136 | 1339 | if (pounces_manager != NULL) { |
| 1340 | gtk_window_present(GTK_WINDOW(pounces_manager->window)); | |
| 1341 | return; | |
| 5032 | 1342 | } |
| 8252 | 1343 | |
| 12136 | 1344 | pounces_manager = dialog = g_new0(PouncesManager, 1); |
| 1345 | ||
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1346 | width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/pounces/dialog/width"); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1347 | height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/pounces/dialog/height"); |
| 12136 | 1348 | |
|
33141
2001ba1d6827
Remove extra padding that makes things look not-so-good.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33132
diff
changeset
|
1349 | dialog->window = win = pidgin_create_dialog(_("Buddy Pounces"), 0, "pounces", TRUE); |
|
37422
07dcc28b6039
Remove support for GTK+2
Jorge Villaseñor <salinasv@pidgin.im>
parents:
37158
diff
changeset
|
1350 | |
| 12136 | 1351 | gtk_window_set_default_size(GTK_WINDOW(win), width, height); |
| 1352 | ||
| 1353 | g_signal_connect(G_OBJECT(win), "delete_event", | |
| 1354 | G_CALLBACK(pounces_manager_destroy_cb), dialog); | |
| 1355 | g_signal_connect(G_OBJECT(win), "configure_event", | |
| 1356 | G_CALLBACK(pounces_manager_configure_cb), dialog); | |
| 1357 | ||
| 1358 | /* Setup the vbox */ | |
|
22000
5e7708f58d3d
Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
1359 | vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(win), FALSE, PIDGIN_HIG_BORDER); |
| 5032 | 1360 | |
| 12136 | 1361 | /* List of saved buddy pounces */ |
| 1362 | list = create_pounces_list(dialog); | |
| 1363 | gtk_box_pack_start(GTK_BOX(vbox), list, TRUE, TRUE, 0); | |
| 1364 | ||
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
1365 | /* Add button */ |
|
24594
b2da1decae23
Add an ellipsis to the "Add" and "Modify" buttons in the accounts, pounces, and
Alex Willmer <alex@moreati.org.uk>
parents:
23260
diff
changeset
|
1366 | button = pidgin_dialog_add_button(GTK_DIALOG(win), PIDGIN_STOCK_ADD, G_CALLBACK(pounces_manager_add_cb), dialog); |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
1367 | gtk_widget_set_sensitive(button, (purple_accounts_get_all() != NULL)); |
| 5032 | 1368 | |
| 15884 | 1369 | purple_signal_connect(purple_connections_get_handle(), "signed-on", |
| 1370 | pounces_manager, PURPLE_CALLBACK(pounces_manager_connection_cb), button); | |
| 1371 | purple_signal_connect(purple_connections_get_handle(), "signed-off", | |
| 1372 | pounces_manager, PURPLE_CALLBACK(pounces_manager_connection_cb), button); | |
| 5032 | 1373 | |
| 12136 | 1374 | /* Modify button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
1375 | button = pidgin_dialog_add_button(GTK_DIALOG(win), PIDGIN_STOCK_MODIFY, G_CALLBACK(pounces_manager_modify_cb), dialog); |
| 12136 | 1376 | gtk_widget_set_sensitive(button, FALSE); |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
1377 | dialog->modify_button = button; |
|
8259
7ed91862683d
[gaim-migrate @ 8982]
Christian Hammond <chipx86@chipx86.com>
parents:
8252
diff
changeset
|
1378 | |
| 12136 | 1379 | /* Delete button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
1380 | button = pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_DELETE, G_CALLBACK(pounces_manager_delete_cb), dialog); |
| 12136 | 1381 | gtk_widget_set_sensitive(button, FALSE); |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
1382 | dialog->delete_button = button; |
| 5032 | 1383 | |
| 12136 | 1384 | /* Close button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
1385 | pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CLOSE, G_CALLBACK(pounces_manager_close_cb), dialog); |
| 12136 | 1386 | |
| 1387 | gtk_widget_show(win); | |
| 1388 | } | |
| 1389 | ||
| 1390 | void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
1391 | pidgin_pounces_manager_hide(void) |
| 12136 | 1392 | { |
| 1393 | if (pounces_manager == NULL) | |
| 1394 | return; | |
| 1395 | ||
| 1396 | if (pounces_manager->window != NULL) | |
| 1397 | gtk_widget_destroy(pounces_manager->window); | |
| 1398 | ||
| 15884 | 1399 | purple_signals_disconnect_by_handle(pounces_manager); |
| 12136 | 1400 | |
| 1401 | g_free(pounces_manager); | |
| 1402 | pounces_manager = NULL; | |
| 5032 | 1403 | } |
| 1404 | ||
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1405 | static void |
| 15884 | 1406 | pounce_cb(PurplePounce *pounce, PurplePounceEvent events, void *data) |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1407 | { |
|
34662
f14347f38e3b
Refactor the remaining pidgin to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
1408 | PurpleIMConversation *im; |
| 15884 | 1409 | PurpleAccount *account; |
| 1410 | PurpleBuddy *buddy; | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1411 | const char *pouncee; |
|
7994
13b0203d6d52
[gaim-migrate @ 8671]
Christian Hammond <chipx86@chipx86.com>
parents:
7276
diff
changeset
|
1412 | const char *alias; |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1413 | |
| 15884 | 1414 | pouncee = purple_pounce_get_pouncee(pounce); |
| 1415 | account = purple_pounce_get_pouncer(pounce); | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1416 | |
|
34728
8efd73063ecf
Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents:
34708
diff
changeset
|
1417 | buddy = purple_blist_find_buddy(account, pouncee); |
| 12934 | 1418 | if (buddy != NULL) |
| 1419 | { | |
| 15884 | 1420 | alias = purple_buddy_get_alias(buddy); |
| 12934 | 1421 | if (alias == NULL) |
| 1422 | alias = pouncee; | |
| 1423 | } | |
| 1424 | else | |
| 1425 | alias = pouncee; | |
|
7994
13b0203d6d52
[gaim-migrate @ 8671]
Christian Hammond <chipx86@chipx86.com>
parents:
7276
diff
changeset
|
1426 | |
| 15884 | 1427 | if (purple_pounce_action_is_enabled(pounce, "open-window")) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1428 | { |
|
34625
03d62b1660fc
Refactor code to remove conversation type from some instances of purple_conversations_find_with_account()
Ankit Vani <a@nevitus.org>
parents:
34622
diff
changeset
|
1429 | if (!purple_conversations_find_im_with_account(pouncee, account)) |
|
34627
08733a7475df
Replaced purple_conversation_new() with purple_[im,chat]_conversation_new()
Ankit Vani <a@nevitus.org>
parents:
34625
diff
changeset
|
1430 | purple_im_conversation_new(account, pouncee); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1431 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1432 | |
| 15884 | 1433 | if (purple_pounce_action_is_enabled(pounce, "popup-notify")) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1434 | { |
| 12934 | 1435 | char *tmp; |
| 1436 | const char *reason; | |
| 15884 | 1437 | reason = purple_pounce_action_get_attribute(pounce, "popup-notify", |
| 12934 | 1438 | "reason"); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1439 | |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1440 | /* |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1441 | * Here we place the protocol name in the pounce dialog to lessen |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1442 | * confusion about what protocol a pounce is for. |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1443 | */ |
|
28717
7cd8b1322913
A simple g_strdup is fine here.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26467
diff
changeset
|
1444 | tmp = g_strdup( |
| 15884 | 1445 | (events & PURPLE_POUNCE_TYPING) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1446 | _("Started typing") : |
| 15884 | 1447 | (events & PURPLE_POUNCE_TYPED) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1448 | _("Paused while typing") : |
| 15884 | 1449 | (events & PURPLE_POUNCE_SIGNON) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1450 | _("Signed on") : |
| 15884 | 1451 | (events & PURPLE_POUNCE_IDLE_RETURN) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1452 | _("Returned from being idle") : |
| 15884 | 1453 | (events & PURPLE_POUNCE_AWAY_RETURN) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1454 | _("Returned from being away") : |
| 15884 | 1455 | (events & PURPLE_POUNCE_TYPING_STOPPED) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1456 | _("Stopped typing") : |
| 15884 | 1457 | (events & PURPLE_POUNCE_SIGNOFF) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1458 | _("Signed off") : |
| 15884 | 1459 | (events & PURPLE_POUNCE_IDLE) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1460 | _("Became idle") : |
| 15884 | 1461 | (events & PURPLE_POUNCE_AWAY) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1462 | _("Went away") : |
| 15884 | 1463 | (events & PURPLE_POUNCE_MESSAGE_RECEIVED) ? |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1464 | _("Sent a message") : |
|
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1465 | _("Unknown.... Please report this!") |
|
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1466 | ); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1467 | |
|
26467
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1468 | pidgin_notify_pounce_add(account, pounce, alias, tmp, reason, |
|
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1469 | purple_date_format_full(NULL)); |
|
ca1524dbcbf0
A patch from Jorge VillaseƱor which makes all pounces share a single window.
Kevin Stange <kstange@pidgin.im>
parents:
25909
diff
changeset
|
1470 | |
| 12934 | 1471 | g_free(tmp); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1472 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1473 | |
| 15884 | 1474 | if (purple_pounce_action_is_enabled(pounce, "send-message")) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1475 | { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1476 | const char *message; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1477 | |
| 15884 | 1478 | message = purple_pounce_action_get_attribute(pounce, "send-message", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1479 | "message"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1480 | |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1481 | if (message != NULL) |
|
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1482 | { |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35721
diff
changeset
|
1483 | PurpleMessage *pmsg; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1484 | |
|
34662
f14347f38e3b
Refactor the remaining pidgin to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
1485 | im = purple_conversations_find_im_with_account(pouncee, account); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1486 | |
|
34662
f14347f38e3b
Refactor the remaining pidgin to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
1487 | if (im == NULL) |
|
f14347f38e3b
Refactor the remaining pidgin to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
1488 | im = purple_im_conversation_new(account, pouncee); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1489 | |
|
36098
4951752ad038
Split PurpleMessage into incoming, outgoing and system
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36089
diff
changeset
|
1490 | pmsg = purple_message_new_outgoing(pouncee, message, 0); |
|
36076
a0e5b68ff4ef
Switch purple_serv_send_im to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35721
diff
changeset
|
1491 | purple_serv_send_im(purple_account_get_connection(account), pmsg); |
|
36089
c035b9a63457
Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36076
diff
changeset
|
1492 | purple_conversation_write_message(PURPLE_CONVERSATION(im), pmsg); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1493 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1494 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1495 | |
| 15884 | 1496 | if (purple_pounce_action_is_enabled(pounce, "execute-command")) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1497 | { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1498 | const char *command; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1499 | |
| 15884 | 1500 | command = purple_pounce_action_get_attribute(pounce, |
|
10921
44adf364b1e7
[gaim-migrate @ 12688]
Daniel Atallah <datallah@pidgin.im>
parents:
10913
diff
changeset
|
1501 | "execute-command", "command"); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1502 | |
|
10921
44adf364b1e7
[gaim-migrate @ 12688]
Daniel Atallah <datallah@pidgin.im>
parents:
10913
diff
changeset
|
1503 | if (command != NULL) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1504 | { |
|
33375
6fd4e9f0884e
Use g_spawn_command_line_async for pounces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33212
diff
changeset
|
1505 | GError *error = NULL; |
|
6fd4e9f0884e
Use g_spawn_command_line_async for pounces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33212
diff
changeset
|
1506 | if (!g_spawn_command_line_async(command, &error)) { |
|
6fd4e9f0884e
Use g_spawn_command_line_async for pounces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33212
diff
changeset
|
1507 | purple_debug_error("gtkpounce", |
|
6fd4e9f0884e
Use g_spawn_command_line_async for pounces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33212
diff
changeset
|
1508 | "pounce command could not be launched: %s\n", |
|
6fd4e9f0884e
Use g_spawn_command_line_async for pounces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33212
diff
changeset
|
1509 | error->message); |
|
6fd4e9f0884e
Use g_spawn_command_line_async for pounces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33212
diff
changeset
|
1510 | g_error_free(error); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1511 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1512 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1513 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1514 | |
| 15884 | 1515 | if (purple_pounce_action_is_enabled(pounce, "play-sound")) |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1516 | { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1517 | const char *sound; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1518 | |
| 15884 | 1519 | sound = purple_pounce_action_get_attribute(pounce, |
|
9205
8c4dbbe6386f
[gaim-migrate @ 10000]
Christian Hammond <chipx86@chipx86.com>
parents:
9191
diff
changeset
|
1520 | "play-sound", "filename"); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1521 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1522 | if (sound != NULL) |
| 15884 | 1523 | purple_sound_play_file(sound, account); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1524 | else |
| 15884 | 1525 | purple_sound_play_event(PURPLE_SOUND_POUNCE_DEFAULT, account); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1526 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1527 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1528 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1529 | static void |
| 15884 | 1530 | free_pounce(PurplePounce *pounce) |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1531 | { |
| 12136 | 1532 | update_pounces(); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1533 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1534 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1535 | static void |
| 15884 | 1536 | new_pounce(PurplePounce *pounce) |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1537 | { |
| 15884 | 1538 | purple_pounce_action_register(pounce, "open-window"); |
| 1539 | purple_pounce_action_register(pounce, "popup-notify"); | |
| 1540 | purple_pounce_action_register(pounce, "send-message"); | |
| 1541 | purple_pounce_action_register(pounce, "execute-command"); | |
| 1542 | purple_pounce_action_register(pounce, "play-sound"); | |
| 12136 | 1543 | |
| 1544 | update_pounces(); | |
| 1545 | } | |
| 1546 | ||
| 1547 | void * | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
1548 | pidgin_pounces_get_handle() { |
| 12136 | 1549 | static int handle; |
| 1550 | ||
| 1551 | return &handle; | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1552 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1553 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1554 | void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
1555 | pidgin_pounces_init(void) |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1556 | { |
| 15884 | 1557 | purple_pounces_register_handler(PIDGIN_UI, pounce_cb, new_pounce, |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1558 | free_pounce); |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1559 | |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1560 | purple_prefs_add_none(PIDGIN_PREFS_ROOT "/pounces"); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1561 | purple_prefs_add_none(PIDGIN_PREFS_ROOT "/pounces/default_actions"); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1562 | purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/open-window", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1563 | FALSE); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1564 | purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/popup-notify", |
|
12141
9cd436b9b7f6
[gaim-migrate @ 14442]
Richard Laager <rlaager@pidgin.im>
parents:
12137
diff
changeset
|
1565 | TRUE); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1566 | purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/send-message", |
|
12141
9cd436b9b7f6
[gaim-migrate @ 14442]
Richard Laager <rlaager@pidgin.im>
parents:
12137
diff
changeset
|
1567 | FALSE); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1568 | purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/execute-command", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1569 | FALSE); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1570 | purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/pounces/default_actions/play-sound", |
|
9206
57a4db675f8d
[gaim-migrate @ 10001]
Christian Hammond <chipx86@chipx86.com>
parents:
9205
diff
changeset
|
1571 | FALSE); |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1572 | purple_prefs_add_none(PIDGIN_PREFS_ROOT "/pounces/dialog"); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1573 | purple_prefs_add_int(PIDGIN_PREFS_ROOT "/pounces/dialog/width", 520); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1574 | purple_prefs_add_int(PIDGIN_PREFS_ROOT "/pounces/dialog/height", 321); |
| 12136 | 1575 | |
| 15884 | 1576 | purple_signal_connect(purple_connections_get_handle(), "signed-on", |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
1577 | pidgin_pounces_get_handle(), |
| 15884 | 1578 | PURPLE_CALLBACK(signed_on_off_cb), NULL); |
| 1579 | purple_signal_connect(purple_connections_get_handle(), "signed-off", | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15496
diff
changeset
|
1580 | pidgin_pounces_get_handle(), |
| 15884 | 1581 | PURPLE_CALLBACK(signed_on_off_cb), NULL); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1582 | } |