1 /* ATK - Accessibility Toolkit
2 * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
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.
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.
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.
25 * @Short_description: The ATK interface implemented by valuators and
26 * components which display or select a value from a bounded range of
30 * #AtkValue should be implemented for components which either display
31 * a value from a bounded range, or which allow the user to specify a
32 * value from a bounded range, or both. For instance, most sliders
33 * and range controls, as well as dials, should have #AtkObject
34 * representations which implement #AtkValue on the component's
35 * behalf. #AtKValues may be read-only, in which case attempts to
36 * alter the value return FALSE to indicate failure.
40 atk_value_get_type (void)
42 static GType type
= 0;
47 sizeof (AtkValueIface
),
49 (GBaseFinalizeFunc
) NULL
,
53 type
= g_type_register_static (G_TYPE_INTERFACE
, "AtkValue", &tinfo
, 0);
60 * atk_value_get_current_value:
61 * @obj: a GObject instance that implements AtkValueIface
62 * @value: a #GValue representing the current accessible value
64 * Gets the value of this object.
67 atk_value_get_current_value (AtkValue
*obj
,
72 g_return_if_fail (value
!= NULL
);
73 g_return_if_fail (ATK_IS_VALUE (obj
));
75 iface
= ATK_VALUE_GET_IFACE (obj
);
77 if (iface
->get_current_value
)
79 if (G_IS_VALUE (value
))
80 g_value_unset (value
);
82 memset (value
, 0, sizeof (*value
));
84 (iface
->get_current_value
) (obj
, value
);
89 * atk_value_get_maximum_value:
90 * @obj: a GObject instance that implements AtkValueIface
91 * @value: a #GValue representing the maximum accessible value
93 * Gets the maximum value of this object.
96 atk_value_get_maximum_value (AtkValue
*obj
,
101 g_return_if_fail (value
!= NULL
);
102 g_return_if_fail (ATK_IS_VALUE (obj
));
104 iface
= ATK_VALUE_GET_IFACE (obj
);
106 if (iface
->get_maximum_value
)
108 if (G_IS_VALUE (value
))
109 g_value_unset (value
);
111 memset (value
, 0, sizeof (*value
));
113 (iface
->get_maximum_value
) (obj
, value
);
118 * atk_value_get_minimum_value:
119 * @obj: a GObject instance that implements AtkValueIface
120 * @value: a #GValue representing the minimum accessible value
122 * Gets the minimum value of this object.
125 atk_value_get_minimum_value (AtkValue
*obj
,
128 AtkValueIface
*iface
;
130 g_return_if_fail (value
!= NULL
);
131 g_return_if_fail (ATK_IS_VALUE (obj
));
133 iface
= ATK_VALUE_GET_IFACE (obj
);
135 if (iface
->get_minimum_value
)
137 if (G_IS_VALUE (value
))
138 g_value_unset (value
);
140 memset (value
, 0, sizeof (*value
));
142 (iface
->get_minimum_value
) (obj
, value
);
147 * atk_value_get_minimum_increment:
148 * @obj: a GObject instance that implements AtkValueIface
149 * @value: a #GValue representing the minimum increment by which the accessible value may be changed
151 * Gets the minimum increment by which the value of this object may be changed. If zero,
152 * the minimum increment is undefined, which may mean that it is limited only by the
153 * floating point precision of the platform.
158 atk_value_get_minimum_increment (AtkValue
*obj
,
161 AtkValueIface
*iface
;
163 g_return_if_fail (value
!= NULL
);
164 g_return_if_fail (ATK_IS_VALUE (obj
));
166 iface
= ATK_VALUE_GET_IFACE (obj
);
168 if (iface
->get_minimum_increment
)
170 if (G_IS_VALUE (value
))
171 g_value_unset (value
);
173 memset (value
, 0, sizeof (*value
));
175 (iface
->get_minimum_increment
) (obj
, value
);
180 * atk_value_set_current_value:
181 * @obj: a GObject instance that implements AtkValueIface
182 * @value: a #GValue which is the desired new accessible value.
184 * Sets the value of this object.
186 * Returns: %TRUE if new value is successfully set, %FALSE otherwise.
189 atk_value_set_current_value (AtkValue
*obj
,
192 AtkValueIface
*iface
;
194 g_return_val_if_fail (ATK_IS_VALUE (obj
), FALSE
);
195 g_return_val_if_fail (G_IS_VALUE (value
), FALSE
);
197 iface
= ATK_VALUE_GET_IFACE (obj
);
199 if (iface
->set_current_value
)
200 return (iface
->set_current_value
) (obj
, value
);