src/savedstatuses.h

Sun, 26 Dec 2004 02:03:14 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sun, 26 Dec 2004 02:03:14 +0000
changeset 10419
cb6b7316fdba
parent 10418
7b632343a29c
child 10420
7277ae4229e9
permissions
-rw-r--r--

[gaim-migrate @ 11670]
Added some GaimStatusPrimitive<-->text mapping functions

Renamed the GaimStatusSaved data types to GaimSavedStatus

Modifying a status will now bring up an editor thing with the
correct values set

10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
1 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
2 * @file savedstatuses.h Saved Status API
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
3 * @ingroup core
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
4 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
5 * gaim
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
6 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
9 * source distribution.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
10 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
15 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
20 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
24 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
25 #ifndef _GAIM_SAVEDSTATUSES_H_
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
26 #define _GAIM_SAVEDSTATUSES_H_
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
27
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
28 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
29 * Saved statuses don't really interact much with the rest of Gaim. It
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
30 * could really be a plugin. It's just a list of away states. When
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
31 * a user chooses one of the saved states, their Gaim accounts are set
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
32 * to the settings of that state.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
33 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
34
10419
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
35 typedef struct _GaimSavedStatus GaimSavedStatus;
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
36 typedef struct _GaimSavedStatusSub GaimSavedStatusSub;
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
37
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
38 /**************************************************************************/
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
39 /** @name Saved status subsystem */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
40 /**************************************************************************/
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
41 /*@{*/
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
42
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
43 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
44 * Create a new saved status. This will add the saved status to the
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
45 * list of saved statuses and writes the revised list to status.xml.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
46 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
47 * @param title The title of the saved status. This must be unique.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
48 * @param type The type of saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
49 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
50 * @return The newly created saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
51 */
10419
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
52 GaimSavedStatus *gaim_savedstatus_new(const char *title,
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
53 GaimStatusPrimitive type);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
54
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
55 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
56 * Delete a saved status. This removes the saved status from the list
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
57 * of saved statuses, and writes the revised list to status.xml.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
58 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
59 * @param title The title of the saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
60 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
61 * @return TRUE if the status was successfully deleted. FALSE if the
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
62 * status could not be deleted because no saved status exists
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
63 * with the given title.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
64 */
10419
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
65 gboolean gaim_savedstatus_delete(const char *title);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
66
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
67 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
68 * Returns all saved statuses.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
69 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
70 * @return A list of saved statuses.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
71 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
72 const GList *gaim_savedstatuses_get_all(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
73
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
74 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
75 * Finds a saved status with the specified title.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
76 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
77 * @param title The name of the saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
78 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
79 * @return The saved status if found, or NULL.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
80 */
10419
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
81 GaimSavedStatus *gaim_savedstatus_find(const char *title);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
82
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
83 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
84 * Return the name of a given saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
85 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
86 * @param saved_status The saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
87 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
88 * @return The title.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
89 */
10419
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
90 const char *gaim_savedstatus_get_title(const GaimSavedStatus *saved_status);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
91
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
92 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
93 * Return the name of a given saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
94 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
95 * @param saved_status The saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
96 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
97 * @return The name.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
98 */
10419
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
99 GaimStatusPrimitive gaim_savedstatus_get_type(const GaimSavedStatus *saved_status);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
100
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
101 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
102 * Return the name of a given saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
103 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
104 * @param saved_status The saved status.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
105 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
106 * @return The name.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
107 */
10419
cb6b7316fdba [gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents: 10418
diff changeset
108 const char *gaim_savedstatus_get_message(const GaimSavedStatus *saved_status);
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
109
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
110 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
111 * Get the handle for the status subsystem.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
112 *
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
113 * @return the handle to the status subsystem
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
114 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
115 void *gaim_savedstatuses_get_handle();
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
116
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
117 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
118 * Initializes the status subsystem.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
119 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
120 void gaim_savedstatuses_init(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
121
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
122 /**
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
123 * Uninitializes the status subsystem.
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
124 */
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
125 void gaim_savedstatuses_uninit(void);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
126
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
127 /*@}*/
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
128
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
129 #endif /* _GAIM_SAVEDSTATUSES_H_ */

mercurial