summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
diff options
context:
space:
mode:
authorBilly Biggs <bbiggs>2005-07-07 15:16:40 +0000
committerBilly Biggs <bbiggs>2005-07-07 15:16:40 +0000
commit2dbefaf121e6110dd9ed953bf6fe4c17974f878a (patch)
treea9ed44a0297bf6836686b89d7fdbf67b94137206 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
parentaa120b74d60be97041f7f8b794a95ddb64d3292f (diff)
downloadeclipse.platform.swt-2dbefaf121e6110dd9ed953bf6fe4c17974f878a.tar.gz
eclipse.platform.swt-2dbefaf121e6110dd9ed953bf6fe4c17974f878a.tar.xz
eclipse.platform.swt-2dbefaf121e6110dd9ed953bf6fe4c17974f878a.zip
51995
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java34
1 files changed, 33 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
index 54ba0ea052..659a1be549 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
@@ -339,6 +339,34 @@ public boolean getVisible () {
}
}
+int /*long*/ gtk_change_value (int /*long*/ widget, int /*long*/ scroll, int /*long*/ value) {
+ Event event = new Event ();
+ switch (scroll) {
+ case OS.GTK_SCROLL_NONE: event.detail = SWT.NONE; break;
+ case OS.GTK_SCROLL_JUMP: event.detail = SWT.DRAG; break;
+ case OS.GTK_SCROLL_START: event.detail = SWT.HOME; break;
+ case OS.GTK_SCROLL_END: event.detail = SWT.END; break;
+ case OS.GTK_SCROLL_PAGE_DOWN:
+ case OS.GTK_SCROLL_PAGE_RIGHT:
+ case OS.GTK_SCROLL_PAGE_FORWARD:
+ event.detail = SWT.PAGE_DOWN; break;
+ case OS.GTK_SCROLL_PAGE_UP:
+ case OS.GTK_SCROLL_PAGE_LEFT:
+ case OS.GTK_SCROLL_PAGE_BACKWARD:
+ event.detail = SWT.PAGE_UP; break;
+ case OS.GTK_SCROLL_STEP_DOWN:
+ case OS.GTK_SCROLL_STEP_RIGHT:
+ case OS.GTK_SCROLL_STEP_FORWARD:
+ event.detail = SWT.ARROW_DOWN; break;
+ case OS.GTK_SCROLL_STEP_UP:
+ case OS.GTK_SCROLL_STEP_LEFT:
+ case OS.GTK_SCROLL_STEP_BACKWARD:
+ event.detail = SWT.ARROW_UP; break;
+ }
+ postEvent (SWT.Selection, event);
+ return 0;
+}
+
int /*long*/ gtk_value_changed (int /*long*/ adjustment) {
postEvent (SWT.Selection);
return 0;
@@ -346,7 +374,11 @@ int /*long*/ gtk_value_changed (int /*long*/ adjustment) {
void hookEvents () {
super.hookEvents ();
- OS.g_signal_connect (adjustmentHandle, OS.value_changed, display.windowProc2, VALUE_CHANGED);
+ if (OS.GTK_VERSION >= OS.VERSION (2, 6, 0)) {
+ OS.g_signal_connect (handle, OS.change_value, display.windowProc5, CHANGE_VALUE);
+ } else {
+ OS.g_signal_connect (adjustmentHandle, OS.value_changed, display.windowProc2, VALUE_CHANGED);
+ }
}
/**