mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-19 01:40:10 +00:00
GtkRange: Implement new AtkValue interface
The AtkValue interface has been replaced in ATK 2.12. Implement the new one in addition to the old one.
This commit is contained in:
parent
1d50657740
commit
516cd70780
@ -212,6 +212,74 @@ gtk_range_accessible_set_current_value (AtkValue *obj,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_range_accessible_get_value_and_text (AtkValue *obj,
|
||||
gdouble *value,
|
||||
gchar **text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
*value = gtk_adjustment_get_value (adjustment);
|
||||
*text = NULL;
|
||||
}
|
||||
|
||||
static AtkRange *
|
||||
gtk_range_accessible_get_range (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
gdouble min, max;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return NULL;
|
||||
|
||||
min = gtk_adjustment_get_lower (adjustment);
|
||||
max = gtk_adjustment_get_upper (adjustment)
|
||||
- gtk_adjustment_get_page_size (adjustment);
|
||||
|
||||
if (gtk_range_get_restrict_to_fill_level (GTK_RANGE (widget)))
|
||||
max = MIN (max, gtk_range_get_fill_level (GTK_RANGE (widget)));
|
||||
|
||||
return atk_range_new (min, max, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_range_accessible_set_value (AtkValue *obj,
|
||||
const gdouble value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
gtk_adjustment_set_value (adjustment, value);
|
||||
}
|
||||
|
||||
static gdouble
|
||||
gtk_range_accessible_get_increment (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return 0;
|
||||
|
||||
return gtk_adjustment_get_minimum_increment (adjustment);
|
||||
}
|
||||
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
@ -220,4 +288,9 @@ atk_value_interface_init (AtkValueIface *iface)
|
||||
iface->get_minimum_value = gtk_range_accessible_get_minimum_value;
|
||||
iface->get_minimum_increment = gtk_range_accessible_get_minimum_increment;
|
||||
iface->set_current_value = gtk_range_accessible_set_current_value;
|
||||
|
||||
iface->get_value_and_text = gtk_range_accessible_get_value_and_text;
|
||||
iface->get_range = gtk_range_accessible_get_range;
|
||||
iface->set_value = gtk_range_accessible_set_value;
|
||||
iface->get_increment = gtk_range_accessible_get_increment;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user