Sat, 19 Nov 2005 15:19:35 +0000
[gaim-migrate @ 14463]
SF Patch #1361020 from Sadrul
'Double click to (1)"Use" a saved-status (2) Load Plugin-pref
Double-click to use a saved-status in the saved-status
dialog, and double-click to load a plugin and open it's
preference-dialog.'
I ask, he writes. Wow! :)
committer: Richard Laager <rlaager@pidgin.im>
| 10418 | 1 | /** |
| 2 | * @file savedstatuses.h Saved Status API | |
| 3 | * @ingroup core | |
| 4 | * | |
| 5 | * gaim | |
| 6 | * | |
| 7 | * Gaim is the legal property of its developers, whose names are too numerous | |
| 8 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 9 | * source distribution. | |
| 10 | * | |
| 11 | * This program is free software; you can redistribute it and/or modify | |
| 12 | * it under the terms of the GNU General Public License as published by | |
| 13 | * the Free Software Foundation; either version 2 of the License, or | |
| 14 | * (at your option) any later version. | |
| 15 | * | |
| 16 | * This program is distributed in the hope that it will be useful, | |
| 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 19 | * GNU General Public License for more details. | |
| 20 | * | |
| 21 | * You should have received a copy of the GNU General Public License | |
| 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 | |
| 24 | */ | |
| 25 | #ifndef _GAIM_SAVEDSTATUSES_H_ | |
| 26 | #define _GAIM_SAVEDSTATUSES_H_ | |
| 27 | ||
| 28 | /** | |
| 29 | * Saved statuses don't really interact much with the rest of Gaim. It | |
| 30 | * could really be a plugin. It's just a list of away states. When | |
| 31 | * a user chooses one of the saved states, their Gaim accounts are set | |
| 32 | * to the settings of that state. | |
|
12125
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
33 | * |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
34 | * In the savedstatus API, there is the concept of a 'transient' |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
35 | * saved status. A transient saved status is one that is not |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
36 | * permanent. Gaim will removed it automatically if it isn't |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
37 | * used for a period of time. Transient saved statuses don't |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
38 | * have titles and they don't show up in the list of saved |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
39 | * statuses. In fact, if a saved status does not have a title |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
40 | * then it is transient. If it does have a title, then it is not |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
41 | * transient. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
42 | * |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
43 | * What good is a transient status, you ask? They can be used to |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
44 | * keep track of the user's 5 most recently used statuses, for |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
45 | * example. Basically if they just set a message on the fly, |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
46 | * we'll cache it for them in case they want to use it again. If |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
47 | * they don't use it again, we'll just delete it. |
| 10418 | 48 | */ |
| 49 | ||
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
50 | /* |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
51 | * TODO: Hmm. We should probably just be saving GaimPresences. That's |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
52 | * something we should look into once the status box gets fleshed |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
53 | * out more. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
54 | */ |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
55 | |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
56 | typedef struct _GaimSavedStatus GaimSavedStatus; |
|
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
57 | typedef struct _GaimSavedStatusSub GaimSavedStatusSub; |
| 10418 | 58 | |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
59 | #include "status.h" |
|
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
60 | |
| 10418 | 61 | /**************************************************************************/ |
| 62 | /** @name Saved status subsystem */ | |
| 63 | /**************************************************************************/ | |
| 64 | /*@{*/ | |
| 65 | ||
| 66 | /** | |
| 67 | * Create a new saved status. This will add the saved status to the | |
| 68 | * list of saved statuses and writes the revised list to status.xml. | |
| 69 | * | |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
70 | * @param title The title of the saved status. This must be |
|
12125
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
71 | * unique. Or, if you want to create a transient |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
72 | * saved status, then pass in NULL. |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
73 | * @param type The type of saved status. |
| 10418 | 74 | * |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
75 | * @return The newly created saved status, or NULL if the title you |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
76 | * used was already taken. |
| 10418 | 77 | */ |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
78 | GaimSavedStatus *gaim_savedstatus_new(const char *title, |
|
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
79 | GaimStatusPrimitive type); |
| 10418 | 80 | |
| 81 | /** | |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
82 | * Set the title for the given saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
83 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
84 | * @param status The saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
85 | * @param title The title of the saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
86 | */ |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
87 | void gaim_savedstatus_set_title(GaimSavedStatus *status, |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
88 | const char *title); |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
89 | |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
90 | /** |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
91 | * Set the type for the given saved status. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
92 | * |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
93 | * @param status The saved status. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
94 | * @param type The type of saved status. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
95 | */ |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
96 | void gaim_savedstatus_set_type(GaimSavedStatus *status, |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
97 | GaimStatusPrimitive type); |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
98 | |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
99 | /** |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
100 | * Set the message for the given saved status. |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
101 | * |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
102 | * @param status The saved status. |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
103 | * @param message The message, or NULL if you want to unset the |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
104 | * message for this status. |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
105 | */ |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
106 | void gaim_savedstatus_set_message(GaimSavedStatus *status, |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
107 | const char *message); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
108 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
109 | /** |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
110 | * Set a substatus for an account in a saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
111 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
112 | * @param status The saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
113 | * @param account The account. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
114 | * @param type The status type for the account in the staved |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
115 | * status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
116 | * @param message The message for the account in the substatus. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
117 | */ |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12056
diff
changeset
|
118 | void gaim_savedstatus_set_substatus(GaimSavedStatus *status, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12056
diff
changeset
|
119 | const GaimAccount *account, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12056
diff
changeset
|
120 | const GaimStatusType *type, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12056
diff
changeset
|
121 | const char *message); |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
122 | |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
123 | /** |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
124 | * Unset a substatus for an account in a saved status. This clears |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
125 | * the previosly set substatus for the GaimSavedStatus. If this |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
126 | * saved status is activated then this account will use the default |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
127 | * status type and message. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
128 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
129 | * @param status The saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
130 | * @param account The account. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
131 | */ |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12056
diff
changeset
|
132 | void gaim_savedstatus_unset_substatus(GaimSavedStatus *saved_status, |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
133 | const GaimAccount *account); |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
134 | |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
135 | /** |
| 10418 | 136 | * Delete a saved status. This removes the saved status from the list |
| 137 | * of saved statuses, and writes the revised list to status.xml. | |
| 138 | * | |
| 139 | * @param title The title of the saved status. | |
| 140 | * | |
| 141 | * @return TRUE if the status was successfully deleted. FALSE if the | |
| 142 | * status could not be deleted because no saved status exists | |
| 143 | * with the given title. | |
| 144 | */ | |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
145 | gboolean gaim_savedstatus_delete(const char *title); |
| 10418 | 146 | |
| 147 | /** | |
| 148 | * Returns all saved statuses. | |
| 149 | * | |
| 150 | * @return A list of saved statuses. | |
| 151 | */ | |
| 152 | const GList *gaim_savedstatuses_get_all(void); | |
| 153 | ||
| 154 | /** | |
|
12125
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
155 | * Returns the currently selected saved status. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
156 | * |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
157 | * @return A pointer to the in-use GaimSavedStatus. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
158 | */ |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
159 | GaimSavedStatus *gaim_savedstatus_get_current(); |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
160 | |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
161 | /** |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
162 | * Returns the saved status that gets used when your |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
163 | * accounts become idle-away. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
164 | * |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
165 | * @return A pointer to the idle-away GaimSavedStatus. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
166 | */ |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
167 | GaimSavedStatus *gaim_savedstatus_get_idleaway(); |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
168 | |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
169 | /** |
| 10418 | 170 | * Finds a saved status with the specified title. |
| 171 | * | |
| 172 | * @param title The name of the saved status. | |
| 173 | * | |
| 174 | * @return The saved status if found, or NULL. | |
| 175 | */ | |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
176 | GaimSavedStatus *gaim_savedstatus_find(const char *title); |
| 10418 | 177 | |
| 178 | /** | |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
179 | * Determines if a given saved status is "transient." |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
180 | * A transient saved status is one that was not |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
181 | * explicitly added by the user. Transient statuses |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
182 | * are automatically removed if they are not used |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
183 | * for a period of time. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
184 | * |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
185 | * A transient saved statuses is automatically |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
186 | * created by the status box when the user sets himself |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
187 | * to one of the generic primitive statuses. The reason |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
188 | * we need to save this status information is so we can |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
189 | * restore it when Gaim restarts. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
190 | * |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
191 | * @param saved_status The saved status. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
192 | * |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
193 | * @return TRUE if the saved status is transient. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
194 | */ |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
195 | gboolean gaim_savedstatus_is_transient(const GaimSavedStatus *saved_status); |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
196 | |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
197 | /** |
| 10418 | 198 | * Return the name of a given saved status. |
| 199 | * | |
| 200 | * @param saved_status The saved status. | |
| 201 | * | |
| 202 | * @return The title. | |
| 203 | */ | |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
204 | const char *gaim_savedstatus_get_title(const GaimSavedStatus *saved_status); |
| 10418 | 205 | |
| 206 | /** | |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
207 | * Return the type of a given saved status. |
| 10418 | 208 | * |
| 209 | * @param saved_status The saved status. | |
| 210 | * | |
| 211 | * @return The name. | |
| 212 | */ | |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
213 | GaimStatusPrimitive gaim_savedstatus_get_type(const GaimSavedStatus *saved_status); |
| 10418 | 214 | |
| 215 | /** | |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
216 | * Return the default message of a given saved status. |
| 10418 | 217 | * |
| 218 | * @param saved_status The saved status. | |
| 219 | * | |
| 220 | * @return The name. | |
| 221 | */ | |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
222 | const char *gaim_savedstatus_get_message(const GaimSavedStatus *saved_status); |
| 10418 | 223 | |
| 224 | /** | |
|
12125
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
225 | * Return the time in seconds-since-the-epoch when this |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
226 | * saved status was created. Note: For any status created |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
227 | * by Gaim 1.5.0 or older this value will be invalid and |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
228 | * very small (close to 0). This is because Gaim 1.5.0 |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
229 | * and older did not record the timestamp when the status |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
230 | * was created. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
231 | * |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
232 | * However, this value is guaranteed to be a unique |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
233 | * identifier for the given saved status. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
234 | * |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
235 | * @param saved_status The saved status. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
236 | * |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
237 | * @return The timestamp when this saved status was created. |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
238 | */ |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
239 | time_t gaim_savedstatus_get_creation_time(const GaimSavedStatus *saved_status); |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
240 | |
|
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
241 | /** |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
242 | * Determine if a given saved status has "substatuses," |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
243 | * or if it is a simple status (the same for all |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
244 | * accounts). |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
245 | * |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
246 | * @param saved_status The saved status. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
247 | * |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
248 | * @return TRUE if the saved_status has substatuses. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
249 | * FALSE otherwise. |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
250 | */ |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
251 | gboolean gaim_savedstatus_has_substatuses(const GaimSavedStatus *saved_status); |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
252 | |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
253 | /** |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
254 | * Get the substatus for an account in a saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
255 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
256 | * @param status The saved status. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
257 | * @param account The account. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
258 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
259 | * @return The GaimSavedStatusSub for the account, or NULL if |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
260 | * the given account does not have a substatus that |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
261 | * differs from the default status of this GaimSavedStatus. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
262 | */ |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12056
diff
changeset
|
263 | GaimSavedStatusSub *gaim_savedstatus_get_substatus( |
|
12056
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
264 | const GaimSavedStatus *saved_status, |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
265 | const GaimAccount *account); |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
266 | |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
267 | /** |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
268 | * Get the status type of a given substatus. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
269 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
270 | * @param substatus The substatus. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
271 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
272 | * @return The status type. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
273 | */ |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
274 | const GaimStatusType *gaim_savedstatus_substatus_get_type(const GaimSavedStatusSub *substatus); |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
275 | |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
276 | /** |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
277 | * Get the message of a given substatus. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
278 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
279 | * @param substatus The substatus. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
280 | * |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
281 | * @return The message of the substatus, or NULL if this substatus does |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
282 | * not have a message. |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
283 | */ |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
284 | const char *gaim_savedstatus_substatus_get_message(const GaimSavedStatusSub *substatus); |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
285 | |
|
ddfcb4df0965
[gaim-migrate @ 14351]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11724
diff
changeset
|
286 | /** |
|
11724
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
287 | * Sets the statuses for all your accounts to those specified |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
288 | * by the given saved_status. This function calls |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
289 | * gaim_savedstatus_activate_for_account() for all your accounts. |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
290 | * |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
291 | * @param saved_status The status you want to set your accounts to. |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
292 | */ |
|
12125
c1e55f812ded
[gaim-migrate @ 14425]
Mark Doliner <markdoliner@pidgin.im>
parents:
12080
diff
changeset
|
293 | void gaim_savedstatus_activate(GaimSavedStatus *saved_status); |
|
11724
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
294 | |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
295 | /** |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
296 | * Sets the statuses for a given account to those specified |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
297 | * by the given saved_status. |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
298 | * |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
299 | * @param saved_status The status you want to set your accounts to. |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
300 | * @param account The account whose statuses you want to change. |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
301 | */ |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
302 | void gaim_savedstatus_activate_for_account(const GaimSavedStatus *saved_status, GaimAccount *account); |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
303 | |
|
d3f71bc34b4f
[gaim-migrate @ 14015]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
304 | /** |
| 10418 | 305 | * Get the handle for the status subsystem. |
| 306 | * | |
| 307 | * @return the handle to the status subsystem | |
| 308 | */ | |
| 309 | void *gaim_savedstatuses_get_handle(); | |
| 310 | ||
| 311 | /** | |
| 312 | * Initializes the status subsystem. | |
| 313 | */ | |
| 314 | void gaim_savedstatuses_init(void); | |
| 315 | ||
| 316 | /** | |
| 317 | * Uninitializes the status subsystem. | |
| 318 | */ | |
| 319 | void gaim_savedstatuses_uninit(void); | |
| 320 | ||
| 321 | /*@}*/ | |
| 322 | ||
| 323 | #endif /* _GAIM_SAVEDSTATUSES_H_ */ |