doc/TCL-HOWTO.dox

Mon, 08 Jun 2009 02:24:49 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Mon, 08 Jun 2009 02:24:49 +0000
changeset 27314
402d25ce01da
parent 26824
c7ba07f9ca42
child 33955
55aa58076485
child 38081
b72ba1e10d87
permissions
-rw-r--r--

Use the JID for adding a chat/buddy because the name is for descriptive
purpose only, and using it will not fill in the Add Chat dialog correctly.
Because the JID is not visible, the user will not know what to actually put
there instead.

10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
1 /** @page tcl-howto Tcl Scripting HOWTO
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
2
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
3 @section Intoduction
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
4
10597
41d2db9fefd5 [gaim-migrate @ 12012]
Ethan Blanton <elb@pidgin.im>
parents: 10410
diff changeset
5 NOTA BENE: This documentation is badly out of date for 2.x.
41d2db9fefd5 [gaim-migrate @ 12012]
Ethan Blanton <elb@pidgin.im>
parents: 10410
diff changeset
6
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
7 The libpurple Tcl interface provides a Tcl API for many useful libpurple
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
8 functions. Like the perl API, the Tcl API does not provide access to
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
9 every corner of libpurple exposed by the @e C interface. It does,
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
10 however, provide a very powerful interface to many of libpurple's
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
11 functions through a simple to learn and extend scripting language.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
12
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
13 If you are not familiar with Tcl, you will probably find it somewhat
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
14 different from what you are used to. Despite being somewhat unique
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
15 (more akin to shell programming than other traditional scripting
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
16 languages such as @e perl or @e python), it is simple to learn for
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
17 beginners and experienced programmers alike. There are numerous books
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
18 on the subject; we will not discuss it any further here.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
19
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
20 @section start Getting Started
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
21
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
22 The only requirement placed on a purple Tcl script by libpurple is the
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
23 existence of a procedure called @c plugin_init. This procedure has
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
24 some limitations placed upon it; it will be parsed and evaluated before
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
25 the rest of the Tcl script, so it cannot reference any other variables
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
26 or procedures declared in the script. In practice this is not a
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
27 problem, as the only thing this procedure should do is return a simple
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
28 list containing five items: the @b name of the script, its @b version
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
29 number, a @b summary (just a few words) of its function, a short (longer
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
30 than the summary, but no more than a couple of sentences if possible)
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
31 @b description, the @b author, and a @b URL to web page. For example:
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
32
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
33 @code
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
34 proc plugin_init { } {
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
35 return [ list "Example Plugin" \
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
36 "1.0" \
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
37 "Example plugin registration" \
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
38 "Example of how to register a plugin for the Tcl HOWTO" \
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
39 "Ethan Blanton <eblanton@cs.purdue.edu>" \
16257
66f737e6b718 More renaming.
Richard Laager <rlaager@pidgin.im>
parents: 10597
diff changeset
40 "http://pidgin.im/" ]
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
41 }
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
42 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
43
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
44 The rest of the script will generally be registration to recieve
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
45 notification of various purple (or Pidgin, or finch, or ...) signals
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
46 (more about this below) and definitions of procedures to be executed
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
47 when those signals occur.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
48
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
49 @section details Interpreter Details
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
50
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
51 libpurple initializes and drives the Tcl event loop (similar to Tk),
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
52 meaning that commands like @c fileevent and @c after are available and
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
53 do not require @c vwait etc. The @c vwait actually seems to be somewhat
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
54 broken due to a bug somewhere in the Tcl/Glib event loop glue, and it
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
55 should not be used for now.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
56
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
57 The purple-specific functions are provided in a statically-linked
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
58 package called @c purple; this means that if you spawn a child
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
59 interpreter and wish to use the purple-specific functions, you will need
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
60 to execute <tt>load {} purple</tt> in that interpreter.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
61
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
62 @section internals purple Internal Procedures and Variables
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
63
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
64 All of the information provided for your use by purple will be in the @c
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
65 ::purple namespace. This means that in order to access it you will either
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
66 have to import the purple namespace (e.g. via the command <tt>namespace
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
67 import purple::*</tt>) or reference it explicitly. The following
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
68 descriptions will reference it explicitly for clarity.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
69
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
70 @li Variables
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
71
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
72 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
73 purple::version
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
74 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
75
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
76 This contains the version of the libpurple library which loaded the
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
77 script.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
78
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
79 @li Commands
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
80
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
81 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
82 purple::account alias account
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
83 purple::account connect account
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
84 purple::account connection account
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
85 purple::account disconnect account
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
86 purple::account find username protocol
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
87 purple::account handle
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
88 purple::account isconnected account
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
89 purple::account list ?option?
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
90 purple::account protocol account
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
91 purple::account username account
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
92 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
93
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
94 The @c purple::account command consists of a set of subcommands
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
95 pertaining to purple accounts.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
96
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
97 @c alias returns the alias for the account @c account. If there is no
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
98 alias for the given account, it returns the empty string.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
99
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
100 The subcommand @c connect connects the named account if it is not
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
101 connected, and does nothing if it is. In either case, it returns
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
102 the @c gc for the account.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
103
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
104 @c connection returns the @c gc of the given account if it is connected,
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
105 or 0 if it is not. This @c gc is the gc used by purple::connection and
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
106 other functions.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
107
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
108 @c disconnect disconnects the given @c account if it is connected, or
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
109 does nothing if it is.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
110
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
111 @c find finds an account by its @c username and @c protocol (as returned by
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
112 <tt>purple::account username</tt> and <tt>purple::account protocol</tt>) and
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
113 returns the account if found, or 0 otherwise.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
114
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
115 @c handle returns the instance handle required to connect to account
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
116 signals. (See <tt>purple::signal connect</tt>).
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
117
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
118 The @c isconnected query returns true if the given account is
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
119 connected and false otherwise.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
120
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
121 The @c list subcommand returns a list of all of the accounts known to
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
122 libpurple. The elements of this lists are accounts appropriate for the
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
123 @c account argument of the other subcommands. The @c -all option
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
124 (default) returns all accounts, while the @c -online option returns
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
125 only those accounts which are online.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
126
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
127 The @c protocol subcommand returns the protocol ID (e.g. "prpl-msn")
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
128 for the given account.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
129
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
130 The @c username subcommand returns the username for the account
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
131 @c account.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
132
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
133 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
134 purple::buddy alias buddy
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
135 purple::buddy handle
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
136 purple::buddy info ( buddy | account username )
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
137 purple::buddy list
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
138 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
139
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
140 @c purple::buddy is a set of commands for retrieving information about
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
141 buddies and manipulating the buddy list. For the purposes of Tcl,
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
142 a "buddy" is currently a list of several elements, the first of
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
143 which being the type. The currently recognized types are "group",
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
144 "buddy", and "chat". A group node looks like:
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
145 @code
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
146 { group name { buddies } }
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
147 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
148 A buddy node is:
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
149 @code
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
150 { buddy name account }
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
151 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
152 And a chat node is:
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
153 @code
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
154 { chat alias account }
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
155 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
156
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
157 The @c alias subcommand returns the alias for the given buddy if it
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
158 exists, or the empty string if it does not.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
159
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
160 @c handle returns the blist handle for the purposes of connecting
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
161 signals to buddy list events. (See <tt>purple::signal connect</tt>).
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
162
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
163 @c info causes the purple-using UI to display the info dialog for the
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
164 given buddy. Since it is possible to request user info for a buddy
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
165 not in your buddy list, you may also specify a buddy by his or her
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
166 username and the account through which you wish to retrieve info.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
167
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
168 @c list returns a list of @c group structures, filled out with buddies
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
169 and chats as described above.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
170
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
171 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
172 purple::connection account gc
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
173 purple::connection displayname gc
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
174 purple::connection handle
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
175 purple::connection list
26824
c7ba07f9ca42 Add the Tcl command purple::connection state (purple_connection_get_state).
Ethan Blanton <elb@pidgin.im>
parents: 25889
diff changeset
176 purple::connection state
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
177 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
178
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
179 @c purple::connection is a collection of subcommands pertaining to
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
180 account connections.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
181
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
182 @c account returns the purple account associated with @c gc. This
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
183 account is the same account used by @c purple::account and other
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
184 commands.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
185
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
186 @c displayname returns the display name (duh) of @c gc as reported by
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
187 <tt>purple_connection_get_display_name(gc)</tt>.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
188
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
189 @c handle returns the purple connections instance handle. (See
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
190 <tt>purple::signal connect</tt>).
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
191
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
192 @c list returns a list of all known connections. The elements of
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
193 this list are appropriate as @c gc arguments to the other
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
194 @c purple::connection subcommands or other commands requiring a gc.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
195
26824
c7ba07f9ca42 Add the Tcl command purple::connection state (purple_connection_get_state).
Ethan Blanton <elb@pidgin.im>
parents: 25889
diff changeset
196 @c state returns the PurpleConnectionState of this account as one of
c7ba07f9ca42 Add the Tcl command purple::connection state (purple_connection_get_state).
Ethan Blanton <elb@pidgin.im>
parents: 25889
diff changeset
197 the strings "connected", "disconnected", or "connecting".
c7ba07f9ca42 Add the Tcl command purple::connection state (purple_connection_get_state).
Ethan Blanton <elb@pidgin.im>
parents: 25889
diff changeset
198
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
199 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
200 purple::conv_send account who text
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
201 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
202
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
203 @c purple::conv is simply a convenience wrapper for @c purple::send_im and
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
204 <tt>purple::conversation write</tt>. It sends the IM, determines the from
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
205 and to arguments for <tt>purple::conversation write</tt>, and prints the text
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
206 sent to the conversation as one would expect. For the curious, you
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
207 may view the source for it by typing <tt>info body purple::conv_send</tt> at
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
208 a Purple Commander prompt.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
209
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
210 Note that an error in either @c purple::send_im or <tt>purple::conversation
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
211 write</tt> will not be caught by this procedure, and will be propagated
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
212 to the caller.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
213
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
214 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
215 purple::conversation find ?-account account? name
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
216 purple::conversation handle
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
217 purple::conversation list
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
218 purple::conversation new ?-chat? ?-im? account name
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
219 purple::conversation write conversation style from to text
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
220 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
221
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
222 @c purple::conversation provides an API for dealing with
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
223 conversations. Given that libpurple clients are instant messenger
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
224 programs, you'll probably spend a lot of time here.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
225
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
226 The command @c find attempts to find an existing conversation with
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
227 username @c name. If the @c -account option is given, it refines its
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
228 search to include only conversations on that account.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
229
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
230 @c handle returns the conversations instance handle for the purposes
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
231 of signal connection. (See <tt>purple::signal connect</tt>).
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
232
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
233 @c list returns a list of all currently open conversations.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
234
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
235 The @c new subcommand can be used to create a new conversation with
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
236 a specified user on a specified account if one does not exist, or
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
237 retrieve the existing conversation if it does. The @c -chat and
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
238 @c -im options specify whether the created conversation should be a
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
239 chat or a standard IM, respectively.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
240
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
241 @c write is used to write to the specified conversation. The @c style
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
242 argument specifies how the text should be printed -- as text coming
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
243 from the purple user (style @c send), being sent to the purple user
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
244 (style @c recv), or as a system message (such as "so-and-so has
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
245 signed off", style @c system). From is the name to whom the text
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
246 should be attributed -- you probably want to check for aliases here,
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
247 lest you confuse the user. @c text is the text to print.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
248
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
249 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
250 purple::core handle
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
251 purple::core quit
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
252 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
253
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
254 This command exposes functionality provided by the purple core API.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
255
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
256 <tt>purple::core handle</tt> returns a handle to the purple core for signal
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
257 connection. (See <tt>purple::signal connect</tt>).
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
258
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
259 @c quit exits the libpurple client cleanly, and should be used in
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
260 preference to the tcl @c exit command. (Note that @c exit has not
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
261 been removed, however.)
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
262
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
263 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
264 purple::debug level category message
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
265 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
266
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
267 Equivalent to the C purple_debug function, this command outputs
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
268 debugging information to the libpurple UI's debug window (or,
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
269 typically, stdout if that UI is invoked with -d|--debug). The valid
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
270 levels are, in increasing level of severity, @c -misc, @c -info, @c
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
271 -warning, and, or @c -error. @c category is a short (a few characters
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
272 ... for instance, "tcl" or "tcl plugin") "topic" type name for this
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
273 message, and @c message is the text of the message. In the style of
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
274 Tcl @e puts (and differing from @e purple_debug), no trailing \\n is
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
275 required. (However, embedded newlines may be generated with \\n).
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
276
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
277 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
278 purple::notify ?type? title primary secondary
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
279 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
280
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
281 Also a direct equivalent to a C function, purple_notify, this command
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
282 causes libpurple to present the provided notification information to
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
283 the user via some appropriate UI method. The @c type argument, if
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
284 present, must be one of @c -error, @c -warning, or @c -info. The
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
285 following three arguments' absolute meanings may vary with the purple
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
286 UI being used, but @c title should generally be the title of the
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
287 window, and @c primary and @c secondary text within that window; in
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
288 the Pidgin UI, @c primary is slightly larger than @c secondary and
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
289 displayed in a @b boldface font.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
290
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
291 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
292 purple::send_im gc who text
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
293 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
294
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
295 This sends an IM in the fashion of serv_send_im. @c gc is the GC of
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
296 the connection on which you wish to send (as returned by most event
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
297 handlers), @c who is the nick of the buddy to which you wish to send,
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
298 and @c text is the text of the message.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
299
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
300 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
301 purple::signal connect instance signal args proc
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
302 purple::signal disconnect instance signal
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
303 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
304
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
305 @c purple::signal is a set of subcommands for dealing with purple
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
306 signals.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
307
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
308 The @c connect subcommand registers the procedure @c proc as a handler
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
309 for the signal @c signal on the instance @c instance. @c instance
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
310 should be an instance handle as returned by one of the @c handle
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
311 commands from the various parts of libpurple. @c args and @ proc are
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
312 as in the Tcl @e proc command; note that the number of arguments in @c
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
313 args must match the number of arguments emitted by the signal exactly,
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
314 although you need not use them all. The procedure @c proc may be
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
315 either a simple command or a procedure in curly brackets. Note that
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
316 only one procedure may be associated with each signal; an attempt to
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
317 connect a second procedure to the same signal will remove the existing
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
318 binding and replace it with the new procedure. <tt>purple::signal
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
319 connect</tt> returns 0 on success and 1 on failure.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
320
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
321 @c disconnect removes any existing signal handler for the named
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
322 signal and instance.
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
323
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
324 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
325 purple::unload
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
326 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
327
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
328 This unloads the current plugin. Note that preferences will not be
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
329 updated (yet).
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
330
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
331 @section Signals
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
332
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
333 Check the signals documentation for the meaning of these signals; this is
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
334 intended to be a list only of their arguments. Signal callbacks will
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
335 be made in their own namespace, and arguments to those signal
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
336 callbacks will live in the namespace @c event underneath that
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
337 namespace. To briefly illustrate, the signal @c receiving-im-msg is
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
338 provided with three arguments; the account on which the IM was
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24595
diff changeset
339 received, the name of the buddy sending the IM, and the text of
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
340 the IM. These arguments live in the variables @c event::account,
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
341 @c event::sender, and @c event::buffer, respectively. Therefore a callback
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
342 which notifies the user of an incoming IM containing the word 'shizzle'
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
343 might look like this:
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
344
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
345 @code
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
346 purple::signal connect [purple::conversation handle] receiving-im-msg {
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
347 if {[ string match "*shizzle*" $event::buffer ]} {
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
348 purple::notify -info "tcl plugin" "Fo' shizzle" \
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
349 "$event::sender is down with the shizzle"
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
350 }
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
351 }
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
352 @endcode
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
353
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
354 Note that for some signals (notably @c receiving-im-msg, @c sending-im-msg,
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
355 and their chat counterparts), changes to the event arguments will
24595
8b5abc3f53a9 Update the TCL-HOWTO to some more modern nomenclature
Ethan Blanton <elb@pidgin.im>
parents: 16257
diff changeset
356 change the message itself from libpurple's vantage. For those signals
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
357 whose return value is meaningful, returning a value from the Tcl event
10410
bbad4ac630fa [gaim-migrate @ 11658]
Ethan Blanton <elb@pidgin.im>
parents: 10409
diff changeset
358 will return that value as it would in C.
10409
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
359
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
360 */
c3ecbb61e505 [gaim-migrate @ 11657]
Balwinder S Dheeman <bsd@rubyforge.org>
parents:
diff changeset
361
10410
bbad4ac630fa [gaim-migrate @ 11658]
Ethan Blanton <elb@pidgin.im>
parents: 10409
diff changeset
362 // vim: syntax=c tw=72 et

mercurial