GVariant: add support for single precision floats
[platform/upstream/glib.git] / gio / gactiongroup.h
index 94602af..647d6ac 100644 (file)
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
  *
  * Authors: Ryan Lortie <desrt@desrt.ca>
  */
 
+#ifndef __G_ACTION_GROUP_H__
+#define __G_ACTION_GROUP_H__
+
 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
 #error "Only <gio/gio.h> can be included directly."
 #endif
 
-#ifndef __G_ACTION_GROUP_H__
-#define __G_ACTION_GROUP_H__
-
 #include <gio/giotypes.h>
 
 G_BEGIN_DECLS
@@ -41,26 +39,6 @@ G_BEGIN_DECLS
 
 typedef struct _GActionGroupInterface                       GActionGroupInterface;
 
-/**
- * GActionGroupInterface:
- * @has_action: the virtual function pointer for g_action_group_has_action()
- * @list_actions: the virtual function pointer for g_action_group_list_actions()
- * @get_action_parameter_type: the virtual function pointer for g_action_group_get_action_parameter_type()
- * @get_action_state_type: the virtual function pointer for g_action_group_get_action_state_type()
- * @get_action_state_hint: the virtual function pointer for g_action_group_get_action_state_hint()
- * @get_action_enabled: the virtual function pointer for g_action_group_get_action_enabled()
- * @get_action_state: the virtual function pointer for g_action_group_get_action_state()
- * @set_action_state: the virtual function pointer for g_action_group_set_action_state()
- * @activate_action: the virtual function pointer for g_action_group_activate_action()
- * @action_added: the class closure for the #GActionGroup::action-added signal
- * @action_removed: the class closure for the #GActionGroup::action-removed signal
- * @action_enabled_changed: the class closure for the #GActionGroup::action-enabled-changed signal
- * @action_state_changed: the class closure for the #GActionGroup::action-enabled-changed signal
- *
- * The virtual function table for #GActionGroup.
- *
- * Since: 2.28
- */
 struct _GActionGroupInterface
 {
   GTypeInterface g_iface;
@@ -105,47 +83,79 @@ struct _GActionGroupInterface
   void                  (* action_state_changed)       (GActionGroup   *action_group,
                                                         const gchar    *action_name,
                                                         GVariant       *state);
+
+  /* more virtual functions */
+  gboolean              (* query_action)               (GActionGroup        *action_group,
+                                                        const gchar         *action_name,
+                                                        gboolean            *enabled,
+                                                        const GVariantType **parameter_type,
+                                                        const GVariantType **state_type,
+                                                        GVariant           **state_hint,
+                                                        GVariant           **state);
 };
 
+GLIB_AVAILABLE_IN_ALL
 GType                   g_action_group_get_type                         (void) G_GNUC_CONST;
 
+GLIB_AVAILABLE_IN_ALL
 gboolean                g_action_group_has_action                       (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+GLIB_AVAILABLE_IN_ALL
 gchar **                g_action_group_list_actions                     (GActionGroup *action_group);
 
+GLIB_AVAILABLE_IN_ALL
 const GVariantType *    g_action_group_get_action_parameter_type        (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+GLIB_AVAILABLE_IN_ALL
 const GVariantType *    g_action_group_get_action_state_type            (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+GLIB_AVAILABLE_IN_ALL
 GVariant *              g_action_group_get_action_state_hint            (GActionGroup *action_group,
                                                                          const gchar  *action_name);
 
+GLIB_AVAILABLE_IN_ALL
 gboolean                g_action_group_get_action_enabled               (GActionGroup *action_group,
                                                                          const gchar  *action_name);
 
+GLIB_AVAILABLE_IN_ALL
 GVariant *              g_action_group_get_action_state                 (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+GLIB_AVAILABLE_IN_ALL
 void                    g_action_group_change_action_state              (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          GVariant     *value);
 
+GLIB_AVAILABLE_IN_ALL
 void                    g_action_group_activate_action                  (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          GVariant     *parameter);
 
 /* signals */
+GLIB_AVAILABLE_IN_ALL
 void                    g_action_group_action_added                     (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+GLIB_AVAILABLE_IN_ALL
 void                    g_action_group_action_removed                   (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+GLIB_AVAILABLE_IN_ALL
 void                    g_action_group_action_enabled_changed           (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          gboolean      enabled);
 
+GLIB_AVAILABLE_IN_ALL
 void                    g_action_group_action_state_changed             (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          GVariant     *state);
 
+GLIB_AVAILABLE_IN_2_32
+gboolean                g_action_group_query_action                     (GActionGroup        *action_group,
+                                                                         const gchar         *action_name,
+                                                                         gboolean            *enabled,
+                                                                         const GVariantType **parameter_type,
+                                                                         const GVariantType **state_type,
+                                                                         GVariant           **state_hint,
+                                                                         GVariant           **state);
+
 G_END_DECLS
 
 #endif /* __G_ACTION_GROUP_H__ */