diff options
author | Felipe Heidrich <fheidric> | 2010-12-17 21:48:04 +0000 |
---|---|---|
committer | Felipe Heidrich <fheidric> | 2010-12-17 21:48:04 +0000 |
commit | 1c8d6d064e4a8a70316f776a21806c7dda140423 (patch) | |
tree | a013b3317233078ea393b78e85ad02a9fd262ac2 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java | |
parent | d8c7ac1c238569192a4106f29243a448a4e0192d (diff) | |
download | eclipse.platform.swt-1c8d6d064e4a8a70316f776a21806c7dda140423.tar.gz eclipse.platform.swt-1c8d6d064e4a8a70316f776a21806c7dda140423.tar.xz eclipse.platform.swt-1c8d6d064e4a8a70316f776a21806c7dda140423.zip |
Bug 29779 - BIDI: lack of ability to change orientation of widget in runtime [no public methods yet]
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java | 18 |
1 files changed, 10 insertions, 8 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 736b07f2c3..04edf8a6d9 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 @@ -868,16 +868,18 @@ public void setImage (Image image) { _setAlignment (style); } -void setOrientation () { - super.setOrientation (); - if ((style & SWT.RIGHT_TO_LEFT) != 0) { - if (boxHandle != 0) OS.gtk_widget_set_direction (boxHandle, 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); +void setOrientation (boolean create) { + super.setOrientation (create); + if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) { + int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR; + if (boxHandle != 0) OS.gtk_widget_set_direction (boxHandle, dir); + if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, dir); + if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, dir); if (arrowHandle != 0) { + dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_ARROW_RIGHT : OS.GTK_ARROW_LEFT; 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; + case SWT.LEFT: OS.gtk_arrow_set (arrowHandle, dir, OS.GTK_SHADOW_OUT); break; + case SWT.RIGHT: OS.gtk_arrow_set (arrowHandle, dir, OS.GTK_SHADOW_OUT); break; } } } |