Tizen 2.1 base
[platform/upstream/glib2.0.git] / docs / reference / gio / html / GActionGroup.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GActionGroup</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GIO Reference Manual">
8 <link rel="up" href="application.html" title="Application support">
9 <link rel="prev" href="GApplicationCommandLine.html" title="GApplicationCommandLine">
10 <link rel="next" href="GActionMap.html" title="GActionMap">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="GApplicationCommandLine.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="application.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GIO Reference Manual</th>
21 <td><a accesskey="n" href="GActionMap.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GActionGroup.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#GActionGroup.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#GActionGroup.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#GActionGroup.prerequisites" class="shortcut">Prerequisites</a>
31                    | 
32                   <a href="#GActionGroup.derived-interfaces" class="shortcut">Known Derived Interfaces</a>
33                    | 
34                   <a href="#GActionGroup.implementations" class="shortcut">Known Implementations</a>
35                    | 
36                   <a href="#GActionGroup.signals" class="shortcut">Signals</a>
37 </td></tr>
38 </table>
39 <div class="refentry">
40 <a name="GActionGroup"></a><div class="titlepage"></div>
41 <div class="refnamediv"><table width="100%"><tr>
42 <td valign="top">
43 <h2><span class="refentrytitle"><a name="GActionGroup.top_of_page"></a>GActionGroup</span></h2>
44 <p>GActionGroup — A group of actions</p>
45 </td>
46 <td valign="top" align="right"></td>
47 </tr></table></div>
48 <div class="refsynopsisdiv">
49 <a name="GActionGroup.synopsis"></a><h2>Synopsis</h2>
50 <pre class="synopsis">                    <a class="link" href="GActionGroup.html#GActionGroup-struct" title="GActionGroup">GActionGroup</a>;
51 struct              <a class="link" href="GActionGroup.html#GActionGroupInterface" title="struct GActionGroupInterface">GActionGroupInterface</a>;
52
53 <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="GActionGroup.html#g-action-group-list-actions" title="g_action_group_list_actions ()">g_action_group_list_actions</a>         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>);
54 <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GActionGroup.html#g-action-group-query-action" title="g_action_group_query_action ()">g_action_group_query_action</a>         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
55                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
56                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *enabled</code></em>,
57                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> **parameter_type</code></em>,
58                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> **state_type</code></em>,
59                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> **state_hint</code></em>,
60                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> **state</code></em>);
61
62 <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GActionGroup.html#g-action-group-has-action" title="g_action_group_has_action ()">g_action_group_has_action</a>           (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
63                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
64 <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GActionGroup.html#g-action-group-get-action-enabled" title="g_action_group_get_action_enabled ()">g_action_group_get_action_enabled</a>   (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
65                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
66 const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="returnvalue">GVariantType</span></a> * <a class="link" href="GActionGroup.html#g-action-group-get-action-parameter-type" title="g_action_group_get_action_parameter_type ()">g_action_group_get_action_parameter_type</a>
67                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
68                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
69 const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="returnvalue">GVariantType</span></a> * <a class="link" href="GActionGroup.html#g-action-group-get-action-state-type" title="g_action_group_get_action_state_type ()">g_action_group_get_action_state_type</a>
70                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
71                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
72 <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          <a class="link" href="GActionGroup.html#g-action-group-get-action-state-hint" title="g_action_group_get_action_state_hint ()">g_action_group_get_action_state_hint</a>
73                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
74                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
75 <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          <a class="link" href="GActionGroup.html#g-action-group-get-action-state" title="g_action_group_get_action_state ()">g_action_group_get_action_state</a>     (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
76                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
77
78 <span class="returnvalue">void</span>                <a class="link" href="GActionGroup.html#g-action-group-change-action-state" title="g_action_group_change_action_state ()">g_action_group_change_action_state</a>  (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
79                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
80                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);
81 <span class="returnvalue">void</span>                <a class="link" href="GActionGroup.html#g-action-group-activate-action" title="g_action_group_activate_action ()">g_action_group_activate_action</a>      (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
82                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
83                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameter</code></em>);
84
85 <span class="returnvalue">void</span>                <a class="link" href="GActionGroup.html#g-action-group-action-added" title="g_action_group_action_added ()">g_action_group_action_added</a>         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
86                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
87 <span class="returnvalue">void</span>                <a class="link" href="GActionGroup.html#g-action-group-action-removed" title="g_action_group_action_removed ()">g_action_group_action_removed</a>       (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
88                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
89 <span class="returnvalue">void</span>                <a class="link" href="GActionGroup.html#g-action-group-action-enabled-changed" title="g_action_group_action_enabled_changed ()">g_action_group_action_enabled_changed</a>
90                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
91                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
92                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
93 <span class="returnvalue">void</span>                <a class="link" href="GActionGroup.html#g-action-group-action-state-changed" title="g_action_group_action_state_changed ()">g_action_group_action_state_changed</a> (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
94                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
95                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *state</code></em>);
96 </pre>
97 </div>
98 <div class="refsect1">
99 <a name="GActionGroup.object-hierarchy"></a><h2>Object Hierarchy</h2>
100 <pre class="synopsis">
101   GInterface
102    +----GActionGroup
103 </pre>
104 </div>
105 <div class="refsect1">
106 <a name="GActionGroup.prerequisites"></a><h2>Prerequisites</h2>
107 <p>
108 GActionGroup requires
109  <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
110 </div>
111 <div class="refsect1">
112 <a name="GActionGroup.derived-interfaces"></a><h2>Known Derived Interfaces</h2>
113 <p>
114 GActionGroup is required by
115  <a class="link" href="GActionMap.html" title="GActionMap">GActionMap</a> and  <a class="link" href="GRemoteActionGroup.html" title="GRemoteActionGroup">GRemoteActionGroup</a>.</p>
116 </div>
117 <div class="refsect1">
118 <a name="GActionGroup.implementations"></a><h2>Known Implementations</h2>
119 <p>
120 GActionGroup is implemented by
121  <a class="link" href="GApplication.html" title="GApplication">GApplication</a>,  <a class="link" href="GDBusActionGroup.html" title="GDBusActionGroup">GDBusActionGroup</a> and  <a class="link" href="GSimpleActionGroup.html" title="GSimpleActionGroup">GSimpleActionGroup</a>.</p>
122 </div>
123 <div class="refsect1">
124 <a name="GActionGroup.signals"></a><h2>Signals</h2>
125 <pre class="synopsis">
126   "<a class="link" href="GActionGroup.html#GActionGroup-action-added" title='The "action-added" signal'>action-added</a>"                                   : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
127   "<a class="link" href="GActionGroup.html#GActionGroup-action-enabled-changed" title='The "action-enabled-changed" signal'>action-enabled-changed</a>"                         : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
128   "<a class="link" href="GActionGroup.html#GActionGroup-action-removed" title='The "action-removed" signal'>action-removed</a>"                                 : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
129   "<a class="link" href="GActionGroup.html#GActionGroup-action-state-changed" title='The "action-state-changed" signal'>action-state-changed</a>"                           : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
130 </pre>
131 </div>
132 <div class="refsect1">
133 <a name="GActionGroup.description"></a><h2>Description</h2>
134 <p>
135 <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> represents a group of actions. Actions can be used to
136 expose functionality in a structured way, either from one part of a
137 program to another, or to the outside world. Action groups are often
138 used together with a <a class="link" href="GMenuModel.html" title="GMenuModel"><span class="type">GMenuModel</span></a> that provides additional
139 representation data for displaying the actions to the user, e.g. in
140 a menu.
141 </p>
142 <p>
143 The main way to interact with the actions in a GActionGroup is to
144 activate them with <a class="link" href="GActionGroup.html#g-action-group-activate-action" title="g_action_group_activate_action ()"><code class="function">g_action_group_activate_action()</code></a>. Activating an
145 action may require a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> parameter. The required type of the
146 parameter can be inquired with <a class="link" href="GActionGroup.html#g-action-group-get-action-parameter-type" title="g_action_group_get_action_parameter_type ()"><code class="function">g_action_group_get_action_parameter_type()</code></a>.
147 Actions may be disabled, see <a class="link" href="GActionGroup.html#g-action-group-get-action-enabled" title="g_action_group_get_action_enabled ()"><code class="function">g_action_group_get_action_enabled()</code></a>.
148 Activating a disabled action has no effect.
149 </p>
150 <p>
151 Actions may optionally have a state in the form of a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>. The
152 current state of an action can be inquired with
153 <a class="link" href="GActionGroup.html#g-action-group-get-action-state" title="g_action_group_get_action_state ()"><code class="function">g_action_group_get_action_state()</code></a>. Activating a stateful action may
154 change its state, but it is also possible to set the state by calling
155 <a class="link" href="GActionGroup.html#g-action-group-change-action-state" title="g_action_group_change_action_state ()"><code class="function">g_action_group_change_action_state()</code></a>.
156 </p>
157 <p>
158 As typical example, consider a text editing application which has an
159 option to change the current font to 'bold'. A good way to represent
160 this would be a stateful action, with a boolean state. Activating the
161 action would toggle the state.
162 </p>
163 <p>
164 Each action in the group has a unique name (which is a string).  All
165 method calls, except <a class="link" href="GActionGroup.html#g-action-group-list-actions" title="g_action_group_list_actions ()"><code class="function">g_action_group_list_actions()</code></a> take the name of
166 an action as an argument.
167 </p>
168 <p>
169 The <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> API is meant to be the 'public' API to the action
170 group.  The calls here are exactly the interaction that 'external
171 forces' (eg: UI, incoming D-Bus messages, etc.) are supposed to have
172 with actions.  'Internal' APIs (ie: ones meant only to be accessed by
173 the action group implementation) are found on subclasses.  This is
174 why you will find - for example - <a class="link" href="GActionGroup.html#g-action-group-get-action-enabled" title="g_action_group_get_action_enabled ()"><code class="function">g_action_group_get_action_enabled()</code></a>
175 but not an equivalent <code class="function"><code class="function">set()</code></code> call.
176 </p>
177 <p>
178 Signals are emitted on the action group in response to state changes
179 on individual actions.
180 </p>
181 <p>
182 Implementations of <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> should provide implementations for
183 the virtual functions <a class="link" href="GActionGroup.html#g-action-group-list-actions" title="g_action_group_list_actions ()"><code class="function">g_action_group_list_actions()</code></a> and
184 <a class="link" href="GActionGroup.html#g-action-group-query-action" title="g_action_group_query_action ()"><code class="function">g_action_group_query_action()</code></a>.  The other virtual functions should
185 not be implemented - their "wrappers" are actually implemented with
186 calls to <a class="link" href="GActionGroup.html#g-action-group-query-action" title="g_action_group_query_action ()"><code class="function">g_action_group_query_action()</code></a>.
187 </p>
188 </div>
189 <div class="refsect1">
190 <a name="GActionGroup.details"></a><h2>Details</h2>
191 <div class="refsect2">
192 <a name="GActionGroup-struct"></a><h3>GActionGroup</h3>
193 <pre class="programlisting">typedef struct _GActionGroup GActionGroup;</pre>
194 </div>
195 <hr>
196 <div class="refsect2">
197 <a name="GActionGroupInterface"></a><h3>struct GActionGroupInterface</h3>
198 <pre class="programlisting">struct GActionGroupInterface {
199   GTypeInterface g_iface;
200
201   /* virtual functions */
202   gboolean              (* has_action)                 (GActionGroup  *action_group,
203                                                         const gchar   *action_name);
204
205   gchar **              (* list_actions)               (GActionGroup  *action_group);
206
207   gboolean              (* get_action_enabled)         (GActionGroup  *action_group,
208                                                         const gchar   *action_name);
209
210   const GVariantType *  (* get_action_parameter_type)  (GActionGroup  *action_group,
211                                                         const gchar   *action_name);
212
213   const GVariantType *  (* get_action_state_type)      (GActionGroup  *action_group,
214                                                         const gchar   *action_name);
215
216   GVariant *            (* get_action_state_hint)      (GActionGroup  *action_group,
217                                                         const gchar   *action_name);
218
219   GVariant *            (* get_action_state)           (GActionGroup  *action_group,
220                                                         const gchar   *action_name);
221
222   void                  (* change_action_state)        (GActionGroup  *action_group,
223                                                         const gchar   *action_name,
224                                                         GVariant      *value);
225
226   void                  (* activate_action)            (GActionGroup  *action_group,
227                                                         const gchar   *action_name,
228                                                         GVariant      *parameter);
229
230   /* signals */
231   void                  (* action_added)               (GActionGroup  *action_group,
232                                                         const gchar   *action_name);
233   void                  (* action_removed)             (GActionGroup  *action_group,
234                                                         const gchar   *action_name);
235   void                  (* action_enabled_changed)     (GActionGroup  *action_group,
236                                                         const gchar   *action_name,
237                                                         gboolean       enabled);
238   void                  (* action_state_changed)       (GActionGroup   *action_group,
239                                                         const gchar    *action_name,
240                                                         GVariant       *state);
241
242   /* more virtual functions */
243   gboolean              (* query_action)               (GActionGroup        *action_group,
244                                                         const gchar         *action_name,
245                                                         gboolean            *enabled,
246                                                         const GVariantType **parameter_type,
247                                                         const GVariantType **state_type,
248                                                         GVariant           **state_hint,
249                                                         GVariant           **state);
250 };
251 </pre>
252 <p>
253 The virtual function table for <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>.
254 </p>
255 <div class="variablelist"><table border="0">
256 <col align="left" valign="top">
257 <tbody>
258 <tr>
259 <td><p><span class="term"><a href="./../gobject/gobject/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GActionGroupInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
260 <td></td>
261 </tr>
262 <tr>
263 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.has-action"></a>has_action</code></em> ()</span></p></td>
264 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-has-action" title="g_action_group_has_action ()"><code class="function">g_action_group_has_action()</code></a>
265 </td>
266 </tr>
267 <tr>
268 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.list-actions"></a>list_actions</code></em> ()</span></p></td>
269 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-list-actions" title="g_action_group_list_actions ()"><code class="function">g_action_group_list_actions()</code></a>
270 </td>
271 </tr>
272 <tr>
273 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.get-action-enabled"></a>get_action_enabled</code></em> ()</span></p></td>
274 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-get-action-enabled" title="g_action_group_get_action_enabled ()"><code class="function">g_action_group_get_action_enabled()</code></a>
275 </td>
276 </tr>
277 <tr>
278 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.get-action-parameter-type"></a>get_action_parameter_type</code></em> ()</span></p></td>
279 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-get-action-parameter-type" title="g_action_group_get_action_parameter_type ()"><code class="function">g_action_group_get_action_parameter_type()</code></a>
280 </td>
281 </tr>
282 <tr>
283 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.get-action-state-type"></a>get_action_state_type</code></em> ()</span></p></td>
284 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-get-action-state-type" title="g_action_group_get_action_state_type ()"><code class="function">g_action_group_get_action_state_type()</code></a>
285 </td>
286 </tr>
287 <tr>
288 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.get-action-state-hint"></a>get_action_state_hint</code></em> ()</span></p></td>
289 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-get-action-state-hint" title="g_action_group_get_action_state_hint ()"><code class="function">g_action_group_get_action_state_hint()</code></a>
290 </td>
291 </tr>
292 <tr>
293 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.get-action-state"></a>get_action_state</code></em> ()</span></p></td>
294 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-get-action-state" title="g_action_group_get_action_state ()"><code class="function">g_action_group_get_action_state()</code></a>
295 </td>
296 </tr>
297 <tr>
298 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.change-action-state"></a>change_action_state</code></em> ()</span></p></td>
299 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-change-action-state" title="g_action_group_change_action_state ()"><code class="function">g_action_group_change_action_state()</code></a>
300 </td>
301 </tr>
302 <tr>
303 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.activate-action"></a>activate_action</code></em> ()</span></p></td>
304 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-activate-action" title="g_action_group_activate_action ()"><code class="function">g_action_group_activate_action()</code></a>
305 </td>
306 </tr>
307 <tr>
308 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.action-added"></a>action_added</code></em> ()</span></p></td>
309 <td>the class closure for the <a class="link" href="GActionGroup.html#GActionGroup-action-added" title='The "action-added" signal'><span class="type">"action-added"</span></a> signal</td>
310 </tr>
311 <tr>
312 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.action-removed"></a>action_removed</code></em> ()</span></p></td>
313 <td>the class closure for the <a class="link" href="GActionGroup.html#GActionGroup-action-removed" title='The "action-removed" signal'><span class="type">"action-removed"</span></a> signal</td>
314 </tr>
315 <tr>
316 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.action-enabled-changed"></a>action_enabled_changed</code></em> ()</span></p></td>
317 <td>the class closure for the <a class="link" href="GActionGroup.html#GActionGroup-action-enabled-changed" title='The "action-enabled-changed" signal'><span class="type">"action-enabled-changed"</span></a> signal</td>
318 </tr>
319 <tr>
320 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.action-state-changed"></a>action_state_changed</code></em> ()</span></p></td>
321 <td>the class closure for the <a class="link" href="GActionGroup.html#GActionGroup-action-enabled-changed" title='The "action-enabled-changed" signal'><span class="type">"action-enabled-changed"</span></a> signal</td>
322 </tr>
323 <tr>
324 <td><p><span class="term"><em class="structfield"><code><a name="GActionGroupInterface.query-action"></a>query_action</code></em> ()</span></p></td>
325 <td>the virtual function pointer for <a class="link" href="GActionGroup.html#g-action-group-query-action" title="g_action_group_query_action ()"><code class="function">g_action_group_query_action()</code></a>
326 </td>
327 </tr>
328 </tbody>
329 </table></div>
330 <p class="since">Since 2.28</p>
331 </div>
332 <hr>
333 <div class="refsect2">
334 <a name="g-action-group-list-actions"></a><h3>g_action_group_list_actions ()</h3>
335 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            g_action_group_list_actions         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>);</pre>
336 <p>
337 Lists the actions contained within <em class="parameter"><code>action_group</code></em>.
338 </p>
339 <p>
340 The caller is responsible for freeing the list with <a href="./../glib/glib/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when
341 it is no longer required.
342 </p>
343 <div class="variablelist"><table border="0">
344 <col align="left" valign="top">
345 <tbody>
346 <tr>
347 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
348 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
349 </td>
350 </tr>
351 <tr>
352 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
353 <td>a <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of the names of the
354 actions in the groupb. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
355 </td>
356 </tr>
357 </tbody>
358 </table></div>
359 <p class="since">Since 2.28</p>
360 </div>
361 <hr>
362 <div class="refsect2">
363 <a name="g-action-group-query-action"></a><h3>g_action_group_query_action ()</h3>
364 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_action_group_query_action         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
365                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
366                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *enabled</code></em>,
367                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> **parameter_type</code></em>,
368                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> **state_type</code></em>,
369                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> **state_hint</code></em>,
370                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> **state</code></em>);</pre>
371 <p>
372 Queries all aspects of the named action within an <em class="parameter"><code>action_group</code></em>.
373 </p>
374 <p>
375 This function acquires the information available from
376 <a class="link" href="GActionGroup.html#g-action-group-has-action" title="g_action_group_has_action ()"><code class="function">g_action_group_has_action()</code></a>, <a class="link" href="GActionGroup.html#g-action-group-get-action-enabled" title="g_action_group_get_action_enabled ()"><code class="function">g_action_group_get_action_enabled()</code></a>,
377 <a class="link" href="GActionGroup.html#g-action-group-get-action-parameter-type" title="g_action_group_get_action_parameter_type ()"><code class="function">g_action_group_get_action_parameter_type()</code></a>,
378 <a class="link" href="GActionGroup.html#g-action-group-get-action-state-type" title="g_action_group_get_action_state_type ()"><code class="function">g_action_group_get_action_state_type()</code></a>,
379 <a class="link" href="GActionGroup.html#g-action-group-get-action-state-hint" title="g_action_group_get_action_state_hint ()"><code class="function">g_action_group_get_action_state_hint()</code></a> and
380 <a class="link" href="GActionGroup.html#g-action-group-get-action-state" title="g_action_group_get_action_state ()"><code class="function">g_action_group_get_action_state()</code></a> with a single function call.
381 </p>
382 <p>
383 This provides two main benefits.
384 </p>
385 <p>
386 The first is the improvement in efficiency that comes with not having
387 to perform repeated lookups of the action in order to discover
388 different things about it.  The second is that implementing
389 <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> can now be done by only overriding this one virtual
390 function.
391 </p>
392 <p>
393 The interface provides a default implementation of this function that
394 calls the individual functions, as required, to fetch the
395 information.  The interface also provides default implementations of
396 those functions that call this function.  All implementations,
397 therefore, must override either this function or all of the others.
398 </p>
399 <p>
400 If the action exists, <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is returned and any of the requested
401 fields (as indicated by having a non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> reference passed in) are
402 filled.  If the action doesn't exist, <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned and the
403 fields may or may not have been modified.
404 </p>
405 <div class="variablelist"><table border="0">
406 <col align="left" valign="top">
407 <tbody>
408 <tr>
409 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
410 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
411 </td>
412 </tr>
413 <tr>
414 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
415 <td>the name of an action in the group</td>
416 </tr>
417 <tr>
418 <td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
419 <td>if the action is presently enabled. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
420 </td>
421 </tr>
422 <tr>
423 <td><p><span class="term"><em class="parameter"><code>parameter_type</code></em> :</span></p></td>
424 <td>the parameter type, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
425 </td>
426 </tr>
427 <tr>
428 <td><p><span class="term"><em class="parameter"><code>state_type</code></em> :</span></p></td>
429 <td>the state type, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if stateless. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
430 </td>
431 </tr>
432 <tr>
433 <td><p><span class="term"><em class="parameter"><code>state_hint</code></em> :</span></p></td>
434 <td>the state hint, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
435 </td>
436 </tr>
437 <tr>
438 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
439 <td>the current state, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if stateless. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
440 </td>
441 </tr>
442 <tr>
443 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
444 <td>
445 <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the action exists, else <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
446 </td>
447 </tr>
448 </tbody>
449 </table></div>
450 <p class="since">Since 2.32</p>
451 </div>
452 <hr>
453 <div class="refsect2">
454 <a name="g-action-group-has-action"></a><h3>g_action_group_has_action ()</h3>
455 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_action_group_has_action           (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
456                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
457 <p>
458 Checks if the named action exists within <em class="parameter"><code>action_group</code></em>.
459 </p>
460 <div class="variablelist"><table border="0">
461 <col align="left" valign="top">
462 <tbody>
463 <tr>
464 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
465 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
466 </td>
467 </tr>
468 <tr>
469 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
470 <td>the name of the action to check for</td>
471 </tr>
472 <tr>
473 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
474 <td>whether the named action exists</td>
475 </tr>
476 </tbody>
477 </table></div>
478 <p class="since">Since 2.28</p>
479 </div>
480 <hr>
481 <div class="refsect2">
482 <a name="g-action-group-get-action-enabled"></a><h3>g_action_group_get_action_enabled ()</h3>
483 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_action_group_get_action_enabled   (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
484                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
485 <p>
486 Checks if the named action within <em class="parameter"><code>action_group</code></em> is currently enabled.
487 </p>
488 <p>
489 An action must be enabled in order to be activated or in order to
490 have its state changed from outside callers.
491 </p>
492 <div class="variablelist"><table border="0">
493 <col align="left" valign="top">
494 <tbody>
495 <tr>
496 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
497 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
498 </td>
499 </tr>
500 <tr>
501 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
502 <td>the name of the action to query</td>
503 </tr>
504 <tr>
505 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
506 <td>whether or not the action is currently enabled</td>
507 </tr>
508 </tbody>
509 </table></div>
510 <p class="since">Since 2.28</p>
511 </div>
512 <hr>
513 <div class="refsect2">
514 <a name="g-action-group-get-action-parameter-type"></a><h3>g_action_group_get_action_parameter_type ()</h3>
515 <pre class="programlisting">const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="returnvalue">GVariantType</span></a> * g_action_group_get_action_parameter_type
516                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
517                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
518 <p>
519 Queries the type of the parameter that must be given when activating
520 the named action within <em class="parameter"><code>action_group</code></em>.
521 </p>
522 <p>
523 When activating the action using <a class="link" href="GActionGroup.html#g-action-group-activate-action" title="g_action_group_activate_action ()"><code class="function">g_action_group_activate_action()</code></a>,
524 the <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> given to that function must be of the type returned
525 by this function.
526 </p>
527 <p>
528 In the case that this function returns <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, you must not give any
529 <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>, but <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> instead.
530 </p>
531 <p>
532 The parameter type of a particular action will never change but it is
533 possible for an action to be removed and for a new action to be added
534 with the same name but a different parameter type.
535 </p>
536 <div class="variablelist"><table border="0">
537 <col align="left" valign="top">
538 <tbody>
539 <tr>
540 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
541 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
542 </td>
543 </tr>
544 <tr>
545 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
546 <td>the name of the action to query</td>
547 </tr>
548 <tr>
549 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
550 <td>the parameter type</td>
551 </tr>
552 </tbody>
553 </table></div>
554 <p class="since">Since 2.28</p>
555 </div>
556 <hr>
557 <div class="refsect2">
558 <a name="g-action-group-get-action-state-type"></a><h3>g_action_group_get_action_state_type ()</h3>
559 <pre class="programlisting">const <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="returnvalue">GVariantType</span></a> * g_action_group_get_action_state_type
560                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
561                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
562 <p>
563 Queries the type of the state of the named action within
564 <em class="parameter"><code>action_group</code></em>.
565 </p>
566 <p>
567 If the action is stateful then this function returns the
568 <a href="./../glib/glib/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> of the state.  All calls to
569 <a class="link" href="GActionGroup.html#g-action-group-change-action-state" title="g_action_group_change_action_state ()"><code class="function">g_action_group_change_action_state()</code></a> must give a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> of this
570 type and <a class="link" href="GActionGroup.html#g-action-group-get-action-state" title="g_action_group_get_action_state ()"><code class="function">g_action_group_get_action_state()</code></a> will return a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>
571 of the same type.
572 </p>
573 <p>
574 If the action is not stateful then this function will return <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
575 In that case, <a class="link" href="GActionGroup.html#g-action-group-get-action-state" title="g_action_group_get_action_state ()"><code class="function">g_action_group_get_action_state()</code></a> will return <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
576 and you must not call <a class="link" href="GActionGroup.html#g-action-group-change-action-state" title="g_action_group_change_action_state ()"><code class="function">g_action_group_change_action_state()</code></a>.
577 </p>
578 <p>
579 The state type of a particular action will never change but it is
580 possible for an action to be removed and for a new action to be added
581 with the same name but a different state type.
582 </p>
583 <div class="variablelist"><table border="0">
584 <col align="left" valign="top">
585 <tbody>
586 <tr>
587 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
588 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
589 </td>
590 </tr>
591 <tr>
592 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
593 <td>the name of the action to query</td>
594 </tr>
595 <tr>
596 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
597 <td>the state type, if the action is stateful. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
598 </td>
599 </tr>
600 </tbody>
601 </table></div>
602 <p class="since">Since 2.28</p>
603 </div>
604 <hr>
605 <div class="refsect2">
606 <a name="g-action-group-get-action-state-hint"></a><h3>g_action_group_get_action_state_hint ()</h3>
607 <pre class="programlisting"><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          g_action_group_get_action_state_hint
608                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
609                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
610 <p>
611 Requests a hint about the valid range of values for the state of the
612 named action within <em class="parameter"><code>action_group</code></em>.
613 </p>
614 <p>
615 If <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned it either means that the action is not stateful
616 or that there is no hint about the valid range of values for the
617 state of the action.
618 </p>
619 <p>
620 If a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> array is returned then each item in the array is a
621 possible value for the state.  If a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> pair (ie: two-tuple) is
622 returned then the tuple specifies the inclusive lower and upper bound
623 of valid values for the state.
624 </p>
625 <p>
626 In any case, the information is merely a hint.  It may be possible to
627 have a state value outside of the hinted range and setting a value
628 within the range may fail.
629 </p>
630 <p>
631 The return value (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) should be freed with
632 <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a> when it is no longer required.
633 </p>
634 <div class="variablelist"><table border="0">
635 <col align="left" valign="top">
636 <tbody>
637 <tr>
638 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
639 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
640 </td>
641 </tr>
642 <tr>
643 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
644 <td>the name of the action to query</td>
645 </tr>
646 <tr>
647 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
648 <td>the state range hint. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
649 </td>
650 </tr>
651 </tbody>
652 </table></div>
653 <p class="since">Since 2.28</p>
654 </div>
655 <hr>
656 <div class="refsect2">
657 <a name="g-action-group-get-action-state"></a><h3>g_action_group_get_action_state ()</h3>
658 <pre class="programlisting"><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          g_action_group_get_action_state     (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
659                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
660 <p>
661 Queries the current state of the named action within <em class="parameter"><code>action_group</code></em>.
662 </p>
663 <p>
664 If the action is not stateful then <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned.  If the
665 action is stateful then the type of the return value is the type
666 given by <a class="link" href="GActionGroup.html#g-action-group-get-action-state-type" title="g_action_group_get_action_state_type ()"><code class="function">g_action_group_get_action_state_type()</code></a>.
667 </p>
668 <p>
669 The return value (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) should be freed with
670 <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a> when it is no longer required.
671 </p>
672 <div class="variablelist"><table border="0">
673 <col align="left" valign="top">
674 <tbody>
675 <tr>
676 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
677 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
678 </td>
679 </tr>
680 <tr>
681 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
682 <td>the name of the action to query</td>
683 </tr>
684 <tr>
685 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
686 <td>the current state of the action. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
687 </td>
688 </tr>
689 </tbody>
690 </table></div>
691 <p class="since">Since 2.28</p>
692 </div>
693 <hr>
694 <div class="refsect2">
695 <a name="g-action-group-change-action-state"></a><h3>g_action_group_change_action_state ()</h3>
696 <pre class="programlisting"><span class="returnvalue">void</span>                g_action_group_change_action_state  (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
697                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
698                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);</pre>
699 <p>
700 Request for the state of the named action within <em class="parameter"><code>action_group</code></em> to be
701 changed to <em class="parameter"><code>value</code></em>.
702 </p>
703 <p>
704 The action must be stateful and <em class="parameter"><code>value</code></em> must be of the correct type.
705 See <a class="link" href="GActionGroup.html#g-action-group-get-action-state-type" title="g_action_group_get_action_state_type ()"><code class="function">g_action_group_get_action_state_type()</code></a>.
706 </p>
707 <p>
708 This call merely requests a change.  The action may refuse to change
709 its state or may change its state to something other than <em class="parameter"><code>value</code></em>.
710 See <a class="link" href="GActionGroup.html#g-action-group-get-action-state-hint" title="g_action_group_get_action_state_hint ()"><code class="function">g_action_group_get_action_state_hint()</code></a>.
711 </p>
712 <p>
713 If the <em class="parameter"><code>value</code></em> GVariant is floating, it is consumed.
714 </p>
715 <div class="variablelist"><table border="0">
716 <col align="left" valign="top">
717 <tbody>
718 <tr>
719 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
720 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
721 </td>
722 </tr>
723 <tr>
724 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
725 <td>the name of the action to request the change on</td>
726 </tr>
727 <tr>
728 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
729 <td>the new state</td>
730 </tr>
731 </tbody>
732 </table></div>
733 <p class="since">Since 2.28</p>
734 </div>
735 <hr>
736 <div class="refsect2">
737 <a name="g-action-group-activate-action"></a><h3>g_action_group_activate_action ()</h3>
738 <pre class="programlisting"><span class="returnvalue">void</span>                g_action_group_activate_action      (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
739                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
740                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameter</code></em>);</pre>
741 <p>
742 Activate the named action within <em class="parameter"><code>action_group</code></em>.
743 </p>
744 <p>
745 If the action is expecting a parameter, then the correct type of
746 parameter must be given as <em class="parameter"><code>parameter</code></em>.  If the action is expecting no
747 parameters then <em class="parameter"><code>parameter</code></em> must be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.  See
748 <a class="link" href="GActionGroup.html#g-action-group-get-action-parameter-type" title="g_action_group_get_action_parameter_type ()"><code class="function">g_action_group_get_action_parameter_type()</code></a>.
749 </p>
750 <div class="variablelist"><table border="0">
751 <col align="left" valign="top">
752 <tbody>
753 <tr>
754 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
755 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
756 </td>
757 </tr>
758 <tr>
759 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
760 <td>the name of the action to activate</td>
761 </tr>
762 <tr>
763 <td><p><span class="term"><em class="parameter"><code>parameter</code></em> :</span></p></td>
764 <td>parameters to the activation. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
765 </td>
766 </tr>
767 </tbody>
768 </table></div>
769 <p class="since">Since 2.28</p>
770 </div>
771 <hr>
772 <div class="refsect2">
773 <a name="g-action-group-action-added"></a><h3>g_action_group_action_added ()</h3>
774 <pre class="programlisting"><span class="returnvalue">void</span>                g_action_group_action_added         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
775                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
776 <p>
777 Emits the <a class="link" href="GActionGroup.html#GActionGroup-action-added" title='The "action-added" signal'><span class="type">"action-added"</span></a> signal on <em class="parameter"><code>action_group</code></em>.
778 </p>
779 <p>
780 This function should only be called by <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> implementations.
781 </p>
782 <div class="variablelist"><table border="0">
783 <col align="left" valign="top">
784 <tbody>
785 <tr>
786 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
787 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
788 </td>
789 </tr>
790 <tr>
791 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
792 <td>the name of an action in the group</td>
793 </tr>
794 </tbody>
795 </table></div>
796 <p class="since">Since 2.28</p>
797 </div>
798 <hr>
799 <div class="refsect2">
800 <a name="g-action-group-action-removed"></a><h3>g_action_group_action_removed ()</h3>
801 <pre class="programlisting"><span class="returnvalue">void</span>                g_action_group_action_removed       (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
802                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
803 <p>
804 Emits the <a class="link" href="GActionGroup.html#GActionGroup-action-removed" title='The "action-removed" signal'><span class="type">"action-removed"</span></a> signal on <em class="parameter"><code>action_group</code></em>.
805 </p>
806 <p>
807 This function should only be called by <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> implementations.
808 </p>
809 <div class="variablelist"><table border="0">
810 <col align="left" valign="top">
811 <tbody>
812 <tr>
813 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
814 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
815 </td>
816 </tr>
817 <tr>
818 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
819 <td>the name of an action in the group</td>
820 </tr>
821 </tbody>
822 </table></div>
823 <p class="since">Since 2.28</p>
824 </div>
825 <hr>
826 <div class="refsect2">
827 <a name="g-action-group-action-enabled-changed"></a><h3>g_action_group_action_enabled_changed ()</h3>
828 <pre class="programlisting"><span class="returnvalue">void</span>                g_action_group_action_enabled_changed
829                                                         (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
830                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
831                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
832 <p>
833 Emits the <a class="link" href="GActionGroup.html#GActionGroup-action-enabled-changed" title='The "action-enabled-changed" signal'><span class="type">"action-enabled-changed"</span></a> signal on <em class="parameter"><code>action_group</code></em>.
834 </p>
835 <p>
836 This function should only be called by <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> implementations.
837 </p>
838 <div class="variablelist"><table border="0">
839 <col align="left" valign="top">
840 <tbody>
841 <tr>
842 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
843 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
844 </td>
845 </tr>
846 <tr>
847 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
848 <td>the name of an action in the group</td>
849 </tr>
850 <tr>
851 <td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
852 <td>whether or not the action is now enabled</td>
853 </tr>
854 </tbody>
855 </table></div>
856 <p class="since">Since 2.28</p>
857 </div>
858 <hr>
859 <div class="refsect2">
860 <a name="g-action-group-action-state-changed"></a><h3>g_action_group_action_state_changed ()</h3>
861 <pre class="programlisting"><span class="returnvalue">void</span>                g_action_group_action_state_changed (<em class="parameter"><code><a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group</code></em>,
862                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>,
863                                                          <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *state</code></em>);</pre>
864 <p>
865 Emits the <a class="link" href="GActionGroup.html#GActionGroup-action-state-changed" title='The "action-state-changed" signal'><span class="type">"action-state-changed"</span></a> signal on <em class="parameter"><code>action_group</code></em>.
866 </p>
867 <p>
868 This function should only be called by <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> implementations.
869 </p>
870 <div class="variablelist"><table border="0">
871 <col align="left" valign="top">
872 <tbody>
873 <tr>
874 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
875 <td>a <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a>
876 </td>
877 </tr>
878 <tr>
879 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
880 <td>the name of an action in the group</td>
881 </tr>
882 <tr>
883 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
884 <td>the new state of the named action</td>
885 </tr>
886 </tbody>
887 </table></div>
888 <p class="since">Since 2.28</p>
889 </div>
890 </div>
891 <div class="refsect1">
892 <a name="GActionGroup.signal-details"></a><h2>Signal Details</h2>
893 <div class="refsect2">
894 <a name="GActionGroup-action-added"></a><h3>The <code class="literal">"action-added"</code> signal</h3>
895 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group,
896                                                         <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *action_name,
897                                                         <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)         : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
898 <p>
899 Signals that a new action was just added to the group.
900 This signal is emitted after the action has been added
901 and is now visible.
902 </p>
903 <div class="variablelist"><table border="0">
904 <col align="left" valign="top">
905 <tbody>
906 <tr>
907 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
908 <td>the <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> that changed</td>
909 </tr>
910 <tr>
911 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
912 <td>the name of the action in <em class="parameter"><code>action_group</code></em>
913 </td>
914 </tr>
915 <tr>
916 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
917 <td>user data set when the signal handler was connected.</td>
918 </tr>
919 </tbody>
920 </table></div>
921 <p class="since">Since 2.28</p>
922 </div>
923 <hr>
924 <div class="refsect2">
925 <a name="GActionGroup-action-enabled-changed"></a><h3>The <code class="literal">"action-enabled-changed"</code> signal</h3>
926 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group,
927                                                         <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *action_name,
928                                                         <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>      enabled,
929                                                         <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)         : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
930 <p>
931 Signals that the enabled status of the named action has changed.
932 </p>
933 <div class="variablelist"><table border="0">
934 <col align="left" valign="top">
935 <tbody>
936 <tr>
937 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
938 <td>the <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> that changed</td>
939 </tr>
940 <tr>
941 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
942 <td>the name of the action in <em class="parameter"><code>action_group</code></em>
943 </td>
944 </tr>
945 <tr>
946 <td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
947 <td>whether the action is enabled or not</td>
948 </tr>
949 <tr>
950 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
951 <td>user data set when the signal handler was connected.</td>
952 </tr>
953 </tbody>
954 </table></div>
955 <p class="since">Since 2.28</p>
956 </div>
957 <hr>
958 <div class="refsect2">
959 <a name="GActionGroup-action-removed"></a><h3>The <code class="literal">"action-removed"</code> signal</h3>
960 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group,
961                                                         <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *action_name,
962                                                         <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)         : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
963 <p>
964 Signals that an action is just about to be removed from the group.
965 This signal is emitted before the action is removed, so the action
966 is still visible and can be queried from the signal handler.
967 </p>
968 <div class="variablelist"><table border="0">
969 <col align="left" valign="top">
970 <tbody>
971 <tr>
972 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
973 <td>the <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> that changed</td>
974 </tr>
975 <tr>
976 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
977 <td>the name of the action in <em class="parameter"><code>action_group</code></em>
978 </td>
979 </tr>
980 <tr>
981 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
982 <td>user data set when the signal handler was connected.</td>
983 </tr>
984 </tbody>
985 </table></div>
986 <p class="since">Since 2.28</p>
987 </div>
988 <hr>
989 <div class="refsect2">
990 <a name="GActionGroup-action-state-changed"></a><h3>The <code class="literal">"action-state-changed"</code> signal</h3>
991 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> *action_group,
992                                                         <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *action_name,
993                                                         <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>     *value,
994                                                         <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)         : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
995 <p>
996 Signals that the state of the named action has changed.
997 </p>
998 <div class="variablelist"><table border="0">
999 <col align="left" valign="top">
1000 <tbody>
1001 <tr>
1002 <td><p><span class="term"><em class="parameter"><code>action_group</code></em> :</span></p></td>
1003 <td>the <a class="link" href="GActionGroup.html" title="GActionGroup"><span class="type">GActionGroup</span></a> that changed</td>
1004 </tr>
1005 <tr>
1006 <td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
1007 <td>the name of the action in <em class="parameter"><code>action_group</code></em>
1008 </td>
1009 </tr>
1010 <tr>
1011 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1012 <td>the new value of the state</td>
1013 </tr>
1014 <tr>
1015 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1016 <td>user data set when the signal handler was connected.</td>
1017 </tr>
1018 </tbody>
1019 </table></div>
1020 <p class="since">Since 2.28</p>
1021 </div>
1022 </div>
1023 <div class="refsect1">
1024 <a name="GActionGroup.see-also"></a><h2>See Also</h2>
1025 <a class="link" href="GAction.html" title="GAction"><span class="type">GAction</span></a>
1026 </div>
1027 </div>
1028 <div class="footer">
1029 <hr>
1030           Generated by GTK-Doc V1.18</div>
1031 </body>
1032 </html>