This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gui] [PATCH] Fix setLabel in CheckboxPeer
- From: David Jee <djee at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: 11 Mar 2004 15:55:18 -0500
- Subject: [gui] [PATCH] Fix setLabel in CheckboxPeer
- Organization:
Hello.
I committed the following patch to the java-gui-branch, to fix the
setLabel() method in CheckboxPeer. Using GObject properties to change
the text has the side effect of erasing the label's font properties.
We'll use gtk_label_set_label() to change the text instead.
-David Jee
2004-03-11 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
(gtkSetLabel): New native method declaration.
(setLabel): Use gtkSetLabel.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetLabel): New method.
Index: gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,v
retrieving revision 1.4.8.1
diff -u -r1.4.8.1 GtkCheckboxPeer.java
--- gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 27 Feb 2004 19:43:40 -0000 1.4.8.1
+++ gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 8 Mar 2004 19:37:42 -0000
@@ -57,6 +57,7 @@
public native void nativeSetCheckboxGroup (GtkCheckboxGroupPeer group);
public native void connectSignals ();
public native void gtkSetFont (String name, int style, int size);
+ public native void gtkSetLabel (String label);
public GtkCheckboxPeer (Checkbox c)
{
@@ -83,7 +84,7 @@
public void setLabel (String label)
{
- set ("label", label);
+ gtkSetLabel (label);
}
public void setFont (Font f)
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,v
retrieving revision 1.4.8.1
diff -u -r1.4.8.1 gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 27 Feb 2004 19:43:41 -0000 1.4.8.1
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 8 Mar 2004 19:37:45 -0000
@@ -204,6 +204,29 @@
(*env)->ReleaseStringUTFChars (env, name, font_name);
}
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetLabel
+ (JNIEnv *env, jobject obj, jstring label)
+{
+ const char *str;
+ void *ptr;
+ GtkWidget *label_widget;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ label_widget = gtk_bin_get_child (GTK_BIN(ptr));
+
+ str = (*env)->GetStringUTFChars (env, label, 0);
+
+ gdk_threads_enter ();
+
+ gtk_label_set_label (GTK_LABEL (label_widget), str);
+
+ gdk_threads_leave ();
+
+ (*env)->ReleaseStringUTFChars (env, label, str);
+}
+
static void
item_toggled (GtkToggleButton *item, jobject peer)
{