Mercurial > pidgin.yaz
annotate libpurple/protocols/myspace/zap.c @ 19714:77673386d31d
I missed this code in the last commit to remove the USE_ATTENTION_API conditional.
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Mon, 10 Sep 2007 20:54:31 +0000 |
parents | 43a8cd1f708c |
children | 472e263e88a8 |
rev | line source |
---|---|
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
1 /* MySpaceIM Protocol Plugin - zap support |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
2 * |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
3 * Copyright (C) 2007, Jeff Connelly <jeff2@soc.pidgin.im> |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
4 * |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
5 * This program is free software; you can redistribute it and/or modify |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
6 * it under the terms of the GNU General Public License as published by |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
7 * the Free Software Foundation; either version 2 of the License, or |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
8 * (at your option) any later version. |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
9 * |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
10 * This program is distributed in the hope that it will be useful, |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
13 * GNU General Public License for more details. |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
14 * |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
16 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19653
diff
changeset
|
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
18 */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
19 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
20 #include "myspace.h" |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
21 #include "zap.h" |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
22 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
23 static gboolean msim_send_zap(MsimSession *session, const gchar *username, guint code); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
24 static void msim_send_zap_from_menu(PurpleBlistNode *node, gpointer zap_num_ptr); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
25 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
26 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
27 /** Get zap types. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
28 GList * |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
29 msim_attention_types(PurpleAccount *acct) |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
30 { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
31 static GList *types = NULL; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
32 MsimAttentionType* attn; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
33 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
34 if (!types) { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
35 #define _MSIM_ADD_NEW_ATTENTION(icn, nme, incoming, outgoing) \ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
36 attn = g_new0(MsimAttentionType, 1); \ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
37 attn->icon_name = icn; \ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
38 attn->name = nme; \ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
39 attn->incoming_description = incoming; \ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
40 attn->outgoing_description = outgoing; \ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
41 types = g_list_append(types, attn); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
42 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
43 /* TODO: icons for each zap */ |
19703
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
44 _MSIM_ADD_NEW_ATTENTION(NULL, _("Zap"), _("%s has zapped you!"), _("Zapping %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
45 _MSIM_ADD_NEW_ATTENTION(NULL, _("Whack"), _("%s has whacked you!"), _("Whacking %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
46 _MSIM_ADD_NEW_ATTENTION(NULL, _("Torch"), _("%s has torched you!"), _("Torching %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
47 _MSIM_ADD_NEW_ATTENTION(NULL, _("Smooch"), _("%s has smooched you!"), _("Smooching %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
48 _MSIM_ADD_NEW_ATTENTION(NULL, _("Hug"), _("%s has hugged you!"), _("Hugging %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
49 _MSIM_ADD_NEW_ATTENTION(NULL, _("Slap"), _("%s has slapped you!"), _("Slapping %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
50 _MSIM_ADD_NEW_ATTENTION(NULL, _("Goose"), _("%s has goosed you!"), _("Goosing %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
51 _MSIM_ADD_NEW_ATTENTION(NULL, _("High-five"), _("%s has high-fived you!"), _("High-fiving %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
52 _MSIM_ADD_NEW_ATTENTION(NULL, _("Punk"), _("%s has punk'd you!"), _("Punking %s...")); |
d3d9e3978d82
Clear up translation ambiguity with the attention API.
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
53 _MSIM_ADD_NEW_ATTENTION(NULL, _("Raspberry"), _("%s has raspberried you!"), _("Raspberrying %s...")); |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
54 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
55 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
56 return types; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
57 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
58 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
59 /** Send a zap */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
60 gboolean |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
61 msim_send_attention(PurpleConnection *gc, const gchar *username, guint code) |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
62 { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
63 GList *types; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
64 MsimSession *session; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
65 MsimAttentionType *attn; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
66 PurpleBuddy *buddy; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
67 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
68 session = (MsimSession *)gc->proto_data; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
69 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
70 /* Look for this attention type, by the code index given. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
71 types = msim_attention_types(gc->account); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
72 attn = (MsimAttentionType *)g_list_nth_data(types, code); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
73 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
74 if (!attn) { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
75 purple_debug_info("msim_send_attention", "got invalid zap code %d\n", code); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
76 return FALSE; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
77 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
78 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
79 buddy = purple_find_buddy(session->account, username); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
80 if (!buddy) { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
81 return FALSE; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
82 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
83 |
19463
3f6f84d11ce2
Change serv_send_attention() to call prpl_info->send_attention(), and
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19461
diff
changeset
|
84 msim_send_zap(session, username, code); |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
85 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
86 return TRUE; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
87 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
88 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
89 /** Send a zap to a user. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
90 static gboolean |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
91 msim_send_zap(MsimSession *session, const gchar *username, guint code) |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
92 { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
93 gchar *zap_string; |
19461
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19432
diff
changeset
|
94 gboolean rc; |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
95 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
96 g_return_val_if_fail(session != NULL, FALSE); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
97 g_return_val_if_fail(username != NULL, FALSE); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
98 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
99 /* Construct and send the actual zap command. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
100 zap_string = g_strdup_printf("!!!ZAP_SEND!!!=RTE_BTN_ZAPS_%d", code); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
101 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
102 if (!msim_send_bm(session, username, zap_string, MSIM_BM_ACTION)) { |
19653
941965d6fd88
Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19463
diff
changeset
|
103 purple_debug_info("msim_send_zap_from_menu", "msim_send_bm failed: zapping %s with %s\n", |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
104 username, zap_string); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
105 rc = FALSE; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
106 } else { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
107 rc = TRUE; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
108 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
109 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
110 g_free(zap_string); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
111 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
112 return rc; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
113 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
114 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
115 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
116 /** Zap someone. Callback from msim_blist_node_menu zap menu. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
117 static void |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
118 msim_send_zap_from_menu(PurpleBlistNode *node, gpointer zap_num_ptr) |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
119 { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
120 PurpleBuddy *buddy; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
121 PurpleAccount *account; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
122 PurpleConnection *gc; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
123 MsimSession *session; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
124 guint zap; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
125 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
126 if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
127 /* Only know about buddies for now. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
128 return; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
129 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
130 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
131 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
132 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
133 buddy = (PurpleBuddy *)node; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
134 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
135 /* Find the session */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
136 account = buddy->account; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
137 gc = purple_account_get_connection(account); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
138 session = (MsimSession *)gc->proto_data; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
139 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
140 zap = GPOINTER_TO_INT(zap_num_ptr); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
141 |
19463
3f6f84d11ce2
Change serv_send_attention() to call prpl_info->send_attention(), and
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19461
diff
changeset
|
142 serv_send_attention(session->gc, buddy->name, zap); |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
143 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
144 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
145 /** Return menu, if any, for a buddy list node. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
146 GList * |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
147 msim_blist_node_menu(PurpleBlistNode *node) |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
148 { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
149 GList *menu, *zap_menu; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
150 GList *types; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
151 PurpleMenuAction *act; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
152 /* Warning: hardcoded to match that in msim_attention_types. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
153 const gchar *zap_names[10]; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
154 guint i; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
155 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
156 if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
157 /* Only know about buddies for now. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
158 return NULL; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
159 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
160 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
161 /* Names from official client. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
162 types = msim_attention_types(NULL); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
163 i = 0; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
164 do |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
165 { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
166 MsimAttentionType *attn; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
167 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
168 attn = (MsimAttentionType *)types->data; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
169 zap_names[i] = attn->name; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
170 ++i; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
171 } while ((types = g_list_next(types))); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
172 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
173 menu = zap_menu = NULL; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
174 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
175 /* TODO: get rid of once is accessible directly in GUI */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
176 for (i = 0; i < sizeof(zap_names) / sizeof(zap_names[0]); ++i) { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
177 act = purple_menu_action_new(zap_names[i], PURPLE_CALLBACK(msim_send_zap_from_menu), |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
178 GUINT_TO_POINTER(i), NULL); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
179 zap_menu = g_list_append(zap_menu, act); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
180 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
181 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
182 act = purple_menu_action_new(_("Zap"), NULL, NULL, zap_menu); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
183 menu = g_list_append(menu, act); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
184 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
185 return menu; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
186 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
187 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
188 /** Process an incoming zap. */ |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
189 gboolean |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
190 msim_incoming_zap(MsimSession *session, MsimMessage *msg) |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
191 { |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
192 gchar *msg_text, *username; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
193 gint zap; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
194 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
195 msg_text = msim_msg_get_string(msg, "msg"); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
196 username = msim_msg_get_string(msg, "_username"); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
197 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
198 g_return_val_if_fail(msg_text != NULL, FALSE); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
199 g_return_val_if_fail(username != NULL, FALSE); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
200 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
201 g_return_val_if_fail(sscanf(msg_text, "!!!ZAP_SEND!!!=RTE_BTN_ZAPS_%d", &zap) == 1, FALSE); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
202 |
19461
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19432
diff
changeset
|
203 zap = CLAMP(zap, 0, 9); |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
204 |
19461
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19432
diff
changeset
|
205 serv_got_attention(session->gc, username, zap); |
19432
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
206 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
207 g_free(msg_text); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
208 g_free(username); |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
209 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
210 return TRUE; |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
211 } |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
212 |
210f792efd7c
In msimprpl, move zap-related code to a separate module.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
diff
changeset
|
213 |