comparison src/status.h @ 10754:8a97b59f0071

[gaim-migrate @ 12357] Some fairly clutch changes to how accounts set their statuses. This gets rid of a lot of those g_assertion warnings. My Girlfriend: Dad, why do we have so many forks? Her Dad: Well, it's like the lord said, "Go fork and multiply." committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 27 Mar 2005 19:12:52 +0000
parents 94cc67130789
children d01d81de94d8
comparison
equal deleted inserted replaced
10753:b40a67d45dbb 10754:8a97b59f0071
33 * 33 *
34 * GaimStatusType's are created by each PRPL. They outline the 34 * GaimStatusType's are created by each PRPL. They outline the
35 * available statuses of the protocol. AIM, for example, supports 35 * available statuses of the protocol. AIM, for example, supports
36 * and available state with an optional available message, an away 36 * and available state with an optional available message, an away
37 * state with a mandatory message, and an invisible state (which is 37 * state with a mandatory message, and an invisible state (which is
38 * technically "independant" of the other two, but we'll get into 38 * technically "independent" of the other two, but we'll get into
39 * that later). GaimStatusTypes are very permanent. They are 39 * that later). GaimStatusTypes are very permanent. They are
40 * hardcoded in each PRPL and will not change often. And because 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. 41 * they are hardcoded, they do not need to be saved to any XML file.
42 * 42 *
43 * A GaimStatus can be thought of as an "instance" of a GaimStatusType. 43 * A GaimStatus can be thought of as an "instance" of a GaimStatusType.
53 * your accounts is saved so that the next time you start Gaim, 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 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 55 * is also a list of saved statuses that are written to the
56 * status.xml file. Also, each GaimStatus has a "savable" boolean. 56 * status.xml file. Also, each GaimStatus has a "savable" boolean.
57 * If "savable" is set to FALSE then the status is NEVER saved. 57 * If "savable" is set to FALSE then the status is NEVER saved.
58 * All GaimStatuses should be inside a GaimPresence.
59 *
60 *
61 * A GaimStatus is either "indepedent" or "exclusive."
62 * Independent statuses can be active or inactive and it doesn't
63 * affect anything else. However, you can only have one exclusive
64 * status per GaimPresence. If you active one exlusive status,
65 * then the previous exclusive status is automatically deactivated.
58 * 66 *
59 * A GaimPresence is like a collection of GaimStatuses (plus some 67 * A GaimPresence is like a collection of GaimStatuses (plus some
60 * other random info). For any buddy, or for any one of your accounts, 68 * other random info). For any buddy, or for any one of your accounts,
61 * or for any person you're chatting with, you may know various 69 * or for any person you're chatting with, you may know various
62 * amounts of information. This information is all contained in 70 * amounts of information. This information is all contained in
63 * one GaimPresence. If one of your buddies is away and idle, 71 * one GaimPresence. If one of your buddies is away and idle,
64 * then the presence contains the GaimStatus for their awayness, 72 * then the presence contains the GaimStatus for their awayness,
65 * and it contains their current idle time. GaimPresences are 73 * and it contains their current idle time. GaimPresences are
66 * never saved to disk. The information they contain is only relevent 74 * never saved to disk. The information they contain is only relevent
67 * for the current GaimSession. 75 * for the current GaimSession.
68 *
69 * TODO: Talk about independant statuses.
70 */ 76 */
71 77
72 typedef struct _GaimStatusType GaimStatusType; 78 typedef struct _GaimStatusType GaimStatusType;
73 typedef struct _GaimStatusAttr GaimStatusAttr; 79 typedef struct _GaimStatusAttr GaimStatusAttr;
74 typedef struct _GaimPresence GaimPresence; 80 typedef struct _GaimPresence GaimPresence;