Implement GtkAccessibleRange for GtkRange
authorLukáš Tyrychtr <lukastyrychtr@gmail.com>
Wed, 14 Sep 2022 12:46:19 +0000 (14:46 +0200)
committerLukáš Tyrychtr <lukastyrychtr@gmail.com>
Thu, 29 Sep 2022 07:36:08 +0000 (09:36 +0200)
gtk/gtkrange.c

index 7ebb2d4316a470ea2e3bc587ece590393d71a2f9..53b852c6f547e3de8565c32314b4c3d8d0c7e04c 100644 (file)
@@ -28,6 +28,7 @@
 #include "gtkrangeprivate.h"
 
 #include "gtkaccessible.h"
+#include "gtkaccessiblerange.h"
 #include "gtkadjustmentprivate.h"
 #include "gtkcolorscaleprivate.h"
 #include "gtkcssboxesprivate.h"
@@ -246,8 +247,12 @@ static gboolean      gtk_range_scroll_controller_scroll (GtkEventControllerScrol
 static void          gtk_range_set_orientation          (GtkRange       *range,
                                                          GtkOrientation  orientation);
 
+static void gtk_range_accessible_range_init (GtkAccessibleRangeInterface *iface);
+
 G_DEFINE_TYPE_WITH_CODE (GtkRange, gtk_range, GTK_TYPE_WIDGET,
                          G_ADD_PRIVATE (GtkRange)
+                         G_IMPLEMENT_INTERFACE (GTK_TYPE_ACCESSIBLE_RANGE,
+                                                gtk_range_accessible_range_init)
                          G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE,
                                                 NULL))
 
@@ -435,6 +440,27 @@ gtk_range_class_init (GtkRangeClass *class)
   gtk_widget_class_set_css_name (widget_class, I_("range"));
 }
 
+static double
+gtk_range_accessible_range_get_minimum_increment (GtkAccessibleRange *accessible_range)
+{
+  GtkRange *range = GTK_RANGE (accessible_range);
+  return gtk_adjustment_get_minimum_increment (gtk_range_get_adjustment (range));
+}
+
+static void
+gtk_range_accessible_range_set_current_value (GtkAccessibleRange *accessible_range, double value)
+{
+  GtkRange *range = GTK_RANGE (accessible_range);
+  gtk_range_set_value (range, value);
+}
+
+static void
+gtk_range_accessible_range_init (GtkAccessibleRangeInterface *iface)
+{
+  iface->get_minimum_increment = gtk_range_accessible_range_get_minimum_increment;
+  iface->set_current_value = gtk_range_accessible_range_set_current_value;
+}
+
 static void
 gtk_range_set_property (GObject      *object,
                        guint         prop_id,