![]() |
![]() |
![]() |
GIO Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces | Properties |
#include <gio/gdesktopappinfo.h> GDesktopAppInfo; GDesktopAppInfo * g_desktop_app_info_new_from_filename (const char *filename
); GDesktopAppInfo * g_desktop_app_info_new_from_keyfile (GKeyFile *key_file
); GDesktopAppInfo * g_desktop_app_info_new (const char *desktop_id
); const char * g_desktop_app_info_get_filename (GDesktopAppInfo *info
); gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info
); gboolean g_desktop_app_info_get_nodisplay (GDesktopAppInfo *info
); gboolean g_desktop_app_info_get_show_in (GDesktopAppInfo *info
,const gchar *desktop_env
); const char * g_desktop_app_info_get_generic_name (GDesktopAppInfo *info
); const char * g_desktop_app_info_get_categories (GDesktopAppInfo *info
); const char * const * g_desktop_app_info_get_keywords (GDesktopAppInfo *info
); const char * g_desktop_app_info_get_startup_wm_class (GDesktopAppInfo *info
); void g_desktop_app_info_set_desktop_env (const char *desktop_env
); void (*GDesktopAppLaunchCallback) (GDesktopAppInfo *appinfo
,GPid pid
,gpointer user_data
); gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo
,GList *uris
,GAppLaunchContext *launch_context
,GSpawnFlags spawn_flags
,GSpawnChildSetupFunc user_setup
,gpointer user_setup_data
,GDesktopAppLaunchCallback pid_callback
,gpointer pid_callback_data
,GError **error
);
GDesktopAppInfo is an implementation of GAppInfo based on desktop files.
Note that <gio/gdesktopappinfo.h>
belongs to
the UNIX-specific GIO interfaces, thus you have to use the
gio-unix-2.0.pc
pkg-config file when using it.
typedef struct _GDesktopAppInfo GDesktopAppInfo;
Information about an installed application from a desktop file.
GDesktopAppInfo * g_desktop_app_info_new_from_filename
(const char *filename
);
Creates a new GDesktopAppInfo.
|
the path of a desktop file, in the GLib filename encoding |
Returns : |
a new GDesktopAppInfo or NULL on error. |
GDesktopAppInfo * g_desktop_app_info_new_from_keyfile (GKeyFile *key_file
);
Creates a new GDesktopAppInfo.
|
an opened GKeyFile |
Returns : |
a new GDesktopAppInfo or NULL on error. |
Since 2.18
GDesktopAppInfo * g_desktop_app_info_new (const char *desktop_id
);
Creates a new GDesktopAppInfo based on a desktop file id.
A desktop file id is the basename of the desktop file, including the
.desktop extension. GIO is looking for a desktop file with this name
in the applications
subdirectories of the XDG data
directories (i.e. the directories specified in the
XDG_DATA_HOME
and XDG_DATA_DIRS
environment
variables). GIO also supports the prefix-to-subdirectory mapping that is
described in the Menu Spec
(i.e. a desktop id of kde-foo.desktop will match
/usr/share/applications/kde/foo.desktop
).
|
the desktop file id |
Returns : |
a new GDesktopAppInfo, or NULL if no desktop file with that id |
const char * g_desktop_app_info_get_filename (GDesktopAppInfo *info
);
When info
was created from a known filename, return it. In some
situations such as the GDesktopAppInfo returned from
g_desktop_app_info_new_from_keyfile()
, this function will return NULL
.
|
a GDesktopAppInfo |
Returns : |
The full path to the file for info , or NULL if not known. |
Since 2.24
gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info
);
A desktop file is hidden if the Hidden key in it is set to True.
|
a GDesktopAppInfo. |
Returns : |
TRUE if hidden, FALSE otherwise. |
gboolean g_desktop_app_info_get_nodisplay (GDesktopAppInfo *info
);
Gets the value of the NoDisplay key, which helps determine if the
application info should be shown in menus. See
G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY and g_app_info_should_show()
.
|
a GDesktopAppInfo |
Returns : |
The value of the NoDisplay key |
Since 2.30
gboolean g_desktop_app_info_get_show_in (GDesktopAppInfo *info
,const gchar *desktop_env
);
Checks if the application info should be shown in menus that list available
applications for a specific name of the desktop, based on the
OnlyShowIn
and NotShowIn
keys.
If desktop_env
is NULL
, then the name of the desktop set with
g_desktop_app_info_set_desktop_env()
is used.
Note that g_app_info_should_show()
for info
will include this check (with
NULL
for desktop_env
) as well as additional checks.
|
a GDesktopAppInfo |
|
a string specifying a desktop name |
Returns : |
TRUE if the info should be shown in desktop_env according to the
OnlyShowIn and NotShowIn keys, FALSE
otherwise. |
Since 2.30
const char * g_desktop_app_info_get_generic_name (GDesktopAppInfo *info
);
Gets the generic name from the destkop file.
|
a GDesktopAppInfo |
Returns : |
The value of the GenericName key |
const char * g_desktop_app_info_get_categories (GDesktopAppInfo *info
);
Gets the categories from the desktop file.
|
a GDesktopAppInfo |
Returns : |
The unparsed Categories key from the desktop file; i.e. no attempt is made to split it by ';' or validate it. |
const char * const * g_desktop_app_info_get_keywords (GDesktopAppInfo *info
);
Gets the keywords from the desktop file.
|
a GDesktopAppInfo |
Returns : |
The value of the Keywords key. [transfer none] |
Since 2.32
const char * g_desktop_app_info_get_startup_wm_class
(GDesktopAppInfo *info
);
Retrieves the StartupWMClass field from info
. This represents the
WM_CLASS property of the main window of the application, if launched
through info
.
|
a GDesktopAppInfo that supports startup notify |
Returns : |
the startup WM class, or NULL if none is set
in the desktop file. [transfer none]
|
Since 2.34
void g_desktop_app_info_set_desktop_env (const char *desktop_env
);
Sets the name of the desktop that the application is running in.
This is used by g_app_info_should_show()
and
g_desktop_app_info_get_show_in()
to evaluate the
OnlyShowIn
and NotShowIn
desktop entry fields.
The Desktop Menu specification recognizes the following:
GNOME |
KDE |
ROX |
XFCE |
LXDE |
Unity |
Old |
Should be called only once; subsequent calls are ignored.
|
a string specifying what desktop this is |
void (*GDesktopAppLaunchCallback) (GDesktopAppInfo *appinfo
,GPid pid
,gpointer user_data
);
During invocation, g_desktop_app_info_launch_uris_as_manager()
may
create one or more child processes. This callback is invoked once
for each, providing the process ID.
|
a GDesktopAppInfo |
|
Process identifier |
|
User data |
gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo
,GList *uris
,GAppLaunchContext *launch_context
,GSpawnFlags spawn_flags
,GSpawnChildSetupFunc user_setup
,gpointer user_setup_data
,GDesktopAppLaunchCallback pid_callback
,gpointer pid_callback_data
,GError **error
);
This function performs the equivalent of g_app_info_launch_uris()
,
but is intended primarily for operating system components that
launch applications. Ordinary applications should use
g_app_info_launch_uris()
.
In contrast to g_app_info_launch_uris()
, all processes created will
always be run directly as children as if by the UNIX fork()
/exec()
calls.
This guarantee allows additional control over the exact environment
of the child processes, which is provided via a setup function
user_setup
, as well as the process identifier of each child process
via pid_callback
. See g_spawn_async()
for more information about the
semantics of the user_setup
function.
|
a GDesktopAppInfo |
|
List of URIs. [element-type utf8] |
|
a GAppLaunchContext |
|
GSpawnFlags, used for each process |
|
a GSpawnChildSetupFunc, used once for each process. [scope call] |
|
User data for user_setup . [closure user_setup]
|
|
Callback for child processes. [scope call] |
|
User data for callback . [closure pid_callback]
|
|
return location for a GError, or NULL
|
Returns : |
TRUE on successful launch, FALSE otherwise. |
"filename"
property"filename" gchar* : Read / Write / Construct Only
The origin filename of this GDesktopAppInfo
Default value: NULL