[kdbus] KDBUS_ITEM_PAYLOAD_OFF items are (once again) relative to msg header
[platform/upstream/glib.git] / gio / gactionmap.c
index 67feec8..c5b3d2e 100644 (file)
@@ -12,9 +12,7 @@
  * 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>
  */
 #include "config.h"
 
 #include "gsimpleaction.h"
-#include "gactiongroup.h"
 #include "gactionmap.h"
 #include "gaction.h"
 
 /**
  * SECTION:gactionmap
  * @title: GActionMap
+ * @include: gio/gio.h
  * @short_description: Interface for action containers
  *
  * The GActionMap interface is implemented by #GActionGroup
@@ -55,7 +53,7 @@
  * Since: 2.32
  **/
 
-G_DEFINE_INTERFACE (GActionMap, g_action_map, G_TYPE_ACTION_GROUP)
+G_DEFINE_INTERFACE (GActionMap, g_action_map, G_TYPE_OBJECT)
 
 static void
 g_action_map_default_init (GActionMapInterface *iface)
@@ -101,8 +99,7 @@ void
 g_action_map_add_action (GActionMap *action_map,
                          GAction    *action)
 {
-  return G_ACTION_MAP_GET_IFACE (action_map)
-    ->add_action (action_map, action);
+  G_ACTION_MAP_GET_IFACE (action_map)->add_action (action_map, action);
 }
 
 /**
@@ -120,24 +117,30 @@ void
 g_action_map_remove_action (GActionMap  *action_map,
                             const gchar *action_name)
 {
-  return G_ACTION_MAP_GET_IFACE (action_map)
-    ->remove_action (action_map, action_name);
+  G_ACTION_MAP_GET_IFACE (action_map)->remove_action (action_map, action_name);
 }
 
 /**
  * GActionEntry:
  * @name: the name of the action
  * @activate: the callback to connect to the "activate" signal of the
- *            action
+ *            action.  Since GLib 2.40, this can be %NULL for stateful
+ *            actions, in which case the default handler is used.  For
+ *            boolean-stated actions with no parameter, this is a
+ *            toggle.  For other state types (and parameter type equal
+ *            to the state type) this will be a function that
+ *            just calls @change_state (which you should provide).
  * @parameter_type: the type of the parameter that must be passed to the
  *                  activate function for this action, given as a single
  *                  GVariant type string (or %NULL for no parameter)
- * @state: the initial state for this action, given in GVariant text
- *         format.  The state is parsed with no extra type information,
- *         so type tags must be added to the string if they are
- *         necessary.
+ * @state: the initial state for this action, given in
+ *         [GVariant text format][gvariant-text].  The state is parsed
+ *         with no extra type information, so type tags must be added to
+ *         the string if they are necessary.  Stateless actions should
+ *         give %NULL here.
  * @change_state: the callback to connect to the "change-state" signal
- *                of the action
+ *                of the action.  All stateful actions should provide a
+ *                handler here; stateless actions should not.
  *
  * This struct defines a single action.  It is for use with
  * g_action_map_add_action_entries().
@@ -154,8 +157,8 @@ g_action_map_remove_action (GActionMap  *action_map,
 /**
  * g_action_map_add_action_entries:
  * @action_map: a #GActionMap
- * @entries: a pointer to the first item in an array of #GActionEntry
- *           structs
+ * @entries: (array length=n_entries) (element-type GActionEntry): a pointer to
+ *           the first item in an array of #GActionEntry structs
  * @n_entries: the length of @entries, or -1 if @entries is %NULL-terminated
  * @user_data: the user data for signal connections
  *
@@ -164,9 +167,7 @@ g_action_map_remove_action (GActionMap  *action_map,
  *
  * Each action is constructed as per one #GActionEntry.
  *
- * <example>
- * <title>Using g_action_map_add_action_entries()</title>
- * <programlisting>
+ * |[<!-- language="C" -->
  * static void
  * activate_quit (GSimpleAction *simple,
  *                GVariant      *parameter,
@@ -197,8 +198,7 @@ g_action_map_remove_action (GActionMap  *action_map,
  *
  *   return G_ACTION_GROUP (group);
  * }
- * </programlisting>
- * </example>
+ * ]|
  *
  * Since: 2.32
  */
@@ -223,7 +223,7 @@ g_action_map_add_action_entries (GActionMap         *action_map,
         {
           if (!g_variant_type_string_is_valid (entry->parameter_type))
             {
-              g_critical ("g_simple_action_group_add_entries: the type "
+              g_critical ("g_action_map_add_entries: the type "
                           "string '%s' given as the parameter type for "
                           "action '%s' is not a valid GVariant type "
                           "string.  This action will not be added.",
@@ -244,7 +244,7 @@ g_action_map_add_action_entries (GActionMap         *action_map,
           state = g_variant_parse (NULL, entry->state, NULL, NULL, &error);
           if (state == NULL)
             {
-              g_critical ("g_simple_action_group_add_entries: GVariant could "
+              g_critical ("g_action_map_add_entries: GVariant could "
                           "not parse the state value given for action '%s' "
                           "('%s'): %s.  This action will not be added.",
                           entry->name, entry->state, error->message);