Mercurial > pidgin.yaz
comparison libpurple/desktopitem.h @ 15374:5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sat, 20 Jan 2007 02:32:10 +0000 |
parents | |
children | 32c366eeeb99 |
comparison
equal
deleted
inserted
replaced
15373:f79e0f4df793 | 15374:5fe8042783c1 |
---|---|
1 /** | |
2 * @file desktopitem.h Functions for managing .desktop files | |
3 * @ingroup core | |
4 * | |
5 * Gaim is the legal property of its developers, whose names are too numerous | |
6 * to list here. Please refer to the COPYRIGHT file distributed with this | |
7 * source distribution. | |
8 * | |
9 * This program is free software; you can redistribute it and/or modify | |
10 * it under the terms of the GNU General Public License as published by | |
11 * the Free Software Foundation; either version 2 of the License, or | |
12 * (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, | |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 * GNU General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU General Public License | |
20 * along with this program; if not, write to the Free Software | |
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
22 * | |
23 */ | |
24 | |
25 /* | |
26 * The following code has been adapted from gnome-desktop-item.[ch], | |
27 * as found on gnome-desktop-2.8.1. | |
28 * | |
29 * Copyright (C) 2004 by Alceste Scalas <alceste.scalas@gmx.net>. | |
30 * | |
31 * Original copyright notice: | |
32 * | |
33 * Copyright (C) 1999, 2000 Red Hat Inc. | |
34 * Copyright (C) 2001 Sid Vicious | |
35 * All rights reserved. | |
36 * | |
37 * This file is part of the Gnome Library. | |
38 * | |
39 * The Gnome Library is free software; you can redistribute it and/or | |
40 * modify it under the terms of the GNU Library General Public License as | |
41 * published by the Free Software Foundation; either version 2 of the | |
42 * License, or (at your option) any later version. | |
43 * | |
44 * The Gnome Library is distributed in the hope that it will be useful, | |
45 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
46 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
47 * Library General Public License for more details. | |
48 * | |
49 * You should have received a copy of the GNU Library General Public | |
50 * License along with the Gnome Library; see the file COPYING.LIB. If not, | |
51 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
52 * Boston, MA 02111-1307, USA. | |
53 */ | |
54 | |
55 #ifndef _GAIM_DESKTOP_ITEM_H_ | |
56 #define _GAIM_DESKTOP_ITEM_H_ | |
57 | |
58 #include <glib.h> | |
59 #include <glib-object.h> | |
60 | |
61 G_BEGIN_DECLS | |
62 | |
63 typedef enum { | |
64 GAIM_DESKTOP_ITEM_TYPE_NULL = 0 /* This means its NULL, that is, not | |
65 * set */, | |
66 GAIM_DESKTOP_ITEM_TYPE_OTHER /* This means it's not one of the below | |
67 strings types, and you must get the | |
68 Type attribute. */, | |
69 | |
70 /* These are the standard compliant types: */ | |
71 GAIM_DESKTOP_ITEM_TYPE_APPLICATION, | |
72 GAIM_DESKTOP_ITEM_TYPE_LINK, | |
73 GAIM_DESKTOP_ITEM_TYPE_FSDEVICE, | |
74 GAIM_DESKTOP_ITEM_TYPE_MIME_TYPE, | |
75 GAIM_DESKTOP_ITEM_TYPE_DIRECTORY, | |
76 GAIM_DESKTOP_ITEM_TYPE_SERVICE, | |
77 GAIM_DESKTOP_ITEM_TYPE_SERVICE_TYPE | |
78 } GaimDesktopItemType; | |
79 | |
80 typedef struct _GaimDesktopItem GaimDesktopItem; | |
81 | |
82 #define GAIM_TYPE_DESKTOP_ITEM (gaim_desktop_item_get_type ()) | |
83 GType gaim_desktop_item_get_type (void); | |
84 | |
85 /* standard */ | |
86 #define GAIM_DESKTOP_ITEM_ENCODING "Encoding" /* string */ | |
87 #define GAIM_DESKTOP_ITEM_VERSION "Version" /* numeric */ | |
88 #define GAIM_DESKTOP_ITEM_NAME "Name" /* localestring */ | |
89 #define GAIM_DESKTOP_ITEM_GENERIC_NAME "GenericName" /* localestring */ | |
90 #define GAIM_DESKTOP_ITEM_TYPE "Type" /* string */ | |
91 #define GAIM_DESKTOP_ITEM_FILE_PATTERN "FilePattern" /* regexp(s) */ | |
92 #define GAIM_DESKTOP_ITEM_TRY_EXEC "TryExec" /* string */ | |
93 #define GAIM_DESKTOP_ITEM_NO_DISPLAY "NoDisplay" /* boolean */ | |
94 #define GAIM_DESKTOP_ITEM_COMMENT "Comment" /* localestring */ | |
95 #define GAIM_DESKTOP_ITEM_EXEC "Exec" /* string */ | |
96 #define GAIM_DESKTOP_ITEM_ACTIONS "Actions" /* strings */ | |
97 #define GAIM_DESKTOP_ITEM_ICON "Icon" /* string */ | |
98 #define GAIM_DESKTOP_ITEM_MINI_ICON "MiniIcon" /* string */ | |
99 #define GAIM_DESKTOP_ITEM_HIDDEN "Hidden" /* boolean */ | |
100 #define GAIM_DESKTOP_ITEM_PATH "Path" /* string */ | |
101 #define GAIM_DESKTOP_ITEM_TERMINAL "Terminal" /* boolean */ | |
102 #define GAIM_DESKTOP_ITEM_TERMINAL_OPTIONS "TerminalOptions" /* string */ | |
103 #define GAIM_DESKTOP_ITEM_SWALLOW_TITLE "SwallowTitle" /* string */ | |
104 #define GAIM_DESKTOP_ITEM_SWALLOW_EXEC "SwallowExec" /* string */ | |
105 #define GAIM_DESKTOP_ITEM_MIME_TYPE "MimeType" /* regexp(s) */ | |
106 #define GAIM_DESKTOP_ITEM_PATTERNS "Patterns" /* regexp(s) */ | |
107 #define GAIM_DESKTOP_ITEM_DEFAULT_APP "DefaultApp" /* string */ | |
108 #define GAIM_DESKTOP_ITEM_DEV "Dev" /* string */ | |
109 #define GAIM_DESKTOP_ITEM_FS_TYPE "FSType" /* string */ | |
110 #define GAIM_DESKTOP_ITEM_MOUNT_POINT "MountPoint" /* string */ | |
111 #define GAIM_DESKTOP_ITEM_READ_ONLY "ReadOnly" /* boolean */ | |
112 #define GAIM_DESKTOP_ITEM_UNMOUNT_ICON "UnmountIcon" /* string */ | |
113 #define GAIM_DESKTOP_ITEM_SORT_ORDER "SortOrder" /* strings */ | |
114 #define GAIM_DESKTOP_ITEM_URL "URL" /* string */ | |
115 #define GAIM_DESKTOP_ITEM_DOC_PATH "X-GNOME-DocPath" /* string */ | |
116 | |
117 /** | |
118 * This function loads 'filename' and turns it into a GaimDesktopItem. | |
119 * | |
120 * @param filename The filename or directory path to load the GaimDesktopItem from | |
121 * | |
122 * @return The newly loaded item, or NULL on error. | |
123 */ | |
124 GaimDesktopItem *gaim_desktop_item_new_from_file (const char *filename); | |
125 | |
126 /** | |
127 * Gets the type attribute (the 'Type' field) of the item. This should | |
128 * usually be 'Application' for an application, but it can be 'Directory' | |
129 * for a directory description. There are other types available as well. | |
130 * The type usually indicates how the desktop item should be handeled and | |
131 * how the 'Exec' field should be handeled. | |
132 * | |
133 * @param item A desktop item | |
134 * | |
135 * @return The type of the specified 'item'. The returned memory | |
136 * remains owned by the GaimDesktopItem and should not be freed. | |
137 */ | |
138 GaimDesktopItemType gaim_desktop_item_get_entry_type (const GaimDesktopItem *item); | |
139 | |
140 /** | |
141 * Gets the value of an attribute of the item, as a string. | |
142 * | |
143 * @param item A desktop item | |
144 * @param attr The attribute to look for | |
145 * | |
146 * @return The value of the specified item attribute. | |
147 */ | |
148 const char *gaim_desktop_item_get_string (const GaimDesktopItem *item, | |
149 const char *attr); | |
150 | |
151 /** | |
152 * Creates a copy of a GaimDesktopItem. The new copy has a refcount of 1. | |
153 * Note: Section stack is NOT copied. | |
154 * | |
155 * @param item The item to be copied | |
156 * | |
157 * @return The new copy | |
158 */ | |
159 GaimDesktopItem *gaim_desktop_item_copy (const GaimDesktopItem *item); | |
160 | |
161 /** | |
162 * Decreases the reference count of the specified item, and destroys | |
163 * the item if there are no more references left. | |
164 * | |
165 * @param item A desktop item | |
166 */ | |
167 void gaim_desktop_item_unref (GaimDesktopItem *item); | |
168 | |
169 G_END_DECLS | |
170 | |
171 #endif /* _GAIM_DESKTOP_ITEM_H_ */ |