GVariant: add support for single precision floats
[platform/upstream/glib.git] / gio / gactiongroup.h
index 2fa4831..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
 
-#define G_TYPE_ACTION_GROUP                                 (g_action_group_get_type ())
-#define G_ACTION_GROUP(inst)                                (G_TYPE_CHECK_INSTANCE_CAST ((inst),                     \
-                                                             G_TYPE_ACTION_GROUP, GActionGroup))
-#define G_IS_ACTION_GROUP(inst)                             (G_TYPE_CHECK_INSTANCE_TYPE ((inst),                     \
-                                                             G_TYPE_ACTION_GROUP))
-#define G_ACTION_GROUP_GET_IFACE(inst)                      (G_TYPE_INSTANCE_GET_INTERFACE ((inst),                  \
-                                                             G_TYPE_ACTION_GROUP, GActionGroupInterface))
 
 #define G_TYPE_ACTION_GROUP                                 (g_action_group_get_type ())
 #define G_ACTION_GROUP(inst)                                (G_TYPE_CHECK_INSTANCE_CAST ((inst),                     \
@@ -46,29 +37,8 @@ G_BEGIN_DECLS
 #define G_ACTION_GROUP_GET_IFACE(inst)                      (G_TYPE_INSTANCE_GET_INTERFACE ((inst),                  \
                                                              G_TYPE_ACTION_GROUP, GActionGroupInterface))
 
-typedef struct _GContextActionGroupInterface                GContextActionGroupInterface;
 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_parameter_type: the virtual function pointer for g_action_group_get_parameter_type()
- * @get_state_type: the virtual function pointer for g_action_group_get_state_type()
- * @get_state_hint: the virtual function pointer for g_action_group_get_state_hint()
- * @get_enabled: the virtual function pointer for g_action_group_get_enabled()
- * @get_state: the virtual function pointer for g_action_group_get_state()
- * @set_state: the virtual function pointer for g_action_group_set_state()
- * @activate: the virtual function pointer for g_action_group_activate()
- * @action_added: the class closure for the action-added signal
- * @action_removed: the class closure for the action-removed signal
- * @action_enabled_changed: the class closure for the action-enabled-changed signal
- * @action_state_changed: the class closure for the action-enabled-changed signal
- *
- * The virtual function table for #GActionGroup.
- *
- * Since: 2.26
- */
 struct _GActionGroupInterface
 {
   GTypeInterface g_iface;
@@ -112,62 +82,80 @@ struct _GActionGroupInterface
                                                         gboolean       enabled);
   void                  (* action_state_changed)       (GActionGroup   *action_group,
                                                         const gchar    *action_name,
-                                                        GVariant       *value);
+                                                        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);
 };
 
-struct _GContextActionGroupInterface
-{
-  void                  (* change_action_state)        (GActionGroup  *action_group,
-                                                        const gchar   *action_name,
-                                                        GVariant      *value,
-                                                        GVariant      *context);
-
-  void                  (* activate_action)            (GActionGroup  *action_group,
-                                                        const gchar   *action_name,
-                                                        GVariant      *parameter,
-                                                        GVariant      *context);
-};
-
-
+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__ */