diff options
7 files changed, 110 insertions, 7 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c index 97b16fc93e..321026e628 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c @@ -13141,6 +13141,26 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1scrolled_1window_1get_1hadjustment) } #endif +#ifndef NO__1gtk_1scrolled_1window_1get_1hscrollbar +JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1scrolled_1window_1get_1hscrollbar) + (JNIEnv *env, jclass that, jintLong arg0) +{ + jintLong rc = 0; + OS_NATIVE_ENTER(env, that, _1gtk_1scrolled_1window_1get_1hscrollbar_FUNC); +/* + rc = (jintLong)gtk_scrolled_window_get_hscrollbar((GtkScrolledWindow *)arg0); +*/ + { + OS_LOAD_FUNCTION(fp, gtk_scrolled_window_get_hscrollbar) + if (fp) { + rc = (jintLong)((jintLong (CALLING_CONVENTION*)(GtkScrolledWindow *))fp)((GtkScrolledWindow *)arg0); + } + } + OS_NATIVE_EXIT(env, that, _1gtk_1scrolled_1window_1get_1hscrollbar_FUNC); + return rc; +} +#endif + #ifndef NO__1gtk_1scrolled_1window_1get_1policy JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1scrolled_1window_1get_1policy) (JNIEnv *env, jclass that, jintLong arg0, jintArray arg1, jintArray arg2) @@ -13182,6 +13202,26 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1scrolled_1window_1get_1vadjustment) } #endif +#ifndef NO__1gtk_1scrolled_1window_1get_1vscrollbar +JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1scrolled_1window_1get_1vscrollbar) + (JNIEnv *env, jclass that, jintLong arg0) +{ + jintLong rc = 0; + OS_NATIVE_ENTER(env, that, _1gtk_1scrolled_1window_1get_1vscrollbar_FUNC); +/* + rc = (jintLong)gtk_scrolled_window_get_vscrollbar((GtkScrolledWindow *)arg0); +*/ + { + OS_LOAD_FUNCTION(fp, gtk_scrolled_window_get_vscrollbar) + if (fp) { + rc = (jintLong)((jintLong (CALLING_CONVENTION*)(GtkScrolledWindow *))fp)((GtkScrolledWindow *)arg0); + } + } + OS_NATIVE_EXIT(env, that, _1gtk_1scrolled_1window_1get_1vscrollbar_FUNC); + return rc; +} +#endif + #ifndef NO__1gtk_1scrolled_1window_1new JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1scrolled_1window_1new) (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1) diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h index 310e9fb8b1..e8e752c926 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h @@ -176,6 +176,8 @@ #define gdk_screen_get_monitor_geometry_LIB LIB_GDK #define gdk_screen_get_n_monitors_LIB LIB_GDK #define gdk_screen_get_number_LIB LIB_GDK +#define gtk_scrolled_window_get_hscrollbar_LIB LIB_GTK +#define gtk_scrolled_window_get_vscrollbar_LIB LIB_GTK #define gtk_status_icon_get_geometry_LIB LIB_GTK #define gtk_status_icon_get_visible_LIB LIB_GTK #define gtk_status_icon_new_LIB LIB_GTK @@ -342,9 +344,17 @@ #define GTK_RANGE_HAS_STEPPER_B(arg0) (arg0)->has_stepper_b #define GTK_RANGE_HAS_STEPPER_C(arg0) (arg0)->has_stepper_c #define GTK_RANGE_HAS_STEPPER_D(arg0) (arg0)->has_stepper_d +#if GTK_CHECK_VERSION(2,8,0) +#define GTK_SCROLLED_WINDOW_HSCROLLBAR(arg0) 0 +#else #define GTK_SCROLLED_WINDOW_HSCROLLBAR(arg0) (arg0)->hscrollbar +#endif #define GTK_SCROLLED_WINDOW_SCROLLBAR_SPACING(arg0) (GTK_SCROLLED_WINDOW_GET_CLASS (arg0)->scrollbar_spacing >= 0 ? GTK_SCROLLED_WINDOW_GET_CLASS (arg0)->scrollbar_spacing : 3) +#if GTK_CHECK_VERSION(2,8,0) +#define GTK_SCROLLED_WINDOW_VSCROLLBAR(arg0) 0 +#else #define GTK_SCROLLED_WINDOW_VSCROLLBAR(arg0) (arg0)->vscrollbar +#endif #define GTK_WIDGET_HEIGHT(arg0) (arg0)->allocation.height #define GTK_WIDGET_SET_HEIGHT(arg0, arg1) (arg0)->allocation.height = arg1 #define GTK_WIDGET_WIDTH(arg0) (arg0)->allocation.width diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c index 1d036c11e2..ca0a055f10 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c @@ -18,8 +18,8 @@ #ifdef NATIVE_STATS -int OS_nativeFunctionCount = 1404; -int OS_nativeFunctionCallCount[1404]; +int OS_nativeFunctionCount = 1406; +int OS_nativeFunctionCallCount[1406]; char * OS_nativeFunctionNames[] = { #ifndef JNI64 "Call__IIII", @@ -1002,9 +1002,11 @@ char * OS_nativeFunctionNames[] = { "_1gtk_1scale_1set_1draw_1value", "_1gtk_1scrolled_1window_1add_1with_1viewport", "_1gtk_1scrolled_1window_1get_1hadjustment", + "_1gtk_1scrolled_1window_1get_1hscrollbar", "_1gtk_1scrolled_1window_1get_1policy", "_1gtk_1scrolled_1window_1get_1shadow_1type", "_1gtk_1scrolled_1window_1get_1vadjustment", + "_1gtk_1scrolled_1window_1get_1vscrollbar", "_1gtk_1scrolled_1window_1new", "_1gtk_1scrolled_1window_1set_1placement", "_1gtk_1scrolled_1window_1set_1policy", diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h index e8c483ef69..e5b773cec7 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h @@ -1010,9 +1010,11 @@ typedef enum { _1gtk_1scale_1set_1draw_1value_FUNC, _1gtk_1scrolled_1window_1add_1with_1viewport_FUNC, _1gtk_1scrolled_1window_1get_1hadjustment_FUNC, + _1gtk_1scrolled_1window_1get_1hscrollbar_FUNC, _1gtk_1scrolled_1window_1get_1policy_FUNC, _1gtk_1scrolled_1window_1get_1shadow_1type_FUNC, _1gtk_1scrolled_1window_1get_1vadjustment_FUNC, + _1gtk_1scrolled_1window_1get_1vscrollbar_FUNC, _1gtk_1scrolled_1window_1new_FUNC, _1gtk_1scrolled_1window_1set_1placement_FUNC, _1gtk_1scrolled_1window_1set_1policy_FUNC, diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java index 4aab5e3597..99353aa48d 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java @@ -9961,6 +9961,19 @@ public static final int /*long*/ gtk_scrolled_window_get_hadjustment(int /*long* lock.unlock(); } } +/** + * @method flags=dynamic + * @param scrolled_window cast=(GtkScrolledWindow *) + */ +public static final native int /*long*/ _gtk_scrolled_window_get_hscrollbar(int /*long*/ scrolled_window); +public static final int /*long*/ gtk_scrolled_window_get_hscrollbar(int /*long*/ scrolled_window) { + lock.lock(); + try { + return _gtk_scrolled_window_get_hscrollbar(scrolled_window); + } finally { + lock.unlock(); + } +} /** * @param scrolled_window cast=(GtkScrolledWindow *) * @param hscrollbar_policy cast=(GtkPolicyType *) @@ -9995,6 +10008,19 @@ public static final int /*long*/ gtk_scrolled_window_get_vadjustment(int /*long* lock.unlock(); } } +/** + * @method flags=dynamic + * @param scrolled_window cast=(GtkScrolledWindow *) + */ +public static final native int /*long*/ _gtk_scrolled_window_get_vscrollbar(int /*long*/ scrolled_window); +public static final int /*long*/ gtk_scrolled_window_get_vscrollbar(int /*long*/ scrolled_window) { + lock.lock(); + try { + return _gtk_scrolled_window_get_vscrollbar(scrolled_window); + } finally { + lock.unlock(); + } +} /** * @param hadjustment cast=(GtkAdjustment *) * @param vadjustment cast=(GtkAdjustment *) diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandBar.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandBar.java index cd9e40527b..fc1b31bb47 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandBar.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandBar.java @@ -455,7 +455,12 @@ void setScrollbar () { OS.gtk_scrolled_window_set_policy (scrolledHandle, OS.GTK_POLICY_NEVER, policy); int width = OS.GTK_WIDGET_WIDTH (fixedHandle) - spacing * 2; if (policy == OS.GTK_POLICY_ALWAYS) { - int /*long*/ vHandle = OS.GTK_SCROLLED_WINDOW_VSCROLLBAR (scrolledHandle); + int /*long*/ vHandle = 0; + if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) { + vHandle = OS.GTK_SCROLLED_WINDOW_VSCROLLBAR (scrolledHandle); + } else { + vHandle = OS.gtk_scrolled_window_get_vscrollbar (scrolledHandle); + } GtkRequisition requisition = new GtkRequisition (); OS.gtk_widget_size_request (vHandle, requisition); width -= requisition.width; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scrollable.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scrollable.java index 6d20f58a3f..5f63d5d518 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scrollable.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scrollable.java @@ -136,10 +136,18 @@ ScrollBar createScrollBar (int style) { bar.display = display; bar.state |= HANDLE; if ((style & SWT.H_SCROLL) != 0) { - bar.handle = OS.GTK_SCROLLED_WINDOW_HSCROLLBAR (scrolledHandle); + if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) { + bar.handle = OS.GTK_SCROLLED_WINDOW_HSCROLLBAR (scrolledHandle); + } else { + bar.handle = OS.gtk_scrolled_window_get_hscrollbar (scrolledHandle); + } bar.adjustmentHandle = OS.gtk_scrolled_window_get_hadjustment (scrolledHandle); } else { - bar.handle = OS.GTK_SCROLLED_WINDOW_VSCROLLBAR (scrolledHandle); + if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) { + bar.handle = OS.GTK_SCROLLED_WINDOW_VSCROLLBAR (scrolledHandle); + } else { + bar.handle = OS.gtk_scrolled_window_get_vscrollbar (scrolledHandle); + } bar.adjustmentHandle = OS.gtk_scrolled_window_get_vadjustment (scrolledHandle); } bar.setOrientation (true); @@ -293,7 +301,12 @@ int /*long*/ gtk_scroll_event (int /*long*/ widget, int /*long*/ eventPtr) { int hScrollBarWidth() { if (horizontalBar==null) return 0; - int /*long*/ hBarHandle = OS.GTK_SCROLLED_WINDOW_HSCROLLBAR(scrolledHandle); + int /*long*/ hBarHandle = 0; + if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) { + hBarHandle = OS.GTK_SCROLLED_WINDOW_HSCROLLBAR (scrolledHandle); + } else { + hBarHandle = OS.gtk_scrolled_window_get_hscrollbar (scrolledHandle); + } if (hBarHandle==0) return 0; GtkRequisition requisition = new GtkRequisition(); OS.gtk_widget_size_request(hBarHandle, requisition); @@ -408,7 +421,12 @@ void updateScrollBarValue (ScrollBar bar) { int vScrollBarWidth() { if (verticalBar == null) return 0; - int /*long*/ vBarHandle = OS.GTK_SCROLLED_WINDOW_VSCROLLBAR(scrolledHandle); + int /*long*/ vBarHandle = 0; + if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) { + vBarHandle = OS.GTK_SCROLLED_WINDOW_VSCROLLBAR (scrolledHandle); + } else { + vBarHandle = OS.gtk_scrolled_window_get_vscrollbar (scrolledHandle); + } if (vBarHandle == 0) return 0; GtkRequisition requisition = new GtkRequisition(); OS.gtk_widget_size_request (vBarHandle, requisition); |