diff options
author | Felipe Heidrich <fheidric> | 2003-08-08 16:21:12 +0000 |
---|---|---|
committer | Felipe Heidrich <fheidric> | 2003-08-08 16:21:12 +0000 |
commit | 6b28a0c174dd79e5553032e158163699afc1b2f5 (patch) | |
tree | 9ae6c534d77cd8c4cc31efd20ecd4a33c85e71ac | |
parent | d0651c433ff5ce31ba5573c7b7aa4c8e43238425 (diff) | |
download | eclipse.platform.swt-6b28a0c174dd79e5553032e158163699afc1b2f5.tar.gz eclipse.platform.swt-6b28a0c174dd79e5553032e158163699afc1b2f5.tar.xz eclipse.platform.swt-6b28a0c174dd79e5553032e158163699afc1b2f5.zip |
part of 41184
3 files changed, 31 insertions, 7 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java index 55e92f2b28..ce9cc20cbb 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java @@ -155,15 +155,14 @@ void createHandle (int index) { OS.gtk_fixed_set_has_window (fixedHandle, true); switch (style & bits) { case SWT.ARROW: - int alignment = OS.GTK_ARROW_UP; - boolean isRTL = (style & SWT.RIGHT_TO_LEFT) != 0; - if ((style & SWT.UP) != 0) alignment = OS.GTK_ARROW_UP; - if ((style & SWT.DOWN) != 0) alignment = OS.GTK_ARROW_DOWN; - if ((style & SWT.LEFT) != 0) alignment = isRTL? OS.GTK_ARROW_RIGHT : OS.GTK_ARROW_LEFT; - if ((style & SWT.RIGHT) != 0) alignment = isRTL? OS.GTK_ARROW_LEFT : OS.GTK_ARROW_RIGHT; + int arrow_type = OS.GTK_ARROW_UP; + if ((style & SWT.UP) != 0) arrow_type = OS.GTK_ARROW_UP; + if ((style & SWT.DOWN) != 0) arrow_type = OS.GTK_ARROW_DOWN; + if ((style & SWT.LEFT) != 0) arrow_type = OS.GTK_ARROW_LEFT; + if ((style & SWT.RIGHT) != 0) arrow_type = OS.GTK_ARROW_RIGHT; handle = OS.gtk_button_new (); if (handle == 0) error (SWT.ERROR_NO_HANDLES); - arrowHandle = OS.gtk_arrow_new (alignment, OS.GTK_SHADOW_OUT); + arrowHandle = OS.gtk_arrow_new (arrow_type, OS.GTK_SHADOW_OUT); if (arrowHandle == 0) error (SWT.ERROR_NO_HANDLES); break; case SWT.TOGGLE: @@ -624,6 +623,20 @@ public void setImage (Image image) { OS.gtk_widget_size_request (handle, requisition); } +void setOrientation () { + if ((style & SWT.RIGHT_TO_LEFT) != 0) { + OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL); + if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, OS.GTK_TEXT_DIR_RTL); + if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, OS.GTK_TEXT_DIR_RTL); + if (arrowHandle != 0) { + switch (style & (SWT.LEFT | SWT.RIGHT)) { + case SWT.LEFT: OS.gtk_arrow_set (arrowHandle, OS.GTK_ARROW_RIGHT, OS.GTK_SHADOW_OUT); break; + case SWT.RIGHT: OS.gtk_arrow_set (arrowHandle, OS.GTK_ARROW_LEFT, OS.GTK_SHADOW_OUT); break; + } + } + } +} + /** * Sets the selection state of the receiver, if it is of type <code>CHECK</code>, * <code>RADIO</code>, or <code>TOGGLE</code>. 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 60e3d55929..2416ed0c67 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 @@ -219,6 +219,13 @@ boolean isTabGroup() { return super.isTabGroup(); } +void setOrientation () { + if ((style & SWT.RIGHT_TO_LEFT) != 0) { + if (scrolledHandle != 0) { + OS.gtk_scrolled_window_set_placement (scrolledHandle, OS.GTK_CORNER_TOP_RIGHT); + } + } +} void register () { super.register (); if (scrolledHandle != 0) display.addWidget (scrolledHandle, this); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java index 23ec7899b2..271e9dc300 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java @@ -320,6 +320,7 @@ void createHandle (int index) { void createWidget (int index) { createHandle (index); + setOrientation (); hookEvents (); register (); } @@ -1114,6 +1115,9 @@ void setKeyState (Event event, GdkEventKey keyEvent) { setInputState (event, keyEvent.state); } +void setOrientation () { +} + int shellMapProc (int handle, int arg0, int user_data) { return 0; } |