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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 package Gaim;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 use 5.008;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 use strict;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 use warnings;
6588
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
6 use Carp;
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 require Exporter;
6588
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
9 use AutoLoader;
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 our @ISA = qw(Exporter);
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 # Items to export into callers namespace by default. Note: do not export
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 # names by default without a very good reason. Use EXPORT_OK instead.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 # Do not simply export all your public functions/methods/constants.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 # This allows declaration use Gaim ':all';
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 # will save memory.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 our %EXPORT_TAGS = ( 'all' => [ qw(
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 ) ] );
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 our @EXPORT = qw(
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 );
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 our $VERSION = '0.01';
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 require XSLoader;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52 XSLoader::load('Gaim', $VERSION);
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 # Preloaded methods go here.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 1;
6619
61d516a3d4a8 [gaim-migrate @ 7143]
Christian Hammond <chipx86@chipx86.com>
parents: 6601
diff changeset
57 __END__
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 =head1 NAME
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
61 Gaim - Perl extension the Gaim instant messenger.
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 =head1 SYNOPSIS
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 use Gaim;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 =head1 ABSTRACT
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 =head1 DESCRIPTION
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
113 =head1 SEE ALSO
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
116
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
117 Gaim website - http://gaim.sourceforge.net/
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
118
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
119 =head1 AUTHOR
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
122
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
123 =head1 COPYRIGHT AND LICENSE
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
124
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
125 Copyright 2003 by Christian Hammond
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
126
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
130
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
131 =cut