plugins/perl/common/BuddyList.xs

Sun, 17 Oct 2004 23:55:49 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Sun, 17 Oct 2004 23:55:49 +0000
changeset 10108
0897c42d6cb9
parent 6699
1af918908513
child 10631
de1e21808029
permissions
-rw-r--r--

[gaim-migrate @ 11141]
Two things:
a. Added Enter as a gtk_binding to GtkIMHtml. This fixes everything.
Input methods now work. The "Enter sends" and "Ctrl-Enter sends" preferences
were removed and defaulted to yes and no respectively, BUT, in a very super-cool
turn of events, you can now add your own bindings to .gtkrc to make WHATEVER
YOU WANT send. Awesome. Someone should use g_signal_accumulator_true_handled
or something to make profiles and away messages able to insert newlines.

b. Removed "Use multi-colored screennames in chats," defaulted to yes, and
wrote a nifty algorithm to automatically adjust the colors to accomodate the
background (see http://gaim.sf.net/sean/porn-chat.png). People should play
around and tweak it a bit. The algorithm takes into consideration the
luminosity of the current background and the base hue to use for the screenname
in generating the new colors. Note that it does this while maintaining the hues.
Someone should optimize this so it skips over the floating point arithmatic when
the background color is white.

6531
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 #include "module.h"
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 MODULE = Gaim::BuddyList PACKAGE = Gaim::BuddyList PREFIX = gaim_blist_
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 PROTOTYPES: ENABLE
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 gaim_blist_set_visible(show)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 gboolean show
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 add_buddy(buddy, group)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 Gaim::BuddyList::Buddy buddy
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 Gaim::BuddyList::Group group
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 CODE:
6699
1af918908513 [gaim-migrate @ 7225]
Christian Hammond <chipx86@chipx86.com>
parents: 6545
diff changeset
15 gaim_blist_add_buddy(buddy, NULL, group, NULL);
6531
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 add_group(group)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 Gaim::BuddyList::Group group
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 CODE:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 gaim_blist_add_group(group, NULL);
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 add_chat(chat, group)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 Gaim::BuddyList::Chat chat
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 Gaim::BuddyList::Group group
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27 CODE:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 gaim_blist_add_chat(chat, group, NULL);
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31 gaim_blist_remove_buddy(buddy)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 Gaim::BuddyList::Buddy buddy
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 gaim_blist_remove_group(group)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 Gaim::BuddyList::Group group
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 gaim_blist_remove_chat(chat)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 Gaim::BuddyList::Chat chat
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 Gaim::BuddyList::Buddy
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 find_buddy(account, name)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 Gaim::Account account
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
45 const char *name
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46 CODE:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 RETVAL = gaim_find_buddy(account, name);
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
48 OUTPUT:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
49 RETVAL
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 void
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52 find_buddies(account, name)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 Gaim::Account account
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 const char *name
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55 PREINIT:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 GSList *l;
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57 PPCODE:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58 for (l = gaim_find_buddies(account, name); l != NULL; l = l->next)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 {
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data,
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61 "Gaim::BuddyList::Buddy")));
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 }
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 g_slist_free(l);
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 Gaim::BuddyList::Group
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 find_group(name)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68 const char *name
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69 CODE:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 RETVAL = gaim_find_group(name);
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 OUTPUT:
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 RETVAL
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
74 Gaim::BuddyList::Chat
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
75 gaim_blist_find_chat(account, name)
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76 Gaim::Account account
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77 const char *name
3fca41d7b411 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78
6540
55a72edbd2d5 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
79 void
55a72edbd2d5 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
80 groups()
55a72edbd2d5 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
81 PREINIT:
55a72edbd2d5 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
82 GaimBlistNode *node;
6544
b248ad9766b1 [gaim-migrate @ 7066]
Christian Hammond <chipx86@chipx86.com>
parents: 6543
diff changeset
83 PPCODE:
6543
4e9e0b46461c [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
84 if (gaim_get_blist() != NULL)
6540
55a72edbd2d5 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
85 {
6543
4e9e0b46461c [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
86 for (node = gaim_get_blist()->root; node != NULL; node = node->next)
4e9e0b46461c [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
87 {
4e9e0b46461c [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
88 XPUSHs(sv_2mortal(gaim_perl_bless_object(node,
4e9e0b46461c [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
89 "Gaim::BuddyList::Group")));
4e9e0b46461c [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
90 }
6540
55a72edbd2d5 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
91 }
6545
139a447a1419 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
92
139a447a1419 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
93 void *
139a447a1419 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
94 handle()
139a447a1419 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
95 CODE:
139a447a1419 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
96 RETVAL = gaim_blist_get_handle();
139a447a1419 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
97 OUTPUT:
139a447a1419 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
98 RETVAL

mercurial