Mercurial > pidgin
comparison src/protocols/oscar/oscar.c @ 2205:cff4fbe01c7b
[gaim-migrate @ 2215]
eric@blue:~/gaim/app/src/protocols $ cat gtk
for i in icq irc jabber msn napster oscar toc yahoo zephyr
do
echo -n $i:
grep -i g\[td\]k $i/*.c | wc -l
done
eric@blue:~/gaim/app/src/protocols $ ./gtk
icq: 13
irc: 0
jabber: 59
msn: 0
napster: 106
oscar: 13
toc: 25
yahoo: 15
zephyr: 2
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 31 Aug 2001 20:36:11 +0000 |
parents | 8f1ca76e46f5 |
children | 8c4ff1a368bd |
comparison
equal
deleted
inserted
replaced
2204:5014b802eb41 | 2205:cff4fbe01c7b |
---|---|
56 #define AIMHASHDATA "http://gaim.sourceforge.net/aim_data.php3" | 56 #define AIMHASHDATA "http://gaim.sourceforge.net/aim_data.php3" |
57 | 57 |
58 static int gaim_caps = AIM_CAPS_CHAT | | 58 static int gaim_caps = AIM_CAPS_CHAT | |
59 AIM_CAPS_BUDDYICON | | 59 AIM_CAPS_BUDDYICON | |
60 AIM_CAPS_IMIMAGE; | 60 AIM_CAPS_IMIMAGE; |
61 | |
62 static GtkWidget *join_chat_spin = NULL; | |
63 static GtkWidget *join_chat_entry = NULL; | |
64 | 61 |
65 struct oscar_data { | 62 struct oscar_data { |
66 struct aim_session_t *sess; | 63 struct aim_session_t *sess; |
67 struct aim_conn_t *conn; | 64 struct aim_conn_t *conn; |
68 | 65 |
1329 struct aim_incomingim_ch2_args *args; | 1326 struct aim_incomingim_ch2_args *args; |
1330 args = va_arg(ap, struct aim_incomingim_ch2_args *); | 1327 args = va_arg(ap, struct aim_incomingim_ch2_args *); |
1331 va_end(ap); | 1328 va_end(ap); |
1332 if (args->reqclass & AIM_CAPS_CHAT) { | 1329 if (args->reqclass & AIM_CAPS_CHAT) { |
1333 char *name = extract_name(args->info.chat.roominfo.name); | 1330 char *name = extract_name(args->info.chat.roominfo.name); |
1331 int *exch = g_new0(int, 1); | |
1332 GList *m = NULL; | |
1333 m = g_list_append(m, g_strdup(name ? name : args->info.chat.roominfo.name)); | |
1334 *exch = args->info.chat.roominfo.exchange; | |
1335 m = g_list_append(m, exch); | |
1334 serv_got_chat_invite(gc, | 1336 serv_got_chat_invite(gc, |
1335 name ? name : args->info.chat.roominfo.name, | 1337 name ? name : args->info.chat.roominfo.name, |
1336 args->info.chat.roominfo.exchange, | |
1337 userinfo->sn, | 1338 userinfo->sn, |
1338 args->info.chat.msg); | 1339 args->info.chat.msg, |
1340 m); | |
1339 if (name) | 1341 if (name) |
1340 g_free(name); | 1342 g_free(name); |
1341 } else if (args->reqclass & AIM_CAPS_SENDFILE) { | 1343 } else if (args->reqclass & AIM_CAPS_SENDFILE) { |
1342 } else if (args->reqclass & AIM_CAPS_GETFILE) { | 1344 } else if (args->reqclass & AIM_CAPS_GETFILE) { |
1343 } else if (args->reqclass & AIM_CAPS_VOICE) { | 1345 } else if (args->reqclass & AIM_CAPS_VOICE) { |
2193 static void oscar_remove_buddy(struct gaim_connection *g, char *name) { | 2195 static void oscar_remove_buddy(struct gaim_connection *g, char *name) { |
2194 struct oscar_data *odata = (struct oscar_data *)g->proto_data; | 2196 struct oscar_data *odata = (struct oscar_data *)g->proto_data; |
2195 aim_remove_buddy(odata->sess, odata->conn, name); | 2197 aim_remove_buddy(odata->sess, odata->conn, name); |
2196 } | 2198 } |
2197 | 2199 |
2198 static void oscar_join_chat(struct gaim_connection *g, int exchange, char *name) { | 2200 static GList *oscar_chat_info(struct gaim_connection *gc) { |
2201 GList *m = NULL; | |
2202 struct proto_chat_entry *pce; | |
2203 | |
2204 pce = g_new0(struct proto_chat_entry, 1); | |
2205 pce->label = _("Join what group:"); | |
2206 m = g_list_append(m, pce); | |
2207 | |
2208 pce = g_new0(struct proto_chat_entry, 1); | |
2209 pce->label = _("Exchange:"); | |
2210 pce->is_int = TRUE; | |
2211 pce->min = 4; | |
2212 pce->max = 20; | |
2213 m = g_list_append(m, pce); | |
2214 | |
2215 return m; | |
2216 } | |
2217 | |
2218 static void oscar_join_chat(struct gaim_connection *g, GList *data) { | |
2199 struct oscar_data *odata = (struct oscar_data *)g->proto_data; | 2219 struct oscar_data *odata = (struct oscar_data *)g->proto_data; |
2200 struct aim_conn_t *cur = NULL; | 2220 struct aim_conn_t *cur = NULL; |
2201 if (!name) { | 2221 char *name; |
2202 if (!join_chat_entry || !join_chat_spin) | 2222 int *exchange; |
2203 return; | 2223 |
2204 name = gtk_entry_get_text(GTK_ENTRY(join_chat_entry)); | 2224 if (!data || !data->next) |
2205 exchange = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(join_chat_spin)); | 2225 return; |
2206 if (!name || !strlen(name)) | 2226 |
2207 return; | 2227 name = data->data; |
2208 } | 2228 exchange = data->next->data; |
2229 | |
2209 debug_printf("Attempting to join chat room %s.\n", name); | 2230 debug_printf("Attempting to join chat room %s.\n", name); |
2210 if ((cur = aim_getconn_type(odata->sess, AIM_CONN_TYPE_CHATNAV))) { | 2231 if ((cur = aim_getconn_type(odata->sess, AIM_CONN_TYPE_CHATNAV))) { |
2211 debug_printf("chatnav exists, creating room\n"); | 2232 debug_printf("chatnav exists, creating room\n"); |
2212 aim_chatnav_createroom(odata->sess, cur, name, exchange); | 2233 aim_chatnav_createroom(odata->sess, cur, name, *exchange); |
2213 } else { | 2234 } else { |
2214 /* this gets tricky */ | 2235 /* this gets tricky */ |
2215 debug_printf("chatnav does not exist, opening chatnav\n"); | 2236 debug_printf("chatnav does not exist, opening chatnav\n"); |
2216 odata->create_exchange = exchange; | 2237 odata->create_exchange = *exchange; |
2217 odata->create_name = g_strdup(name); | 2238 odata->create_name = g_strdup(name); |
2218 aim_bos_reqservice(odata->sess, odata->conn, AIM_CONN_TYPE_CHATNAV); | 2239 aim_bos_reqservice(odata->sess, odata->conn, AIM_CONN_TYPE_CHATNAV); |
2219 } | 2240 } |
2220 } | |
2221 | |
2222 static void des_jc() | |
2223 { | |
2224 join_chat_entry = NULL; | |
2225 join_chat_spin = NULL; | |
2226 } | |
2227 | |
2228 static void oscar_draw_join_chat(struct gaim_connection *gc, GtkWidget *fbox) { | |
2229 GtkWidget *label; | |
2230 GtkWidget *rowbox; | |
2231 GtkObject *adjust; | |
2232 | |
2233 rowbox = gtk_hbox_new(FALSE, 5); | |
2234 gtk_box_pack_start(GTK_BOX(fbox), rowbox, TRUE, TRUE, 0); | |
2235 gtk_widget_show(rowbox); | |
2236 | |
2237 label = gtk_label_new(_("Join what group:")); | |
2238 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
2239 gtk_signal_connect(GTK_OBJECT(label), "destroy", GTK_SIGNAL_FUNC(des_jc), NULL); | |
2240 gtk_widget_show(label); | |
2241 | |
2242 join_chat_entry = gtk_entry_new(); | |
2243 gtk_box_pack_start(GTK_BOX(rowbox), join_chat_entry, TRUE, TRUE, 0); | |
2244 gtk_widget_grab_focus(join_chat_entry); | |
2245 gtk_signal_connect(GTK_OBJECT(join_chat_entry), "activate", GTK_SIGNAL_FUNC(do_join_chat), NULL); | |
2246 gtk_widget_show(join_chat_entry); | |
2247 | |
2248 rowbox = gtk_hbox_new(FALSE, 5); | |
2249 gtk_box_pack_start(GTK_BOX(fbox), rowbox, TRUE, TRUE, 0); | |
2250 gtk_widget_show(rowbox); | |
2251 | |
2252 label = gtk_label_new(_("Exchange:")); | |
2253 gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
2254 gtk_widget_show(label); | |
2255 | |
2256 adjust = gtk_adjustment_new(4, 4, 20, 1, 10, 10); | |
2257 join_chat_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); | |
2258 gtk_widget_set_usize(join_chat_spin, 50, -1); | |
2259 gtk_box_pack_start(GTK_BOX(rowbox), join_chat_spin, FALSE, FALSE, 0); | |
2260 gtk_widget_show(join_chat_spin); | |
2261 } | 2241 } |
2262 | 2242 |
2263 static void oscar_chat_invite(struct gaim_connection *g, int id, char *message, char *name) { | 2243 static void oscar_chat_invite(struct gaim_connection *g, int id, char *message, char *name) { |
2264 struct oscar_data *odata = (struct oscar_data *)g->proto_data; | 2244 struct oscar_data *odata = (struct oscar_data *)g->proto_data; |
2265 struct chat_connection *ccon = find_oscar_chat(g, id); | 2245 struct chat_connection *ccon = find_oscar_chat(g, id); |
2756 ret->add_deny = oscar_add_deny; | 2736 ret->add_deny = oscar_add_deny; |
2757 ret->rem_permit = oscar_rem_permit; | 2737 ret->rem_permit = oscar_rem_permit; |
2758 ret->rem_deny = oscar_rem_deny; | 2738 ret->rem_deny = oscar_rem_deny; |
2759 ret->set_permit_deny = oscar_set_permit_deny; | 2739 ret->set_permit_deny = oscar_set_permit_deny; |
2760 ret->warn = oscar_warn; | 2740 ret->warn = oscar_warn; |
2761 ret->accept_chat = NULL; /* oscar doesn't have accept, it just joins */ | 2741 ret->chat_info = oscar_chat_info; |
2762 ret->join_chat = oscar_join_chat; | 2742 ret->join_chat = oscar_join_chat; |
2763 ret->draw_join_chat = oscar_draw_join_chat; | |
2764 ret->chat_invite = oscar_chat_invite; | 2743 ret->chat_invite = oscar_chat_invite; |
2765 ret->chat_leave = oscar_chat_leave; | 2744 ret->chat_leave = oscar_chat_leave; |
2766 ret->chat_whisper = NULL; | 2745 ret->chat_whisper = NULL; |
2767 ret->chat_send = oscar_chat_send; | 2746 ret->chat_send = oscar_chat_send; |
2768 ret->keepalive = oscar_keepalive; | 2747 ret->keepalive = oscar_keepalive; |