summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
diff options
context:
space:
mode:
authorGrant Gayed <ggayed>2003-01-23 16:42:02 +0000
committerGrant Gayed <ggayed>2003-01-23 16:42:02 +0000
commit163a1f5fcb1b71e050b3ad44b8661b8137b71203 (patch)
tree71074fd5b7313300eba15c8a6acd70566dae15ea /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
parent4df1564310933f7cdc0b8bae524d9bc4d35d92c0 (diff)
downloadeclipse.platform.swt-163a1f5fcb1b71e050b3ad44b8661b8137b71203.tar.gz
eclipse.platform.swt-163a1f5fcb1b71e050b3ad44b8661b8137b71203.tar.xz
eclipse.platform.swt-163a1f5fcb1b71e050b3ad44b8661b8137b71203.zip
*** empty log message ***
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java61
1 files changed, 20 insertions, 41 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
index 31b1f263ae..8f68d2440b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
@@ -288,14 +288,9 @@ public void removeSelectionListener (SelectionListener listener) {
public void setIncrement (int value) {
checkWidget ();
if (value < 1) return;
- int hAdjustment = OS.gtk_range_get_adjustment (handle);
- GtkAdjustment adjustment = new GtkAdjustment ();
- OS.memmove (adjustment, hAdjustment);
- adjustment.step_increment = (float) value;
- OS.memmove (hAdjustment, adjustment);
- OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
- OS.gtk_adjustment_changed (hAdjustment);
- OS.g_signal_handlers_unblock_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ OS.gtk_range_set_increments (handle, value, getPageIncrement ());
+ OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
}
/**
@@ -312,16 +307,11 @@ public void setIncrement (int value) {
*/
public void setMaximum (int value) {
checkWidget ();
- int hAdjustment = OS.gtk_range_get_adjustment (handle);
- GtkAdjustment adjustment = new GtkAdjustment ();
- OS.memmove (adjustment, hAdjustment);
- if (value <= adjustment.lower) return;
- adjustment.upper = (float) value;
- adjustment.value = Math.min (adjustment.value, value);
- OS.memmove (hAdjustment, adjustment);
- OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
- OS.gtk_adjustment_changed (hAdjustment);
- OS.g_signal_handlers_unblock_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ int minimum = getMinimum();
+ if (value <= minimum) return;
+ OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ OS.gtk_range_set_range (handle, minimum, value);
+ OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
}
/**
@@ -339,16 +329,11 @@ public void setMaximum (int value) {
public void setMinimum (int value) {
checkWidget ();
if (value < 0) return;
- int hAdjustment = OS.gtk_range_get_adjustment (handle);
- GtkAdjustment adjustment = new GtkAdjustment ();
- OS.memmove (adjustment, hAdjustment);
- if (value >= adjustment.upper) return;
- adjustment.lower = (float) value;
- adjustment.value = Math.max (adjustment.value, value);
- OS.memmove (hAdjustment, adjustment);
- OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
- OS.gtk_adjustment_changed (hAdjustment);
- OS.g_signal_handlers_unblock_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ int maximum = getMaximum ();
+ if (value >= maximum) return;
+ OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ OS.gtk_range_set_range (handle, value, maximum);
+ OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
}
/**
@@ -367,14 +352,9 @@ public void setMinimum (int value) {
public void setPageIncrement (int value) {
checkWidget ();
if (value < 1) return;
- int hAdjustment = OS.gtk_range_get_adjustment (handle);
- GtkAdjustment adjustment = new GtkAdjustment ();
- OS.memmove (adjustment, hAdjustment);
- adjustment.page_increment = (float) value;
- OS.memmove (hAdjustment, adjustment);
- OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
- OS.gtk_adjustment_changed (hAdjustment);
- OS.g_signal_handlers_unblock_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ OS.gtk_range_set_increments (handle, getIncrement (), value);
+ OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
}
/**
@@ -390,11 +370,10 @@ public void setPageIncrement (int value) {
* </ul>
*/
public void setSelection (int value) {
- checkWidget();
- int hAdjustment = OS.gtk_range_get_adjustment (handle);
- OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
- OS.gtk_adjustment_set_value (hAdjustment, value);
- OS.g_signal_handlers_unblock_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ checkWidget ();
+ OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
+ OS.gtk_range_set_value (handle, value);
+ OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
}
}