(root)/
glib-2.79.0/
gio/
gactiongroup.h
       1  /*
       2   * Copyright © 2010 Codethink Limited
       3   *
       4   * SPDX-License-Identifier: LGPL-2.1-or-later
       5   *
       6   * This library is free software; you can redistribute it and/or
       7   * modify it under the terms of the GNU Lesser General Public
       8   * License as published by the Free Software Foundation; either
       9   * version 2.1 of the License, or (at your option) any later version.
      10   *
      11   * This library is distributed in the hope that it will be useful,
      12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
      13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14   * Lesser General Public License for more details.
      15   *
      16   * You should have received a copy of the GNU Lesser General
      17   * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
      18   *
      19   * Authors: Ryan Lortie <desrt@desrt.ca>
      20   */
      21  
      22  #ifndef __G_ACTION_GROUP_H__
      23  #define __G_ACTION_GROUP_H__
      24  
      25  #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
      26  #error "Only <gio/gio.h> can be included directly."
      27  #endif
      28  
      29  #include <gio/giotypes.h>
      30  
      31  G_BEGIN_DECLS
      32  
      33  
      34  #define G_TYPE_ACTION_GROUP                                 (g_action_group_get_type ())
      35  #define G_ACTION_GROUP(inst)                                (G_TYPE_CHECK_INSTANCE_CAST ((inst),                     \
      36                                                               G_TYPE_ACTION_GROUP, GActionGroup))
      37  #define G_IS_ACTION_GROUP(inst)                             (G_TYPE_CHECK_INSTANCE_TYPE ((inst),                     \
      38                                                               G_TYPE_ACTION_GROUP))
      39  #define G_ACTION_GROUP_GET_IFACE(inst)                      (G_TYPE_INSTANCE_GET_INTERFACE ((inst),                  \
      40                                                               G_TYPE_ACTION_GROUP, GActionGroupInterface))
      41  
      42  typedef struct _GActionGroupInterface                       GActionGroupInterface;
      43  
      44  struct _GActionGroupInterface
      45  {
      46    GTypeInterface g_iface;
      47  
      48    /* virtual functions */
      49    gboolean              (* has_action)                 (GActionGroup  *action_group,
      50                                                          const gchar   *action_name);
      51  
      52    gchar **              (* list_actions)               (GActionGroup  *action_group);
      53  
      54    gboolean              (* get_action_enabled)         (GActionGroup  *action_group,
      55                                                          const gchar   *action_name);
      56  
      57    const GVariantType *  (* get_action_parameter_type)  (GActionGroup  *action_group,
      58                                                          const gchar   *action_name);
      59  
      60    const GVariantType *  (* get_action_state_type)      (GActionGroup  *action_group,
      61                                                          const gchar   *action_name);
      62  
      63    GVariant *            (* get_action_state_hint)      (GActionGroup  *action_group,
      64                                                          const gchar   *action_name);
      65  
      66    GVariant *            (* get_action_state)           (GActionGroup  *action_group,
      67                                                          const gchar   *action_name);
      68  
      69    void                  (* change_action_state)        (GActionGroup  *action_group,
      70                                                          const gchar   *action_name,
      71                                                          GVariant      *value);
      72  
      73    void                  (* activate_action)            (GActionGroup  *action_group,
      74                                                          const gchar   *action_name,
      75                                                          GVariant      *parameter);
      76  
      77    /* signals */
      78    void                  (* action_added)               (GActionGroup  *action_group,
      79                                                          const gchar   *action_name);
      80    void                  (* action_removed)             (GActionGroup  *action_group,
      81                                                          const gchar   *action_name);
      82    void                  (* action_enabled_changed)     (GActionGroup  *action_group,
      83                                                          const gchar   *action_name,
      84                                                          gboolean       enabled);
      85    void                  (* action_state_changed)       (GActionGroup   *action_group,
      86                                                          const gchar    *action_name,
      87                                                          GVariant       *state);
      88  
      89    /* more virtual functions */
      90    gboolean              (* query_action)               (GActionGroup        *action_group,
      91                                                          const gchar         *action_name,
      92                                                          gboolean            *enabled,
      93                                                          const GVariantType **parameter_type,
      94                                                          const GVariantType **state_type,
      95                                                          GVariant           **state_hint,
      96                                                          GVariant           **state);
      97  };
      98  
      99  GIO_AVAILABLE_IN_ALL
     100  GType                   g_action_group_get_type                         (void) G_GNUC_CONST;
     101  
     102  GIO_AVAILABLE_IN_ALL
     103  gboolean                g_action_group_has_action                       (GActionGroup *action_group,
     104                                                                           const gchar  *action_name);
     105  GIO_AVAILABLE_IN_ALL
     106  gchar **                g_action_group_list_actions                     (GActionGroup *action_group);
     107  
     108  GIO_AVAILABLE_IN_ALL
     109  const GVariantType *    g_action_group_get_action_parameter_type        (GActionGroup *action_group,
     110                                                                           const gchar  *action_name);
     111  GIO_AVAILABLE_IN_ALL
     112  const GVariantType *    g_action_group_get_action_state_type            (GActionGroup *action_group,
     113                                                                           const gchar  *action_name);
     114  GIO_AVAILABLE_IN_ALL
     115  GVariant *              g_action_group_get_action_state_hint            (GActionGroup *action_group,
     116                                                                           const gchar  *action_name);
     117  
     118  GIO_AVAILABLE_IN_ALL
     119  gboolean                g_action_group_get_action_enabled               (GActionGroup *action_group,
     120                                                                           const gchar  *action_name);
     121  
     122  GIO_AVAILABLE_IN_ALL
     123  GVariant *              g_action_group_get_action_state                 (GActionGroup *action_group,
     124                                                                           const gchar  *action_name);
     125  GIO_AVAILABLE_IN_ALL
     126  void                    g_action_group_change_action_state              (GActionGroup *action_group,
     127                                                                           const gchar  *action_name,
     128                                                                           GVariant     *value);
     129  
     130  GIO_AVAILABLE_IN_ALL
     131  void                    g_action_group_activate_action                  (GActionGroup *action_group,
     132                                                                           const gchar  *action_name,
     133                                                                           GVariant     *parameter);
     134  
     135  /* signals */
     136  GIO_AVAILABLE_IN_ALL
     137  void                    g_action_group_action_added                     (GActionGroup *action_group,
     138                                                                           const gchar  *action_name);
     139  GIO_AVAILABLE_IN_ALL
     140  void                    g_action_group_action_removed                   (GActionGroup *action_group,
     141                                                                           const gchar  *action_name);
     142  GIO_AVAILABLE_IN_ALL
     143  void                    g_action_group_action_enabled_changed           (GActionGroup *action_group,
     144                                                                           const gchar  *action_name,
     145                                                                           gboolean      enabled);
     146  
     147  GIO_AVAILABLE_IN_ALL
     148  void                    g_action_group_action_state_changed             (GActionGroup *action_group,
     149                                                                           const gchar  *action_name,
     150                                                                           GVariant     *state);
     151  
     152  GIO_AVAILABLE_IN_2_32
     153  gboolean                g_action_group_query_action                     (GActionGroup        *action_group,
     154                                                                           const gchar         *action_name,
     155                                                                           gboolean            *enabled,
     156                                                                           const GVariantType **parameter_type,
     157                                                                           const GVariantType **state_type,
     158                                                                           GVariant           **state_hint,
     159                                                                           GVariant           **state) G_GNUC_WARN_UNUSED_RESULT;
     160  
     161  G_END_DECLS
     162  
     163  #endif /* __G_ACTION_GROUP_H__ */