plugins/perl/common/BuddyList_Group.xs

Sun, 27 Feb 2005 08:35:11 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Sun, 27 Feb 2005 08:35:11 +0000
changeset 10643
70f67d7c84c4
parent 9285
9cedf5d26577
permissions
-rw-r--r--

[gaim-migrate @ 12153]
GtkGaimStatusBox, a new status selection widget.

It currently sucks. Pretty much just the UI code with enough copy/paste
code hacked in from gtkstatusselector to minimally work.

Minimally work provided you're only using protocol which have already been
updated to handle offline/online as statuses. Which I think is limited to
AIM and Yahoo! right now. Anyway, it's cool.

6542
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 #include "module.h"
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 MODULE = Gaim::BuddyList::Group PACKAGE = Gaim::BuddyList::Group PREFIX = gaim_group_
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 PROTOTYPES: ENABLE
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 Gaim::BuddyList::Group
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 new(name)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 const char *name
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 CODE:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 RETVAL = gaim_group_new(name);
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 OUTPUT:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 RETVAL
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 void
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 rename(group, new_name)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 Gaim::BuddyList::Group group
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 const char *new_name
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 CODE:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 gaim_blist_rename_group(group, new_name);
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 void
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 get_accounts(group)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 Gaim::BuddyList::Group group
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 PREINIT:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 GSList *l;
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 PPCODE:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27 for (l = gaim_group_get_accounts(group); l != NULL; l = l->next)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Account")));
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 int
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31 get_size(group, offline)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 Gaim::BuddyList::Group group
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 gboolean offline
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 CODE:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 RETVAL = gaim_blist_get_group_size(group, offline);
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 OUTPUT:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 RETVAL
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 const char *
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 get_name(group)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41 Gaim::BuddyList::Group group
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 CODE:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 RETVAL = group->name;
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 OUTPUT:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
45 RETVAL
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 int
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
48 get_online_count(group)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
49 Gaim::BuddyList::Group group
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50 CODE:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 RETVAL = gaim_blist_get_group_online_count(group);
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52 OUTPUT:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 RETVAL
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55 void
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 buddies(group)
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57 Gaim::BuddyList::Group group
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58 PREINIT:
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 GaimBlistNode *node;
6922
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
60 GaimBlistNode *contact;
6542
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61 GaimBlistNode *_group = (GaimBlistNode *)group;
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 PPCODE:
6922
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
63 for (contact = _group->child; contact != NULL; contact = contact->next)
6542
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 {
6922
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
65 for (node = contact->child; node != NULL; node = node->next)
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
66 {
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
67 XPUSHs(sv_2mortal(gaim_perl_bless_object(node,
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
68 "Gaim::BuddyList::Buddy")));
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
69 }
6542
c7b0cf99c527 [gaim-migrate @ 7064]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 }
6922
88b0bc8f5f9e [gaim-migrate @ 7469]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
71

mercurial