src/desktopitem.h

Mon, 22 Nov 2004 02:57:34 +0000

author
Alceste Scalas <alceste.scalas@gmx.net>
date
Mon, 22 Nov 2004 02:57:34 +0000
changeset 10229
39ffee70c286
child 10233
7b542749ccb6
permissions
-rw-r--r--

[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: Sean Egan <seanegan@pidgin.im>

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

mercurial