declare function arguments as (void) rather than ()
[platform/upstream/atk.git] / atk / atkaction.c
1 /* ATK -  Accessibility Toolkit
2  * Copyright 2001 Sun Microsystems Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 #include "atkaction.h"
21
22 GType
23 atk_action_get_type (void)
24 {
25   static GType type = 0;
26
27   if (!type) {
28     GTypeInfo tinfo =
29     {
30       sizeof (AtkActionIface),
31       (GBaseInitFunc) NULL,
32       (GBaseFinalizeFunc) NULL,
33
34     };
35
36     type = g_type_register_static (G_TYPE_INTERFACE, "AtkAction", &tinfo, 0);
37   }
38
39   return type;
40 }
41
42 /**
43  * atk_action_do_action:
44  * @action: a #GObject instance that implements AtkActionIface
45  * @i: the action index corresponding to the action to be performed 
46  *
47  * Perform the specified action on the object.
48  *
49  * Returns: %TRUE if success, %FALSE otherwise
50  *
51  **/
52 gboolean
53 atk_action_do_action (AtkAction *obj,
54                       gint      i)
55 {
56   AtkActionIface *iface;
57
58   g_return_val_if_fail (ATK_IS_ACTION (obj), FALSE);
59
60   iface = ATK_ACTION_GET_IFACE (obj);
61
62   if (iface->do_action)
63     return (iface->do_action) (obj, i);
64   else
65     return FALSE;
66 }
67
68 /**
69  * atk_action_get_n_actions:
70  * @action: a #GObject instance that implements AtkActionIface
71  * 
72  * Gets the number of accessible actions available on the object.
73  * If there are more than one, the first one is considered the
74  * "default" action of the object.
75  *
76  * Returns: a the number of actions, or 0 if @action does not
77  * implement this interface.
78  **/
79 gint
80 atk_action_get_n_actions  (AtkAction *obj)
81 {
82   AtkActionIface *iface;
83
84   g_return_val_if_fail (ATK_IS_ACTION (obj), 0);
85
86   iface = ATK_ACTION_GET_IFACE (obj);
87
88   if (iface->get_n_actions)
89     return (iface->get_n_actions) (obj);
90   else
91     return 0;
92 }
93
94 /**
95  * atk_action_get_description:
96  * @action: a #GObject instance that implements AtkActionIface
97  * @i: the action index corresponding to the action to be performed 
98  *
99  * Returns a description of the specified action of the object.
100  *
101  * Returns a description string, or %NULL
102  * if @action does not implement this interface.
103  **/
104 G_CONST_RETURN gchar*
105 atk_action_get_description (AtkAction *obj,
106                             gint      i)
107 {
108   AtkActionIface *iface;
109
110   g_return_val_if_fail (ATK_IS_ACTION (obj), NULL);
111
112   iface = ATK_ACTION_GET_IFACE (obj);
113
114   if (iface->get_description)
115     return (iface->get_description) (obj, i);
116   else
117     return NULL;
118 }
119
120 /**
121  * atk_action_get_name:
122  * @action: a #GObject instance that implements AtkActionIface
123  * @i: the action index corresponding to the action to be performed 
124  *
125  * Returns the name of the specified action of the object.
126  *
127  * Returns a name string, or %NULL
128  * if @action does not implement this interface.
129  **/
130 G_CONST_RETURN gchar*
131 atk_action_get_name (AtkAction *obj,
132                      gint      i)
133 {
134   AtkActionIface *iface;
135
136   g_return_val_if_fail (ATK_IS_ACTION (obj), NULL);
137
138   iface = ATK_ACTION_GET_IFACE (obj);
139
140   if (iface->get_name)
141     return (iface->get_name) (obj, i);
142   else
143     return NULL;
144 }
145
146 /**
147  * atk_action_get_keybinding:
148  * @action: a #GObject instance that implements AtkActionIface
149  * @i: the action index corresponding to the action to be performed 
150  *
151  * Returns a keybinding associated with this action, if one exists.
152  *
153  * Returns a string representing the keybinding, or %NULL
154  * if there is no keybinding for this action.
155  *
156  **/
157 G_CONST_RETURN gchar*
158 atk_action_get_keybinding (AtkAction *obj,
159                            gint      i)
160 {
161   AtkActionIface *iface;
162
163   g_return_val_if_fail (ATK_IS_ACTION (obj), NULL);
164
165   iface = ATK_ACTION_GET_IFACE (obj);
166
167   if (iface->get_keybinding)
168     return (iface->get_keybinding) (obj, i);
169   else
170     return NULL;
171 }
172
173 /**
174  * atk_action_set_description:
175  * @action: a #GObject instance that implements AtkActionIface
176  * @i: the action index corresponding to the action to be performed 
177  * @desc: the description to be assigned to this action
178  *
179  * Sets a description of the specified action of the object.
180  *
181  * Returns: a gboolean representing if the description was successfully set;
182  **/
183 gboolean
184 atk_action_set_description (AtkAction   *obj,
185                             gint        i,
186                             const gchar *desc)
187 {
188   AtkActionIface *iface;
189
190   g_return_val_if_fail (ATK_IS_ACTION (obj), FALSE);
191
192   iface = ATK_ACTION_GET_IFACE (obj);
193
194   if (iface->set_description)
195     return (iface->set_description) (obj, i, desc);
196   else
197     return FALSE;
198 }