glib (2.79.0)
       1  /* GIO - GLib Input, Output and Streaming Library
       2   *
       3   * Copyright (C) 2006-2007 Red Hat, Inc.
       4   *
       5   * SPDX-License-Identifier: LGPL-2.1-or-later
       6   *
       7   * This library is free software; you can redistribute it and/or
       8   * modify it under the terms of the GNU Lesser General Public
       9   * License as published by the Free Software Foundation; either
      10   * version 2.1 of the License, or (at your option) any later version.
      11   *
      12   * This library is distributed in the hope that it will be useful,
      13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
      14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      15   * Lesser General Public License for more details.
      16   *
      17   * You should have received a copy of the GNU Lesser General
      18   * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
      19   *
      20   * Author: Alexander Larsson <alexl@redhat.com>
      21   */
      22  
      23  #ifndef __G_DESKTOP_APP_INFO_H__
      24  #define __G_DESKTOP_APP_INFO_H__
      25  
      26  #include <gio/gio.h>
      27  
      28  G_BEGIN_DECLS
      29  
      30  #define G_TYPE_DESKTOP_APP_INFO         (g_desktop_app_info_get_type ())
      31  #define G_DESKTOP_APP_INFO(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfo))
      32  #define G_DESKTOP_APP_INFO_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass))
      33  #define G_IS_DESKTOP_APP_INFO(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DESKTOP_APP_INFO))
      34  #define G_IS_DESKTOP_APP_INFO_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DESKTOP_APP_INFO))
      35  #define G_DESKTOP_APP_INFO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass))
      36  
      37  typedef struct _GDesktopAppInfo        GDesktopAppInfo;
      38  typedef struct _GDesktopAppInfoClass   GDesktopAppInfoClass;
      39  
      40  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDesktopAppInfo, g_object_unref)
      41  
      42  struct _GDesktopAppInfoClass
      43  {
      44    GObjectClass parent_class;
      45  };
      46  
      47  
      48  GIO_AVAILABLE_IN_ALL
      49  GType            g_desktop_app_info_get_type          (void) G_GNUC_CONST;
      50  
      51  GIO_AVAILABLE_IN_ALL
      52  GDesktopAppInfo *g_desktop_app_info_new_from_filename (const char      *filename);
      53  GIO_AVAILABLE_IN_ALL
      54  GDesktopAppInfo *g_desktop_app_info_new_from_keyfile  (GKeyFile        *key_file);
      55  
      56  GIO_AVAILABLE_IN_ALL
      57  const char *     g_desktop_app_info_get_filename      (GDesktopAppInfo *info);
      58  
      59  GIO_AVAILABLE_IN_2_30
      60  const char *     g_desktop_app_info_get_generic_name  (GDesktopAppInfo *info);
      61  GIO_AVAILABLE_IN_2_30
      62  const char *     g_desktop_app_info_get_categories    (GDesktopAppInfo *info);
      63  GIO_AVAILABLE_IN_2_30
      64  const char * const *g_desktop_app_info_get_keywords   (GDesktopAppInfo *info);
      65  GIO_AVAILABLE_IN_2_30
      66  gboolean         g_desktop_app_info_get_nodisplay     (GDesktopAppInfo *info);
      67  GIO_AVAILABLE_IN_2_30
      68  gboolean         g_desktop_app_info_get_show_in       (GDesktopAppInfo *info,
      69                                                         const gchar     *desktop_env);
      70  GIO_AVAILABLE_IN_2_34
      71  const char *     g_desktop_app_info_get_startup_wm_class (GDesktopAppInfo *info);
      72  
      73  GIO_AVAILABLE_IN_ALL
      74  GDesktopAppInfo *g_desktop_app_info_new               (const char      *desktop_id);
      75  GIO_AVAILABLE_IN_ALL
      76  gboolean         g_desktop_app_info_get_is_hidden     (GDesktopAppInfo *info);
      77  
      78  GIO_DEPRECATED_IN_2_42
      79  void             g_desktop_app_info_set_desktop_env   (const char      *desktop_env);
      80  
      81  GIO_AVAILABLE_IN_2_36
      82  gboolean         g_desktop_app_info_has_key           (GDesktopAppInfo *info,
      83                                                         const char      *key);
      84  GIO_AVAILABLE_IN_2_36
      85  char *           g_desktop_app_info_get_string        (GDesktopAppInfo *info,
      86                                                         const char      *key);
      87  GIO_AVAILABLE_IN_2_56
      88  char *           g_desktop_app_info_get_locale_string (GDesktopAppInfo *info,
      89                                                         const char      *key);
      90  GIO_AVAILABLE_IN_2_36
      91  gboolean         g_desktop_app_info_get_boolean       (GDesktopAppInfo *info,
      92                                                         const char      *key);
      93  
      94  GIO_AVAILABLE_IN_2_60
      95  gchar **         g_desktop_app_info_get_string_list (GDesktopAppInfo *info,
      96                                                       const char      *key,
      97                                                       gsize           *length);
      98  
      99  GIO_AVAILABLE_IN_2_38
     100  const gchar * const *   g_desktop_app_info_list_actions                 (GDesktopAppInfo   *info);
     101  
     102  GIO_AVAILABLE_IN_2_38
     103  void                    g_desktop_app_info_launch_action                (GDesktopAppInfo   *info,
     104                                                                           const gchar       *action_name,
     105                                                                           GAppLaunchContext *launch_context);
     106  
     107  GIO_AVAILABLE_IN_2_38
     108  gchar *                 g_desktop_app_info_get_action_name              (GDesktopAppInfo   *info,
     109                                                                           const gchar       *action_name);
     110  
     111  #define G_TYPE_DESKTOP_APP_INFO_LOOKUP           (g_desktop_app_info_lookup_get_type ()) GIO_DEPRECATED_MACRO_IN_2_28
     112  #define G_DESKTOP_APP_INFO_LOOKUP(obj)           (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookup)) GIO_DEPRECATED_MACRO_IN_2_28
     113  #define G_IS_DESKTOP_APP_INFO_LOOKUP(obj)	 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP)) GIO_DEPRECATED_MACRO_IN_2_28
     114  #define G_DESKTOP_APP_INFO_LOOKUP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookupIface)) GIO_DEPRECATED_MACRO_IN_2_28
     115  
     116  /**
     117   * G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME:
     118   *
     119   * Extension point for default handler to URI association. See
     120   * [Extending GIO][extending-gio].
     121   *
     122   * Deprecated: 2.28: The #GDesktopAppInfoLookup interface is deprecated and
     123   *    unused by GIO.
     124   */
     125  #define G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME "gio-desktop-app-info-lookup" GIO_DEPRECATED_MACRO_IN_2_28
     126  
     127  /**
     128   * GDesktopAppInfoLookupIface:
     129   * @get_default_for_uri_scheme: Virtual method for
     130   *  g_desktop_app_info_lookup_get_default_for_uri_scheme().
     131   *
     132   * Interface that is used by backends to associate default
     133   * handlers with URI schemes.
     134   */
     135  typedef struct _GDesktopAppInfoLookup GDesktopAppInfoLookup;
     136  typedef struct _GDesktopAppInfoLookupIface GDesktopAppInfoLookupIface;
     137  
     138  struct _GDesktopAppInfoLookupIface
     139  {
     140    GTypeInterface g_iface;
     141  
     142    GAppInfo * (* get_default_for_uri_scheme) (GDesktopAppInfoLookup *lookup,
     143                                               const char            *uri_scheme);
     144  };
     145  
     146  GIO_DEPRECATED
     147  GType     g_desktop_app_info_lookup_get_type                   (void) G_GNUC_CONST;
     148  
     149  GIO_DEPRECATED
     150  GAppInfo *g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup,
     151                                                                  const char            *uri_scheme);
     152  
     153  /**
     154   * GDesktopAppLaunchCallback:
     155   * @appinfo: a #GDesktopAppInfo
     156   * @pid: Process identifier
     157   * @user_data: User data
     158   *
     159   * During invocation, g_desktop_app_info_launch_uris_as_manager() may
     160   * create one or more child processes.  This callback is invoked once
     161   * for each, providing the process ID.
     162   */
     163  typedef void (*GDesktopAppLaunchCallback) (GDesktopAppInfo  *appinfo,
     164  					   GPid              pid,
     165  					   gpointer          user_data);
     166  
     167  GIO_AVAILABLE_IN_2_28
     168  gboolean    g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo            *appinfo,
     169  						       GList                      *uris,
     170  						       GAppLaunchContext          *launch_context,
     171  						       GSpawnFlags                 spawn_flags,
     172  						       GSpawnChildSetupFunc        user_setup,
     173  						       gpointer                    user_setup_data,
     174  						       GDesktopAppLaunchCallback   pid_callback,
     175  						       gpointer                    pid_callback_data,
     176  						       GError                    **error);
     177  
     178  GIO_AVAILABLE_IN_2_58
     179  gboolean    g_desktop_app_info_launch_uris_as_manager_with_fds (GDesktopAppInfo            *appinfo,
     180  								GList                      *uris,
     181  								GAppLaunchContext          *launch_context,
     182  								GSpawnFlags                 spawn_flags,
     183  								GSpawnChildSetupFunc        user_setup,
     184  								gpointer                    user_setup_data,
     185  								GDesktopAppLaunchCallback   pid_callback,
     186  								gpointer                    pid_callback_data,
     187  								gint                        stdin_fd,
     188  								gint                        stdout_fd,
     189  								gint                        stderr_fd,
     190  								GError                    **error);
     191  
     192  GIO_AVAILABLE_IN_2_40
     193  gchar *** g_desktop_app_info_search (const gchar *search_string);
     194  
     195  GIO_AVAILABLE_IN_2_42
     196  GList *g_desktop_app_info_get_implementations (const gchar *interface);
     197  
     198  G_END_DECLS
     199  
     200  #endif /* __G_DESKTOP_APP_INFO_H__ */