plugins/perl/common/ConvWindow.xs

Sat, 27 Sep 2003 19:17:21 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sat, 27 Sep 2003 19:17:21 +0000
changeset 6982
12f08de92674
parent 6614
12817c60464d
child 7120
83dba78f8518
permissions
-rw-r--r--

[gaim-migrate @ 7538]
This is Mr. Holland's Opus. And by Mr. Holland I mean Robot101. He
rewrote the coreish IM image support so that the binary data gets
ripped out in the prpl and put in an imgstore instead of just being
passed in the same huge as char string as the actual message. This
is good because it's prpl agnostic, or something. It also means
we don't have a silly length of "-1" with pretty much every send or
receive IM function.

It should be crash free, bug free, and memleak free, but additional
testing is always a good thing.

If you like good stuff then you'll love this patch. But don't take
my word for it--ba dun dunt!

6591
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 #include "module.h"
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 MODULE = Gaim::ConvWindow PACKAGE = Gaim::ConvWindow PREFIX = gaim_window_
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 PROTOTYPES: ENABLE
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 Gaim::ConvWindow
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 gaim_window_new()
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 DESTROY(win)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 CODE:
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 gaim_window_destroy(win);
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 gaim_window_show(win)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 gaim_window_hide(win)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 gaim_window_raise(win)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 gaim_window_flash(win)
6614
12817c60464d [gaim-migrate @ 7138]
Christian Hammond <chipx86@chipx86.com>
parents: 6591
diff changeset
30 Gaim::ConvWindow win
6591
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 int
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 gaim_window_add_conversation(win, conv)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 Gaim::Conversation conv
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 Gaim::Conversation
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38 gaim_window_remove_conversation(win, index)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 unsigned int index
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 gaim_window_move_conversation(win, index, new_index)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
45 unsigned int index
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46 unsigned int new_index
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
48 Gaim::Conversation
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
49 gaim_window_get_conversation_at(win, index)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 unsigned int index
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 size_t
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 gaim_window_get_conversation_count(win)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58 gaim_window_switch_conversation(win, index)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60 unsigned int index
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 Gaim::Conversation
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 gaim_window_get_active_conversation(win)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 conversations(win)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68 Gaim::ConvWindow win
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69 PREINIT:
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 GList *l;
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 CODE:
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 for (l = gaim_window_get_conversations(win); l != NULL; l = l->next)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73 {
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
74 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data,
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
75 "Gaim::Conversation")));
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76 }
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
79 MODULE = Gaim::ConvWindow PACKAGE = Gaim PREFIX = gaim_
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80 PROTOTYPES: ENABLE
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
81
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
82 void
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83 conv_windows()
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
84 PREINIT:
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
85 GList *l;
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
86 CODE:
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
87 for (l = gaim_get_windows(); l != NULL; l = l->next)
cc1ab32edcdc [gaim-migrate @ 7115]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::ConvWindow")));

mercurial