annotate src/desktopitem.h @ 10229:9aa0b6d11bbf

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