| |
1 package Gaim; |
| |
2 |
| |
3 use 5.008; |
| |
4 use strict; |
| |
5 use warnings; |
| |
6 use Carp; |
| |
7 |
| |
8 require Exporter; |
| |
9 use AutoLoader; |
| |
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 |
| |
32 sub AUTOLOAD { |
| |
33 # This AUTOLOAD is used to 'autoload' constants from the constant() |
| |
34 # XS function. |
| |
35 |
| |
36 my $constname; |
| |
37 our $AUTOLOAD; |
| |
38 ($constname = $AUTOLOAD) =~ s/.*:://; |
| |
39 croak "&Gaim::constant not defined" if $constname eq 'constant'; |
| |
40 my ($error, $val) = constant($constname); |
| |
41 if ($error) { croak $error; } |
| |
42 { |
| |
43 no strict 'refs'; |
| |
44 |
| |
45 *$AUTOLOAD = sub { $val }; |
| |
46 } |
| |
47 |
| |
48 goto &$AUTOLOAD; |
| |
49 } |
| |
50 |
| |
51 require XSLoader; |
| |
52 XSLoader::load('Gaim', $VERSION); |
| |
53 |
| |
54 # Preloaded methods go here. |
| |
55 |
| |
56 1; |
| |
57 __END__ |
| |
58 |
| |
59 =head1 NAME |
| |
60 |
| |
61 Gaim - Perl extension the Gaim instant messenger. |
| |
62 |
| |
63 =head1 SYNOPSIS |
| |
64 |
| |
65 use Gaim; |
| |
66 |
| |
67 =head1 ABSTRACT |
| |
68 |
| |
69 This module provides the interface for using perl scripts as plugins |
| |
70 in Gaim. |
| |
71 |
| |
72 =head1 DESCRIPTION |
| |
73 |
| |
74 This module provides the interface for using perl scripts as plugins |
| |
75 in Gaim. With this, developers can write perl scripts that can be |
| |
76 loaded in Gaim as plugins. The scripts can interact with IMs, chats, |
| |
77 accounts, the buddy list, gaim signals, and more. |
| |
78 |
| |
79 The API for the perl interface is very similar to that of the Gaim C |
| |
80 API, which can be viewed at http://gaim.sourceforge.net/api/ or in |
| |
81 the header files in the Gaim source tree. |
| |
82 |
| |
83 =head1 FUNCTIONS |
| |
84 |
| |
85 =over |
| |
86 |
| |
87 =item @accounts = Gaim::accounts |
| |
88 |
| |
89 Returns a list of all accounts, online or offline. |
| |
90 |
| |
91 =item @chats = Gaim::chats |
| |
92 |
| |
93 Returns a list of all chats currently open. |
| |
94 |
| |
95 =item @connections = Gaim::connections |
| |
96 |
| |
97 Returns a list of all active connections. |
| |
98 |
| |
99 =item @conversations = Gaim::conversations |
| |
100 |
| |
101 Returns a list of all conversations, both IM and chat, currently open. |
| |
102 |
| |
103 =item @conv_windows = Gaim::conv_windows |
| |
104 |
| |
105 Returns a list of all conversation windows currently open. |
| |
106 |
| |
107 =item @ims = Gaim::ims |
| |
108 |
| |
109 Returns a list of all instant messages currently open. |
| |
110 |
| |
111 =back |
| |
112 |
| |
113 =head1 SEE ALSO |
| |
114 |
| |
115 Gaim C API documentation - http//gaim.sourceforge.net/api/ |
| |
116 |
| |
117 Gaim website - http://gaim.sourceforge.net/ |
| |
118 |
| |
119 =head1 AUTHOR |
| |
120 |
| |
121 Christian Hammond, E<lt>chipx86@gnupdate.orgE<gt> |
| |
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 |
| |
128 it under the terms of the General Public License (GPL). For |
| |
129 more information, see http://www.fsf.org/licenses/gpl.txt |
| |
130 |
| |
131 =cut |