Mercurial > pidgin.yaz
comparison src/status.h @ 10737:b7f0bc436179
[gaim-migrate @ 12339]
Some notes
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 26 Mar 2005 19:19:33 +0000 |
parents | 54f7939df8e3 |
children | 94cc67130789 |
comparison
equal
deleted
inserted
replaced
10736:703f722d076f | 10737:b7f0bc436179 |
---|---|
22 * along with this program; if not, write to the Free Software | 22 * along with this program; if not, write to the Free Software |
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
24 */ | 24 */ |
25 #ifndef _GAIM_STATUS_H_ | 25 #ifndef _GAIM_STATUS_H_ |
26 #define _GAIM_STATUS_H_ | 26 #define _GAIM_STATUS_H_ |
27 | |
28 /** | |
29 * TODO: Someone figure out if we need to do something to get | |
30 * this in the Doxygen generated docs. | |
31 * | |
32 * A brief explanation of the status API: | |
33 * | |
34 * GaimStatusType's are created by each PRPL. They outline the | |
35 * available statuses of the protocol. AIM, for example, supports | |
36 * and available state with an optional available message, an away | |
37 * state with a mandatory message, and an invisible state (which is | |
38 * technically "independant" of the other two, but we'll get into | |
39 * that later). GaimStatusTypes are very permanent. They are | |
40 * hardcoded in each PRPL and will not change often. And because | |
41 * they are hardcoded, they do not need to be saved to any XML file. | |
42 * | |
43 * A GaimStatus can be thought of as an "instance" of a GaimStatusType. | |
44 * If you've familiar with object-oriented programming languages | |
45 * then this should be immediately clear. Say, for example, that | |
46 * one of your AIM buddies has set himself as "away." You have a | |
47 * GaimBuddy node for this person in your buddy list. Gaim wants | |
48 * to mark this buddy as "away," so it creates a new GaimStatus. | |
49 * The GaimStatus has its GaimStatusType set to the "away" state | |
50 * for the oscar PRPL. The GaimStatus also contains the buddy's | |
51 * away message. GaimStatuses are sometimes saved, depending on | |
52 * the context. The current GaimStatuses associated with each of | |
53 * your accounts is saved so that the next time you start Gaim, | |
54 * your accounts will be set to their last know statuses. There | |
55 * is also a list of saved statuses that are written to the | |
56 * status.xml file. | |
57 * | |
58 * A GaimPresence is like a collection of GaimStatuses (plus some | |
59 * other random info). For any buddy, or for any one of your accounts, | |
60 * or for any person you're chatting with, you may know various | |
61 * amounts of information. This information is all contained in | |
62 * one GaimPresence. If one of your buddies is away and idle, | |
63 * then the presence contains the GaimStatus for their awayness, | |
64 * and it contains their current idle time. GaimPresences are | |
65 * never saved to disk. The information they contain is only relevent | |
66 * for the current GaimSession. | |
67 * | |
68 * TODO: Talk about independant statuses. | |
69 */ | |
27 | 70 |
28 typedef struct _GaimStatusType GaimStatusType; | 71 typedef struct _GaimStatusType GaimStatusType; |
29 typedef struct _GaimStatusAttr GaimStatusAttr; | 72 typedef struct _GaimStatusAttr GaimStatusAttr; |
30 typedef struct _GaimPresence GaimPresence; | 73 typedef struct _GaimPresence GaimPresence; |
31 typedef struct _GaimStatus GaimStatus; | 74 typedef struct _GaimStatus GaimStatus; |