Mercurial > pidgin
annotate plugins/perl/common/Gaim.pm @ 11249:b4b1be482b4e
[gaim-migrate @ 13418]
sf patch #1235519, from Sadrul Habib Chowdhury
This is a pretty big patch that makes Gaim correctly save and restore
the current status (away/available, away message, available message,
invisible, etc).
The GaimGtkStatusBoxWidget thing I think defaults to "Available"
every time its created, which overrides the setting that was saved
to the XML file. So that still needs to be fixed before this will
really work.
Anyway, mad props to Sadrul for putting up with my requests on this patch
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 13 Aug 2005 05:22:09 +0000 |
parents | 61d516a3d4a8 |
children |
rev | line source |
---|---|
6508 | 1 package Gaim; |
2 | |
3 use 5.008; | |
4 use strict; | |
5 use warnings; | |
6588
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
6 use Carp; |
6508 | 7 |
8 require Exporter; | |
6588
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
9 use AutoLoader; |
6508 | 10 |
11 our @ISA = qw(Exporter); | |
12 | |
13 # Items to export into callers namespace by default. Note: do not export | |
14 # names by default without a very good reason. Use EXPORT_OK instead. | |
15 # Do not simply export all your public functions/methods/constants. | |
16 | |
17 # This allows declaration use Gaim ':all'; | |
18 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK | |
19 # will save memory. | |
20 our %EXPORT_TAGS = ( 'all' => [ qw( | |
21 | |
22 ) ] ); | |
23 | |
24 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); | |
25 | |
26 our @EXPORT = qw( | |
27 | |
28 ); | |
29 | |
30 our $VERSION = '0.01'; | |
31 | |
6588
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
32 sub AUTOLOAD { |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
33 # This AUTOLOAD is used to 'autoload' constants from the constant() |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
34 # XS function. |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
35 |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
36 my $constname; |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
37 our $AUTOLOAD; |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
38 ($constname = $AUTOLOAD) =~ s/.*:://; |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
39 croak "&Gaim::constant not defined" if $constname eq 'constant'; |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
40 my ($error, $val) = constant($constname); |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
41 if ($error) { croak $error; } |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
42 { |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
43 no strict 'refs'; |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
44 |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
45 *$AUTOLOAD = sub { $val }; |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
46 } |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
47 |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
48 goto &$AUTOLOAD; |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
49 } |
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
50 |
6508 | 51 require XSLoader; |
52 XSLoader::load('Gaim', $VERSION); | |
53 | |
54 # Preloaded methods go here. | |
55 | |
56 1; | |
6619
61d516a3d4a8
[gaim-migrate @ 7143]
Christian Hammond <chipx86@chipx86.com>
parents:
6601
diff
changeset
|
57 __END__ |
6508 | 58 |
59 =head1 NAME | |
60 | |
6594
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
61 Gaim - Perl extension the Gaim instant messenger. |
6508 | 62 |
63 =head1 SYNOPSIS | |
64 | |
65 use Gaim; | |
66 | |
67 =head1 ABSTRACT | |
68 | |
6598
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
69 This module provides the interface for using perl scripts as plugins |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
70 in Gaim. |
6508 | 71 |
72 =head1 DESCRIPTION | |
73 | |
6594
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
74 This module provides the interface for using perl scripts as plugins |
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
75 in Gaim. With this, developers can write perl scripts that can be |
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
76 loaded in Gaim as plugins. The scripts can interact with IMs, chats, |
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
77 accounts, the buddy list, gaim signals, and more. |
6508 | 78 |
6594
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
79 The API for the perl interface is very similar to that of the Gaim C |
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
80 API, which can be viewed at http://gaim.sourceforge.net/api/ or in |
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
81 the header files in the Gaim source tree. |
6508 | 82 |
6598
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
83 =head1 FUNCTIONS |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
84 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
85 =over |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
86 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
87 =item @accounts = Gaim::accounts |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
88 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
89 Returns a list of all accounts, online or offline. |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
90 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
91 =item @chats = Gaim::chats |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
92 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
93 Returns a list of all chats currently open. |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
94 |
6601
1521c3b63d7f
[gaim-migrate @ 7125]
Christian Hammond <chipx86@chipx86.com>
parents:
6598
diff
changeset
|
95 =item @connections = Gaim::connections |
6598
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
96 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
97 Returns a list of all active connections. |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
98 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
99 =item @conversations = Gaim::conversations |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
100 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
101 Returns a list of all conversations, both IM and chat, currently open. |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
102 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
103 =item @conv_windows = Gaim::conv_windows |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
104 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
105 Returns a list of all conversation windows currently open. |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
106 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
107 =item @ims = Gaim::ims |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
108 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
109 Returns a list of all instant messages currently open. |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
110 |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
111 =back |
2f6850c7d980
[gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents:
6594
diff
changeset
|
112 |
6508 | 113 =head1 SEE ALSO |
114 | |
6594
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
115 Gaim C API documentation - http//gaim.sourceforge.net/api/ |
6508 | 116 |
6594
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
117 Gaim website - http://gaim.sourceforge.net/ |
6508 | 118 |
119 =head1 AUTHOR | |
120 | |
6588
7f5f57dd5cac
[gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents:
6508
diff
changeset
|
121 Christian Hammond, E<lt>chipx86@gnupdate.orgE<gt> |
6508 | 122 |
123 =head1 COPYRIGHT AND LICENSE | |
124 | |
125 Copyright 2003 by Christian Hammond | |
126 | |
127 This library is free software; you can redistribute it and/or modify | |
6594
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
128 it under the terms of the General Public License (GPL). For |
47744949513f
[gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents:
6588
diff
changeset
|
129 more information, see http://www.fsf.org/licenses/gpl.txt |
6508 | 130 |
131 =cut |