summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
authorRobert Brady <robert@suse.co.uk>2000-10-22 13:00:13 +0000
committerRobert Brady <rbrady@src.gnome.org>2000-10-22 13:00:13 +0000
commit2f9aee8d7f0d164412a459d26970ea3151f875be (patch)
tree4ff1088af8ae85a343bfd7379640b705a4dba64e /gtk/gtkrange.c
parentb687405d4595c8599ff92167e5af835d1153009c (diff)
downloadgtk+-2f9aee8d7f0d164412a459d26970ea3151f875be.tar.gz
Check for bind_textdomain_codeset
2000-10-22 Robert Brady <robert@suse.co.uk> * configure.in: Check for bind_textdomain_codeset * gtk/gtkmain.c (gtk_init_check): If bind_textdomain_codeset present, make use of it. Add a translatable string "default:LTR" which, if translated to "default:RTL", will cause the default direction to be Right-to-Left. * gtk/gtkrange.h, gtk/gtkrange.c: Take into account the widget direction if marked as flippable. * gtk/gtkhscale.c: Mark widget as flippable.
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r--gtk/gtkrange.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 92ff0c0dc8..595a8a9bdc 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -237,6 +237,7 @@ gtk_range_init (GtkRange *range)
range->click_child = 0;
range->need_timer = FALSE;
range->timer = 0;
+ range->flippable = 0;
range->old_value = 0.0;
range->old_lower = 0.0;
range->old_upper = 0.0;
@@ -457,6 +458,9 @@ gtk_range_default_hslider_update (GtkRange *range)
else if (x > right)
x = right;
+ if (range->flippable && gtk_widget_get_direction (range) == GTK_TEXT_DIR_RTL)
+ x = right - (x - left);
+
move_and_update_window (range->slider, x, GTK_WIDGET (range)->style->ythickness);
}
}
@@ -521,7 +525,10 @@ gtk_range_default_htrough_click (GtkRange *range,
gtk_range_trough_hdims (range, &left, &right);
gdk_window_get_size (range->slider, &slider_length, NULL);
right += slider_length;
-
+
+ if (range->flippable && gtk_widget_get_direction (range) == GTK_TEXT_DIR_RTL)
+ x = (right - x) + left;
+
if ((x > left) && (y > ythickness))
{
gdk_window_get_size (range->trough, &trough_width, &trough_height);
@@ -616,6 +623,9 @@ gtk_range_default_hmotion (GtkRange *range,
new_pos = slider_x + xdelta;
+ if (range->flippable && gtk_widget_get_direction (range) == GTK_TEXT_DIR_RTL)
+ new_pos = (right - new_pos) + left;
+
if (new_pos < left)
new_pos = left;
else if (new_pos > right)