Implement GtkAccessibleRange for GtkScaleButton
authorLukáš Tyrychtr <lukastyrychtr@gmail.com>
Fri, 16 Sep 2022 08:21:32 +0000 (10:21 +0200)
committerLukáš Tyrychtr <lukastyrychtr@gmail.com>
Thu, 29 Sep 2022 07:36:08 +0000 (09:36 +0200)
gtk/gtkscalebutton.c

index 67d919c6578f26dd5774af8cc1402e6e951f64e3..b97af7c4e805b2ba27701790ac257c344e4746f5 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "gtkscalebutton.h"
 
+#include "gtkaccessiblerange.h"
 #include "gtkadjustment.h"
 #include "gtkbox.h"
 #include "gtkbuttonprivate.h"
@@ -158,13 +159,38 @@ static gboolean gtk_scale_button_scroll_controller_scroll (GtkEventControllerScr
                                                            double                    dx,
                                                            double                    dy,
                                                            GtkScaleButton           *button);
+static void gtk_scale_button_accessible_range_init(GtkAccessibleRangeInterface *iface);
+
 
 G_DEFINE_TYPE_WITH_CODE (GtkScaleButton, gtk_scale_button, GTK_TYPE_WIDGET,
                          G_ADD_PRIVATE (GtkScaleButton)
+                         G_IMPLEMENT_INTERFACE (GTK_TYPE_ACCESSIBLE_RANGE,
+                                                gtk_scale_button_accessible_range_init)
                          G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL))
 
 static guint signals[LAST_SIGNAL] = { 0, };
 
+static double
+gtk_scale_button_accessible_range_get_minimum_increment(GtkAccessibleRange *accessible_range)
+{
+  GtkScaleButton *button = GTK_SCALE_BUTTON (accessible_range);
+  return gtk_adjustment_get_minimum_increment (gtk_scale_button_get_adjustment (button));
+}
+
+static void
+gtk_scale_button_accessible_range_set_current_value (GtkAccessibleRange *accessible_range, double value)
+{
+  GtkScaleButton *button = GTK_SCALE_BUTTON (accessible_range);
+  gtk_scale_button_set_value (button, value);
+}
+
+static void
+gtk_scale_button_accessible_range_init(GtkAccessibleRangeInterface *iface)
+{
+  iface->get_minimum_increment = gtk_scale_button_accessible_range_get_minimum_increment;
+  iface->set_current_value = gtk_scale_button_accessible_range_set_current_value;
+}
+
 static void
 gtk_scale_button_class_init (GtkScaleButtonClass *klass)
 {