diff options
author | Billy Biggs <bbiggs> | 2005-07-07 15:16:40 +0000 |
---|---|---|
committer | Billy Biggs <bbiggs> | 2005-07-07 15:16:40 +0000 |
commit | 2dbefaf121e6110dd9ed953bf6fe4c17974f878a (patch) | |
tree | a9ed44a0297bf6836686b89d7fdbf67b94137206 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java | |
parent | aa120b74d60be97041f7f8b794a95ddb64d3292f (diff) | |
download | eclipse.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.java | 34 |
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); + } } /** |