~awn-core/awn/0.2.4

« back to all changes in this revision

Viewing changes to libawn/egg/eggdesktopfile.h

  • Committer: Neil J Patel
  • Date: 2008-02-14 17:14:00 UTC
  • mfrom: (155.1.34 awn-core-testing)
  • Revision ID: njp@neils-mbp-20080214171400-f2dikd9ivke2jhje
2008-02-14  Neil J. Patel  <njpatel@gmail.com>

        * .bzrignore:
        * CC.COPYING:
        * ChangeLog:
        * Makefile.am:
        * acinclude.m4:
        * applets/wscript_build:
        * autogen.sh:
        * awn-applet-activation/Makefile.am:
        * awn-applet-activation/main.c:
        * awn-applet-activation/wscript_build:
        * awn-manager/.directory:
        * awn-manager/Makefile.am:
        * awn-manager/awn-launcher-editor.in:
        * awn-manager/awnApplet.py:
        * awn-manager/awnDefs.py.in:
        * awn-manager/awnLauncher.py:
        * awn-manager/awnLauncherEditor.py:
        * awn-manager/awnManager.py.in:
        * awn-manager/awnPreferences.py:
        * awn-manager/awnTheme.py:
        * awn-manager/launcher-editor.glade:
        * awn-manager/window.glade:
        * awn-manager/wscript_build:
        * awn.pc.in:
        * bindings/Makefile.am:
        * bindings/python/Makefile.am:
        * bindings/python/__init__.py:
        * bindings/python/awn.defs:
        * bindings/python/awn.override:
        * bindings/python/awnmodule.c:
        * bindings/vala/Makefile.am:
        * bindings/vala/awn.deps:
        * bindings/vala/awn.files:
        * bindings/vala/awn.gi:
        * bindings/vala/awn.metadata:
        * bindings/vala/awn.namespace:
        * bindings/vala/awn.vapi:
        * config.h.in:
        * configure.in:
        * data/Makefile.am:
        * data/awn-schema-to-gconf:
        * data/awn.schema-ini:
        * data/wscript_build:
        * doc/Makefile.am:
        * doc/reference/Makefile.am:
        * doc/reference/libawn-docs.sgml:
        * doc/reference/libawn-sections.txt:
        * doc/reference/libawn.types:
        * docs/PPA_autoppa:
        * docs/waf:
        * libawn/Makefile.am:
        * libawn/awn-applet-dialog.c:
        * libawn/awn-applet-dialog.h:
        * libawn/awn-applet-gconf.c:
        * libawn/awn-applet-gconf.h:
        * libawn/awn-applet-simple.c:
        * libawn/awn-applet.c:
        * libawn/awn-applet.h:
        * libawn/awn-config-client-gconf.c:
        * libawn/awn-config-client-gkeyfile.c:
        * libawn/awn-config-client-shared.c:
        * libawn/awn-config-client.h:
        * libawn/awn-defines.h:
        * libawn/awn-desktop-item-egg.c:
        * libawn/awn-desktop-item-gnome.c:
        * libawn/awn-desktop-item.h:
        * libawn/awn-effects.c:
        * libawn/awn-effects.h:
        * libawn/awn-enum-types.c.in:
        * libawn/awn-settings.c:
        * libawn/awn-settings.h:
        * libawn/awn-title.c:
        * libawn/awn-vfs.c:
        * libawn/awn-vfs.h:
        * libawn/egg/Makefile.am:
        * libawn/egg/egg-enum-types.c.in:
        * libawn/egg/egg-enum-types.h.in:
        * libawn/egg/eggchecksum.c:
        * libawn/egg/eggchecksum.h:
        * libawn/egg/eggdesktopfile.c:
        * libawn/egg/eggdesktopfile.h:
        * libawn/egg/tests/checksum-test.c:
        * libawn/wscript_build:
        * po/wscript_build:
        * src/Makefile.am:
        * src/awn-applet-manager.c:
        * src/awn-applet-manager.h:
        * src/awn-bar.h:
        * src/awn-hotspot.h:
        * src/awn-task-manager.c:
        * src/awn-task-manager.h:
        * src/awn-task.c:
        * src/awn-task.h:
        * src/awn-utils.h:
        * src/awn-window.h:
        * src/awn-x.c:
        * src/awn-x.h:
        * src/main.c:
        * test/Makefile.am:
        * test/test-config-client.c:
        * test/test-config-client.py:
        * test/test.vala:
        * waf:
        * wscript:
        Merged awn-core-testing branch by malept, moonbeem & gilir.
        Abstracts configuration backends; Add support for GKeyfile backend.
        Abstracts Desktop File implementation; Adds support for libegg backend.
        Abstracts VFS backends; Adds support for Tunar & GVFS backend.
        Updated python bindings.
        Adds support for Vala bindings.
        Removes gnome-panel dependancy.
        Updated awn-manager interface.
        

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* eggdesktopfile.h - Freedesktop.Org Desktop Files
 
2
 * Copyright (C) 2007 Novell, Inc.
 
3
 *
 
4
 * This library is free software; you can redistribute it and/or
 
5
 * modify it under the terms of the GNU Lesser General Public License
 
6
 * as published by the Free Software Foundation; either version 2 of
 
7
 * the License, or (at your option) any later version.
 
8
 *
 
9
 * This library is distributed in the hope that it will be useful, but
 
10
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 
12
 * Lesser General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU Lesser General Public
 
15
 * License along with this library; see the file COPYING.LIB. If not,
 
16
 * write to the Free Software Foundation, Inc., 59 Temple Place -
 
17
 * Suite 330, Boston, MA 02111-1307, USA.
 
18
 */
 
19
 
 
20
#ifndef __EGG_DESKTOP_FILE_H__
 
21
#define __EGG_DESKTOP_FILE_H__
 
22
 
 
23
#include <glib.h>
 
24
#include <glib-object.h>
 
25
 
 
26
G_BEGIN_DECLS
 
27
 
 
28
typedef struct EggDesktopFile EggDesktopFile;
 
29
 
 
30
GType egg_desktop_file_get_type (void) G_GNUC_CONST;
 
31
#define EGG_TYPE_DESKTOP_FILE (egg_desktop_file_get_type())
 
32
#define EGG_DESKTOP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_DESKTOP_FILE, EggDesktopFile))
 
33
 
 
34
typedef enum {
 
35
        EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED,
 
36
 
 
37
        EGG_DESKTOP_FILE_TYPE_APPLICATION,
 
38
        EGG_DESKTOP_FILE_TYPE_LINK,
 
39
        EGG_DESKTOP_FILE_TYPE_DIRECTORY,
 
40
} EggDesktopFileType;
 
41
 
 
42
EggDesktopFile     *egg_desktop_file_new                (const char   *desktop_file_path,
 
43
                                                         GError      **error);
 
44
 
 
45
EggDesktopFile     *egg_desktop_file_new_from_data_dirs (const char  *desktop_file_path,
 
46
                                                         GError     **error);
 
47
EggDesktopFile     *egg_desktop_file_new_from_key_file  (GKeyFile     *desktop,
 
48
                                                         const char   *source,
 
49
                                                         GError      **error);
 
50
EggDesktopFile     *egg_desktop_file_copy               (const EggDesktopFile  *desktop_file);
 
51
 
 
52
void                egg_desktop_file_free               (EggDesktopFile  *desktop_file);
 
53
 
 
54
GKeyFile           *egg_desktop_file_get_key_file       (EggDesktopFile  *desktop_file);
 
55
 
 
56
const char         *egg_desktop_file_get_source         (EggDesktopFile  *desktop_file);
 
57
 
 
58
EggDesktopFileType  egg_desktop_file_get_desktop_file_type (EggDesktopFile  *desktop_file);
 
59
 
 
60
const char         *egg_desktop_file_get_name           (EggDesktopFile  *desktop_file);
 
61
const char         *egg_desktop_file_get_icon           (EggDesktopFile  *desktop_file);
 
62
 
 
63
gboolean            egg_desktop_file_can_launch         (EggDesktopFile  *desktop_file,
 
64
                                                         const char      *desktop_environment);
 
65
 
 
66
gboolean            egg_desktop_file_accepts_documents  (EggDesktopFile  *desktop_file);
 
67
gboolean            egg_desktop_file_accepts_multiple   (EggDesktopFile  *desktop_file);
 
68
gboolean            egg_desktop_file_accepts_uris       (EggDesktopFile  *desktop_file);
 
69
 
 
70
char               *egg_desktop_file_parse_exec         (EggDesktopFile  *desktop_file,
 
71
                                                         GSList          *documents,
 
72
                                                         GError         **error);
 
73
 
 
74
gboolean            egg_desktop_file_launch             (EggDesktopFile  *desktop_file,
 
75
                                                         GSList          *documents,
 
76
                                                         GError         **error,
 
77
                                                         ...) G_GNUC_NULL_TERMINATED;
 
78
 
 
79
typedef enum {
 
80
        EGG_DESKTOP_FILE_LAUNCH_CLEARENV = 1,
 
81
        EGG_DESKTOP_FILE_LAUNCH_PUTENV,
 
82
        EGG_DESKTOP_FILE_LAUNCH_SCREEN,
 
83
        EGG_DESKTOP_FILE_LAUNCH_WORKSPACE,
 
84
        EGG_DESKTOP_FILE_LAUNCH_DIRECTORY,
 
85
        EGG_DESKTOP_FILE_LAUNCH_TIME,
 
86
        EGG_DESKTOP_FILE_LAUNCH_FLAGS,
 
87
        EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC,
 
88
        EGG_DESKTOP_FILE_LAUNCH_RETURN_PID,
 
89
        EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE,
 
90
        EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE,
 
91
        EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE,
 
92
        EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID
 
93
} EggDesktopFileLaunchOption;
 
94
 
 
95
/* Standard Keys */
 
96
#define EGG_DESKTOP_FILE_GROUP                  "Desktop Entry"
 
97
 
 
98
#define EGG_DESKTOP_FILE_KEY_TYPE               "Type"
 
99
#define EGG_DESKTOP_FILE_KEY_VERSION            "Version"
 
100
#define EGG_DESKTOP_FILE_KEY_NAME               "Name"
 
101
#define EGG_DESKTOP_FILE_KEY_GENERIC_NAME       "GenericName"
 
102
#define EGG_DESKTOP_FILE_KEY_NO_DISPLAY         "NoDisplay"
 
103
#define EGG_DESKTOP_FILE_KEY_COMMENT            "Comment"
 
104
#define EGG_DESKTOP_FILE_KEY_ICON               "Icon"
 
105
#define EGG_DESKTOP_FILE_KEY_HIDDEN             "Hidden"
 
106
#define EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN       "OnlyShowIn"
 
107
#define EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN        "NotShowIn"
 
108
#define EGG_DESKTOP_FILE_KEY_TRY_EXEC           "TryExec"
 
109
#define EGG_DESKTOP_FILE_KEY_EXEC               "Exec"
 
110
#define EGG_DESKTOP_FILE_KEY_PATH               "Path"
 
111
#define EGG_DESKTOP_FILE_KEY_TERMINAL           "Terminal"
 
112
#define EGG_DESKTOP_FILE_KEY_MIME_TYPE          "MimeType"
 
113
#define EGG_DESKTOP_FILE_KEY_CATEGORIES         "Categories"
 
114
#define EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY     "StartupNotify"
 
115
#define EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS   "StartupWMClass"
 
116
#define EGG_DESKTOP_FILE_KEY_URL                "URL"
 
117
 
 
118
/* Errors */
 
119
#define EGG_DESKTOP_FILE_ERROR egg_desktop_file_error_quark()
 
120
 
 
121
GQuark egg_desktop_file_error_quark (void);
 
122
 
 
123
typedef enum {
 
124
        EGG_DESKTOP_FILE_ERROR_INVALID,
 
125
        EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
 
126
        EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION,
 
127
} EggDesktopFileError;
 
128
 
 
129
/* Global application desktop file */
 
130
void            egg_set_desktop_file (const char *desktop_file_path);
 
131
EggDesktopFile *egg_get_desktop_file (void);
 
132
 
 
133
 
 
134
G_END_DECLS
 
135
 
 
136
#endif /* __EGG_DESKTOP_FILE_H__ */