2 * AT-SPI - Assistive Technology Service Provider Interface
3 * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
5 * Copyright 2001, 2002 Sun Microsystems Inc.,
6 * Copyright 2001, 2002 Ximian, Inc.
7 * Copyright 2010, 2011 Novell, Inc.
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public
11 * License as published by the Free Software Foundation; either
12 * version 2 of the License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Library General Public License for more details.
19 * You should have received a copy of the GNU Library General Public
20 * License along with this library; if not, write to the
21 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 * Boston, MA 02111-1307, USA.
25 #include "atspi-private.h"
28 * atspi_value_get_minimum_value:
29 * @obj: a pointer to the #AtspiValue implementor on which to operate.
31 * Gets the minimum allowed value for an #AtspiValue.
33 * Returns: the minimum allowed value for this object.
37 atspi_value_get_minimum_value (AtspiValue *obj, GError **error)
41 g_return_val_if_fail (obj != NULL, 0.0);
42 _atspi_dbus_get_property (obj, atspi_interface_value, "MinimumValue", error, "d", &retval);
48 * atspi_value_get_current_value:
49 * @obj: a pointer to the #AtspiValue implementor on which to operate.
51 * Gets the current value for an #AtspiValue.
53 * Returns: the current value for this object.
56 atspi_value_get_current_value (AtspiValue *obj, GError **error)
60 g_return_val_if_fail (obj != NULL, 0.0);
62 _atspi_dbus_get_property (obj, atspi_interface_value, "CurrentValue", error, "d", &retval);
68 * atspi_value_get_maximum_value:
69 * @obj: a pointer to the #AtspiValue implementor on which to operate.
71 * Gets the maximum allowed value for an #AtspiValue.
73 * Returns: the maximum allowed value for this object.
76 atspi_value_get_maximum_value (AtspiValue *obj, GError **error)
80 g_return_val_if_fail (obj != NULL, 0.0);
82 _atspi_dbus_get_property (obj, atspi_interface_value, "MaximumValue", error, "d", &retval);
88 * atspi_value_set_current_value:
89 * @obj: a pointer to the #AtspiValue implementor on which to operate.
90 * @new_value: a #gdouble value which is the desired new value of the object.
92 * Sets the current value of an #AtspiValue.
94 * Returns: #TRUE if the value could be assigned the specified value,
98 atspi_value_set_current_value (AtspiValue *obj, gdouble new_value, GError **error)
100 double d_new_value = new_value;
101 DBusMessage *message, *reply;
102 DBusMessageIter iter, iter_variant;
103 static const char *str_curval = "CurrentValue";
104 AtspiAccessible *accessible = ATSPI_ACCESSIBLE (obj);
106 g_return_val_if_fail (accessible != NULL, FALSE);
108 if (!accessible->parent.app || !accessible->parent.app->bus_name)
110 g_set_error_literal (error, ATSPI_ERROR, ATSPI_ERROR_APPLICATION_GONE,
111 _("The application no longer exists"));
115 message = dbus_message_new_method_call (accessible->parent.app->bus_name,
116 accessible->parent.path,
117 DBUS_INTERFACE_PROPERTIES, "Set");
120 dbus_message_append_args (message, DBUS_TYPE_STRING, &atspi_interface_value,
121 DBUS_TYPE_STRING, &str_curval,
123 dbus_message_iter_init_append (message, &iter);
124 dbus_message_iter_open_container (&iter, DBUS_TYPE_VARIANT, "d", &iter_variant);
125 dbus_message_iter_append_basic (&iter_variant, DBUS_TYPE_DOUBLE, &d_new_value);
126 dbus_message_iter_close_container (&iter, &iter_variant);
127 reply = _atspi_dbus_send_with_reply_and_block (message, error);
128 dbus_message_unref (reply);
134 * atspi_value_get_minimum_increment:
135 * @obj: a pointer to the #AtspiValue implementor on which to operate.
137 * Gets the minimum increment by which an #AtspiValue can be adjusted.
139 * Returns: the minimum increment by which the value may be changed, or
140 * zero if the minimum increment cannot be determined.
144 atspi_value_get_minimum_increment (AtspiValue *obj, GError **error)
148 g_return_val_if_fail (obj != NULL, 0.0);
150 _atspi_dbus_get_property (obj, atspi_interface_value, "MinimumIncrement", error, "d", &retval);
156 atspi_value_base_init (AtspiValue *klass)
161 atspi_value_get_type (void)
163 static GType type = 0;
166 static const GTypeInfo tinfo =
169 (GBaseInitFunc) atspi_value_base_init,
170 (GBaseFinalizeFunc) NULL,
173 type = g_type_register_static (G_TYPE_INTERFACE, "AtspiValue", &tinfo, 0);