Account for GtkAccessibleRange implementations which do not have a
authorLukáš Tyrychtr <lukastyrychtr@gmail.com>
Wed, 14 Sep 2022 14:53:04 +0000 (16:53 +0200)
committerLukáš Tyrychtr <lukastyrychtr@gmail.com>
Thu, 29 Sep 2022 07:36:08 +0000 (09:36 +0200)
minimum step and it makes no sense for them to set the current value

gtk/gtkaccessiblerange.c

index 555e1eb921720fc89492f731e3c94d84915d6a0e..363e9545156d4ccc95ca7139a6f79eb6a0940abe 100644 (file)
 \r
 G_DEFINE_INTERFACE (GtkAccessibleRange, gtk_accessible_range, GTK_TYPE_ACCESSIBLE)\r
 \r
+static double\r
+gtk_accessible_range_default_get_minimum_increment (GtkAccessibleRange *accessible_range)\r
+{\r
+  return 0.0;\r
+}\r
+\r
+static void\r
+gtk_accessible_range_default_set_current_value (GtkAccessibleRange *accessible_range, double value)\r
+{\r
+  /* By default, we do nothing */\r
+}\r
+\r
 static void\r
 gtk_accessible_range_default_init (GtkAccessibleRangeInterface *iface)\r
 {\r
+  iface->get_minimum_increment = gtk_accessible_range_default_get_minimum_increment;\r
+  iface->set_current_value = gtk_accessible_range_default_set_current_value;\r
 }\r
 \r
  /*\r
@@ -51,7 +65,7 @@ gtk_accessible_range_default_init (GtkAccessibleRangeInterface *iface)
  *\r
  * Returns the minimum increment which this `GtkAccessibleRange` supports.\r
  *\r
- * Returns: the minimum increment\r
+ * Returns: the minimum increment, or 0.0 if not overridden\r
  */\r
 double\r
 gtk_accessible_range_get_minimum_increment (GtkAccessibleRange *self)\r
@@ -66,11 +80,15 @@ gtk_accessible_range_get_minimum_increment (GtkAccessibleRange *self)
  * @self: a `GtkAccessibleRange`\r
  *\r
  * Sets the current value of this `GtkAccessibleRange`.\r
+ * Note that for some widgets implementing this interface, setting a value\r
+ * through the accessibility API makes no sense, so calling this function may\r
+ * in some cases do nothing.\r
  */\r
 void\r
 gtk_accessible_range_set_current_value (GtkAccessibleRange *self, double value)\r
 {\r
   g_return_if_fail (GTK_IS_ACCESSIBLE_RANGE (self));\r
 \r
-  return GTK_ACCESSIBLE_RANGE_GET_IFACE (self)->set_current_value (self, value);\r
+  GtkAccessibleRangeInterface *iface = GTK_ACCESSIBLE_RANGE_GET_IFACE (self);\r
+  iface->set_current_value (self, value);\r
 }
\ No newline at end of file