summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
diff options
context:
space:
mode:
authorFelipe Heidrich <fheidric>2010-12-17 21:48:04 +0000
committerFelipe Heidrich <fheidric>2010-12-17 21:48:04 +0000
commit1c8d6d064e4a8a70316f776a21806c7dda140423 (patch)
treea013b3317233078ea393b78e85ad02a9fd262ac2 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
parentd8c7ac1c238569192a4106f29243a448a4e0192d (diff)
downloadeclipse.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.java18
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;
}
}
}