Mercurial > pidgin
view src/protocols/oscar/popups.c @ 4738:34fdf9e313d5
[gaim-migrate @ 5053]
I combined some hash tables in oscar.c to make things a bit neater.
Funtionality-wise, I made "online since" show up in the oscar
per-buddy tooltip thing, fixed the buddy selection file browser
dialog thing so the default file is blank and it puts you in the
correct directory (it is more similar to how gtkft.c does it), and
I made it so buddy icons will only be requested/advertised when
needed, rather than for every single message. Hopefully this
will make it so the icon is not re-sent for every message. And
hopefully I didn't break anything.
HEY YOU
Find out why "Capabilities" is not indeded like "Online Since" in
the tooltip.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 13 Mar 2003 08:42:06 +0000 |
parents | 07283934dedd |
children | 6d3d8f11e765 |
line wrap: on
line source
/* * Family 0x0008 - Popups. * * Popups are just what it sounds like. They're a way for the server to * open up an informative box on the client's screen. */ #define FAIM_INTERNAL #include <aim.h> /* * This is all there is to it. * * The message is probably HTML. * */ static int parsepopup(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { aim_rxcallback_t userfunc; aim_tlvlist_t *tl; int ret = 0; char *msg, *url; fu16_t width, height, delay; tl = aim_readtlvchain(bs); msg = aim_gettlv_str(tl, 0x0001, 1); url = aim_gettlv_str(tl, 0x0002, 1); width = aim_gettlv16(tl, 0x0003, 1); height = aim_gettlv16(tl, 0x0004, 1); delay = aim_gettlv16(tl, 0x0005, 1); if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) ret = userfunc(sess, rx, msg, url, width, height, delay); aim_freetlvchain(&tl); free(msg); free(url); return ret; } static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { if (snac->subtype == 0x0002) return parsepopup(sess, mod, rx, snac, bs); return 0; } faim_internal int popups_modfirst(aim_session_t *sess, aim_module_t *mod) { mod->family = 0x0008; mod->version = 0x0001; mod->toolid = 0x0104; mod->toolversion = 0x0001; mod->flags = 0; strncpy(mod->name, "popups", sizeof(mod->name)); mod->snachandler = snachandler; return 0; }