[gtk+] Implement GailAdjustment::get_minimium_increment
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Implement GailAdjustment::get_minimium_increment
- Date: Tue, 10 Aug 2010 01:14:43 +0000 (UTC)
commit 93fa95e79fb03add226954c0e679d2cf52f6392e
Author: Szilárd Pfeiffer <mailbox pfeifferszilard hu>
Date: Mon Aug 9 21:12:46 2010 -0400
Implement GailAdjustment::get_minimium_increment
...and use it in GailRange and GailSpinButton. Bug 625953.
modules/other/gail/gailadjustment.c | 44 +++++++++++++++++++++++++++++++++++
modules/other/gail/gailrange.c | 20 ++++++++++++++++
modules/other/gail/gailspinbutton.c | 20 ++++++++++++++++
3 files changed, 84 insertions(+), 0 deletions(-)
---
diff --git a/modules/other/gail/gailadjustment.c b/modules/other/gail/gailadjustment.c
index 8a86835..5226488 100644
--- a/modules/other/gail/gailadjustment.c
+++ b/modules/other/gail/gailadjustment.c
@@ -38,6 +38,8 @@ static void gail_adjustment_get_maximum_value (AtkValue *obj,
GValue *value);
static void gail_adjustment_get_minimum_value (AtkValue *obj,
GValue *value);
+static void gail_adjustment_get_minimum_increment (AtkValue *obj,
+ GValue *value);
static gboolean gail_adjustment_set_current_value (AtkValue *obj,
const GValue *value);
@@ -101,6 +103,7 @@ atk_value_interface_init (AtkValueIface *iface)
iface->get_current_value = gail_adjustment_get_current_value;
iface->get_maximum_value = gail_adjustment_get_maximum_value;
iface->get_minimum_value = gail_adjustment_get_minimum_value;
+ iface->get_minimum_increment = gail_adjustment_get_minimum_increment;
iface->set_current_value = gail_adjustment_set_current_value;
}
@@ -164,6 +167,47 @@ gail_adjustment_get_minimum_value (AtkValue *obj,
g_value_set_double (value, minimum_value);
}
+static void
+gail_adjustment_get_minimum_increment (AtkValue *obj,
+ GValue *value)
+{
+ GtkAdjustment* adjustment;
+ gdouble minimum_increment;
+
+ adjustment = GAIL_ADJUSTMENT (obj)->adjustment;
+ if (adjustment == NULL)
+ {
+ /* State is defunct */
+ return;
+ }
+
+ if (adjustment->step_increment != 0 &&
+ adjustment->page_increment != 0)
+ {
+ if (ABS (adjustment->step_increment) < ABS (adjustment->page_increment))
+ minimum_increment = adjustment->step_increment;
+ else
+ minimum_increment = adjustment->page_increment;
+ }
+ else if (adjustment->step_increment == 0 &&
+ adjustment->page_increment == 0)
+ {
+ minimum_increment = 0;
+ }
+ else if (adjustment->step_increment == 0)
+ {
+ minimum_increment = adjustment->page_increment;
+ }
+ else
+ {
+ minimum_increment = adjustment->step_increment;
+ }
+
+ memset (value, 0, sizeof (GValue));
+ g_value_init (value, G_TYPE_DOUBLE);
+ g_value_set_double (value, minimum_increment);
+}
+
static gboolean
gail_adjustment_set_current_value (AtkValue *obj,
const GValue *value)
diff --git a/modules/other/gail/gailrange.c b/modules/other/gail/gailrange.c
index fc34eab..810baf8 100644
--- a/modules/other/gail/gailrange.c
+++ b/modules/other/gail/gailrange.c
@@ -48,6 +48,8 @@ static void gail_range_get_maximum_value (AtkValue *obj,
GValue *value);
static void gail_range_get_minimum_value (AtkValue *obj,
GValue *value);
+static void gail_range_get_minimum_increment (AtkValue *obj,
+ GValue *value);
static gboolean gail_range_set_current_value (AtkValue *obj,
const GValue *value);
static void gail_range_value_changed (GtkAdjustment *adjustment,
@@ -159,6 +161,7 @@ atk_value_interface_init (AtkValueIface *iface)
iface->get_current_value = gail_range_get_current_value;
iface->get_maximum_value = gail_range_get_maximum_value;
iface->get_minimum_value = gail_range_get_minimum_value;
+ iface->get_minimum_increment = gail_range_get_minimum_increment;
iface->set_current_value = gail_range_set_current_value;
}
@@ -216,6 +219,23 @@ gail_range_get_minimum_value (AtkValue *obj,
atk_value_get_minimum_value (ATK_VALUE (range->adjustment), value);
}
+static void
+gail_range_get_minimum_increment (AtkValue *obj, GValue *value)
+{
+ GailRange *range;
+
+ g_return_if_fail (GAIL_IS_RANGE (obj));
+
+ range = GAIL_RANGE (obj);
+ if (range->adjustment == NULL)
+ /*
+ * Adjustment has not been specified
+ */
+ return;
+
+ atk_value_get_minimum_increment (ATK_VALUE (range->adjustment), value);
+}
+
static gboolean gail_range_set_current_value (AtkValue *obj,
const GValue *value)
{
diff --git a/modules/other/gail/gailspinbutton.c b/modules/other/gail/gailspinbutton.c
index 078bf10..767099d 100644
--- a/modules/other/gail/gailspinbutton.c
+++ b/modules/other/gail/gailspinbutton.c
@@ -42,6 +42,8 @@ static void gail_spin_button_get_maximum_value (AtkValue *obj,
GValue *value);
static void gail_spin_button_get_minimum_value (AtkValue *obj,
GValue *value);
+static void gail_spin_button_get_minimum_increment (AtkValue *obj,
+ GValue *value);
static gboolean gail_spin_button_set_current_value (AtkValue *obj,
const GValue *value);
static void gail_spin_button_value_changed (GtkAdjustment *adjustment,
@@ -108,6 +110,7 @@ atk_value_interface_init (AtkValueIface *iface)
iface->get_current_value = gail_spin_button_get_current_value;
iface->get_maximum_value = gail_spin_button_get_maximum_value;
iface->get_minimum_value = gail_spin_button_get_minimum_value;
+ iface->get_minimum_increment = gail_spin_button_get_minimum_increment;
iface->set_current_value = gail_spin_button_set_current_value;
}
@@ -165,6 +168,23 @@ gail_spin_button_get_minimum_value (AtkValue *obj,
atk_value_get_minimum_value (ATK_VALUE (spin_button->adjustment), value);
}
+static void
+gail_spin_button_get_minimum_increment (AtkValue *obj, GValue *value)
+{
+ GailSpinButton *spin_button;
+
+ g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
+
+ spin_button = GAIL_SPIN_BUTTON (obj);
+ if (spin_button->adjustment == NULL)
+ /*
+ * Adjustment has not been specified
+ */
+ return;
+
+ atk_value_get_minimum_increment (ATK_VALUE (spin_button->adjustment), value);
+}
+
static gboolean
gail_spin_button_set_current_value (AtkValue *obj,
const GValue *value)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]