Bug 567214 - [GTK4] GtkLabel set_wrap signature change
- Organized GtkLabel functions
- Removed pre 3.16 comment as we support 3.20 and above
- Added gtk_label_set_wrap & gtk_label_set_wrap_mode as the GTK4
alternative to gtk_label_set_line_wrap & gtk_label_set_line_wrap_mode
Change-Id: I1793112df84d0bf1ca2c3aced758aa5c808989a7
Signed-off-by: Paul D'Pong <sdamrong@redhat.com>
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 b2dc9df..8eafe9a 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
@@ -7144,7 +7144,15 @@
(JNIEnv *env, jclass that, jlong arg0, jboolean arg1)
{
GTK_NATIVE_ENTER(env, that, gtk_1label_1set_1line_1wrap_FUNC);
+/*
gtk_label_set_line_wrap((GtkLabel *)arg0, (gboolean)arg1);
+*/
+ {
+ GTK_LOAD_FUNCTION(fp, gtk_label_set_line_wrap)
+ if (fp) {
+ ((void (CALLING_CONVENTION*)(GtkLabel *, gboolean))fp)((GtkLabel *)arg0, (gboolean)arg1);
+ }
+ }
GTK_NATIVE_EXIT(env, that, gtk_1label_1set_1line_1wrap_FUNC);
}
#endif
@@ -7154,7 +7162,15 @@
(JNIEnv *env, jclass that, jlong arg0, jint arg1)
{
GTK_NATIVE_ENTER(env, that, gtk_1label_1set_1line_1wrap_1mode_FUNC);
+/*
gtk_label_set_line_wrap_mode((GtkLabel *)arg0, (PangoWrapMode)arg1);
+*/
+ {
+ GTK_LOAD_FUNCTION(fp, gtk_label_set_line_wrap_mode)
+ if (fp) {
+ ((void (CALLING_CONVENTION*)(GtkLabel *, PangoWrapMode))fp)((GtkLabel *)arg0, (PangoWrapMode)arg1);
+ }
+ }
GTK_NATIVE_EXIT(env, that, gtk_1label_1set_1line_1wrap_1mode_FUNC);
}
#endif
@@ -7197,20 +7213,48 @@
}
#endif
+#ifndef NO_gtk_1label_1set_1wrap
+JNIEXPORT void JNICALL GTK_NATIVE(gtk_1label_1set_1wrap)
+ (JNIEnv *env, jclass that, jlong arg0, jboolean arg1)
+{
+ GTK_NATIVE_ENTER(env, that, gtk_1label_1set_1wrap_FUNC);
+/*
+ gtk_label_set_wrap((GtkLabel *)arg0, (gboolean)arg1);
+*/
+ {
+ GTK_LOAD_FUNCTION(fp, gtk_label_set_wrap)
+ if (fp) {
+ ((void (CALLING_CONVENTION*)(GtkLabel *, gboolean))fp)((GtkLabel *)arg0, (gboolean)arg1);
+ }
+ }
+ GTK_NATIVE_EXIT(env, that, gtk_1label_1set_1wrap_FUNC);
+}
+#endif
+
+#ifndef NO_gtk_1label_1set_1wrap_1mode
+JNIEXPORT void JNICALL GTK_NATIVE(gtk_1label_1set_1wrap_1mode)
+ (JNIEnv *env, jclass that, jlong arg0, jint arg1)
+{
+ GTK_NATIVE_ENTER(env, that, gtk_1label_1set_1wrap_1mode_FUNC);
+/*
+ gtk_label_set_wrap_mode((GtkLabel *)arg0, (PangoWrapMode)arg1);
+*/
+ {
+ GTK_LOAD_FUNCTION(fp, gtk_label_set_wrap_mode)
+ if (fp) {
+ ((void (CALLING_CONVENTION*)(GtkLabel *, PangoWrapMode))fp)((GtkLabel *)arg0, (PangoWrapMode)arg1);
+ }
+ }
+ GTK_NATIVE_EXIT(env, that, gtk_1label_1set_1wrap_1mode_FUNC);
+}
+#endif
+
#ifndef NO_gtk_1label_1set_1xalign
JNIEXPORT void JNICALL GTK_NATIVE(gtk_1label_1set_1xalign)
(JNIEnv *env, jclass that, jlong arg0, jfloat arg1)
{
GTK_NATIVE_ENTER(env, that, gtk_1label_1set_1xalign_FUNC);
-/*
gtk_label_set_xalign((GtkLabel *)arg0, (gfloat)arg1);
-*/
- {
- GTK_LOAD_FUNCTION(fp, gtk_label_set_xalign)
- if (fp) {
- ((void (CALLING_CONVENTION*)(GtkLabel *, gfloat))fp)((GtkLabel *)arg0, (gfloat)arg1);
- }
- }
GTK_NATIVE_EXIT(env, that, gtk_1label_1set_1xalign_FUNC);
}
#endif
@@ -7220,15 +7264,7 @@
(JNIEnv *env, jclass that, jlong arg0, jfloat arg1)
{
GTK_NATIVE_ENTER(env, that, gtk_1label_1set_1yalign_FUNC);
-/*
gtk_label_set_yalign((GtkLabel *)arg0, (gfloat)arg1);
-*/
- {
- GTK_LOAD_FUNCTION(fp, gtk_label_set_yalign)
- if (fp) {
- ((void (CALLING_CONVENTION*)(GtkLabel *, gfloat))fp)((GtkLabel *)arg0, (gfloat)arg1);
- }
- }
GTK_NATIVE_EXIT(env, that, gtk_1label_1set_1yalign_FUNC);
}
#endif
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 eb04f12..5f113aa 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
@@ -567,6 +567,8 @@
"gtk_1label_1set_1text__JJ",
"gtk_1label_1set_1text__J_3B",
"gtk_1label_1set_1text_1with_1mnemonic",
+ "gtk_1label_1set_1wrap",
+ "gtk_1label_1set_1wrap_1mode",
"gtk_1label_1set_1xalign",
"gtk_1label_1set_1yalign",
"gtk_1list_1store_1append",
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 25eba73..ba5f5ca 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
@@ -565,6 +565,8 @@
gtk_1label_1set_1text__JJ_FUNC,
gtk_1label_1set_1text__J_3B_FUNC,
gtk_1label_1set_1text_1with_1mnemonic_FUNC,
+ gtk_1label_1set_1wrap_FUNC,
+ gtk_1label_1set_1wrap_1mode_FUNC,
gtk_1label_1set_1xalign_FUNC,
gtk_1label_1set_1yalign_FUNC,
gtk_1list_1store_1append_FUNC,
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GTK.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GTK.java
index aade800..14598bb 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GTK.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GTK.java
@@ -1276,22 +1276,6 @@
* @param expand cast=(gboolean)
*/
public static final native void gtk_widget_set_vexpand(long widget, boolean expand);
- //since Gtk 3.16. For pre-gtk3.16, use gtk_misc_set_alignment(..)
- /**
- * @method flags=dynamic
- * @param label cast=(GtkLabel *)
- * @param xalign cast=(gfloat)
- *
- */
- public static final native void gtk_label_set_xalign(long label, float xalign);
- //since Gtk 3.16. For pre-gtk3.16, use gtk_misc_set_alignment(..)
- /**
- * @method flags=dynamic
- * @param label cast=(GtkLabel *)
- * @param yalign cast=(gfloat)
- *
- */
- public static final native void gtk_label_set_yalign(long label, float yalign);
/**
* @param widget cast=(GtkWidget *)
* @param gtk_align cast=(GtkAlign)
@@ -1565,15 +1549,17 @@
*/
/* [GTK4 only] */
public static final native boolean gtk_init_check();
- /** @param label cast=(GtkLabel *) */
- public static final native long gtk_label_get_layout(long label);
+
+ /* GtkLabel */
public static final native long gtk_label_get_type();
- /** @param label cast=(GtkLabel *) */
- public static final native int gtk_label_get_mnemonic_keyval(long label);
/** @param label cast=(const gchar *) */
public static final native long gtk_label_new(byte[] label);
/** @param str cast=(const gchar *) */
public static final native long gtk_label_new_with_mnemonic(byte[] str);
+ /** @param label cast=(GtkLabel *) */
+ public static final native long gtk_label_get_layout(long label);
+ /** @param label cast=(GtkLabel *) */
+ public static final native int gtk_label_get_mnemonic_keyval(long label);
/**
* @param label cast=(GtkLabel *)
* @param attrs cast=(PangoAttrList *)
@@ -1586,16 +1572,6 @@
public static final native void gtk_label_set_justify(long label, int jtype);
/**
* @param label cast=(GtkLabel *)
- * @param wrap cast=(gboolean)
- */
- public static final native void gtk_label_set_line_wrap(long label, boolean wrap);
- /**
- * @param label cast=(GtkLabel *)
- * @param wrap_mode cast=(PangoWrapMode)
- */
- public static final native void gtk_label_set_line_wrap_mode(long label, int wrap_mode);
- /**
- * @param label cast=(GtkLabel *)
* @param str cast=(const gchar *)
*/
public static final native void gtk_label_set_text(long label, long str);
@@ -1610,6 +1586,48 @@
*/
public static final native void gtk_label_set_text_with_mnemonic(long label, byte[] str);
/**
+ * @param label cast=(GtkLabel *)
+ * @param xalign cast=(gfloat)
+ *
+ */
+ public static final native void gtk_label_set_xalign(long label, float xalign);
+ /**
+ * @param label cast=(GtkLabel *)
+ * @param yalign cast=(gfloat)
+ *
+ */
+ public static final native void gtk_label_set_yalign(long label, float yalign);
+
+ /* GtkLabel [GTK3 only] */
+ /**
+ * @method flags=dynamic
+ * @param label cast=(GtkLabel *)
+ * @param wrap cast=(gboolean)
+ */
+ public static final native void gtk_label_set_line_wrap(long label, boolean wrap);
+ /**
+ * @method flags=dynamic
+ * @param label cast=(GtkLabel *)
+ * @param wrap_mode cast=(PangoWrapMode)
+ */
+ public static final native void gtk_label_set_line_wrap_mode(long label, int wrap_mode);
+
+ /* GtkLabel [GTK4 only] */
+ /**
+ * @method flags=dynamic
+ * @param label cast=(GtkLabel *)
+ * @param wrap cast=(gboolean)
+ */
+ public static final native void gtk_label_set_wrap(long label, boolean wrap);
+ /**
+ * @method flags=dynamic
+ * @param label cast=(GtkLabel *)
+ * @param wrap_mode cast=(PangoWrapMode)
+ */
+ public static final native void gtk_label_set_wrap_mode(long label, int wrap_mode);
+
+
+ /**
* @param list_store cast=(GtkListStore *)
* @param iter cast=(GtkTreeIter *)
*/
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 b5ef710..b521508 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
@@ -379,8 +379,13 @@
}
if ((style & SWT.WRAP) != 0) {
- GTK.gtk_label_set_line_wrap (labelHandle, true);
- GTK.gtk_label_set_line_wrap_mode (labelHandle, OS.PANGO_WRAP_WORD_CHAR);
+ if (GTK.GTK4) {
+ GTK.gtk_label_set_wrap(labelHandle, true);
+ GTK.gtk_label_set_wrap_mode(labelHandle, OS.PANGO_WRAP_WORD_CHAR);
+ } else {
+ GTK.gtk_label_set_line_wrap (labelHandle, true);
+ GTK.gtk_label_set_line_wrap_mode (labelHandle, OS.PANGO_WRAP_WORD_CHAR);
+ }
}
}
if (GTK.GTK4) {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java
index b3e6fb8..05d4bd3 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java
@@ -164,22 +164,24 @@
}
}
if (message.length () > 0) {
- byte [] buffer = Converter.wcsToMbcs (message, true);
- long box = GTK.gtk_box_new (GTK.GTK_ORIENTATION_HORIZONTAL, 0);
- GTK.gtk_box_set_homogeneous (box, false);
- if (box == 0) error (SWT.ERROR_NO_HANDLES);
+ byte[] buffer = Converter.wcsToMbcs(message, true);
+ long box = GTK.gtk_box_new(GTK.GTK_ORIENTATION_HORIZONTAL, 0);
+ if (box == 0) error(SWT.ERROR_NO_HANDLES);
long label = GTK.gtk_label_new (buffer);
- if (label == 0) error (SWT.ERROR_NO_HANDLES);
+ if (label == 0) error(SWT.ERROR_NO_HANDLES);
+
if (GTK.GTK4) {
GTK.gtk_box_append(box, label);
+ GTK.gtk_label_set_wrap(label, true);
} else {
- GTK.gtk_container_add (box, label);
- GTK.gtk_widget_show (label);
+ GTK.gtk_container_add(box, label);
+ GTK.gtk_widget_show(label);
+ GTK.gtk_label_set_line_wrap(label, true);
}
- GTK.gtk_label_set_line_wrap (label, true);
- GTK.gtk_label_set_justify (label, GTK.GTK_JUSTIFY_CENTER);
- GTK.gtk_file_chooser_set_extra_widget (handle, box);
+ GTK.gtk_box_set_homogeneous(box, false);
+ GTK.gtk_label_set_justify(label, GTK.GTK_JUSTIFY_CENTER);
+ GTK.gtk_file_chooser_set_extra_widget(handle, box);
}
String answer = null;
display.addIdleProc ();
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java
index ea1cd2d..b7ad6ba 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java
@@ -290,8 +290,13 @@
}
if ((style & SWT.SEPARATOR) != 0) return;
if ((style & SWT.WRAP) != 0) {
- GTK.gtk_label_set_line_wrap (labelHandle, true);
- GTK.gtk_label_set_line_wrap_mode (labelHandle, OS.PANGO_WRAP_WORD_CHAR);
+ if (GTK.GTK4) {
+ GTK.gtk_label_set_wrap(labelHandle, true);
+ GTK.gtk_label_set_wrap_mode(labelHandle, OS.PANGO_WRAP_WORD_CHAR);
+ } else {
+ GTK.gtk_label_set_line_wrap (labelHandle, true);
+ GTK.gtk_label_set_line_wrap_mode (labelHandle, OS.PANGO_WRAP_WORD_CHAR);
+ }
}
// In GTK 3 font description is inherited from parent widget which is not how SWT has always worked,
// reset to default font to get the usual behavior