This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[PATCH] fix setLabel for Button peers
- From: David Jee <djee at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: 09 Feb 2004 14:37:18 -0500
- Subject: [PATCH] fix setLabel for Button peers
- Organization:
Hello,
Here is a patch that fixes how we set labels for Button peers. Current
implementation uses the generic set() method in GtkComponentPeer to
change the "label" property of the Button peer. This has the side
effect of wiping out the peer's font style. This patch works around
this by using the gtk_label_set_text() method, which does not alter the
peer's font style.
Is it OK to commit?
-David Jee
2004-02-09 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkButtonPeer.java
(gtkSetLabel): New native method definition.
(setLabel): Use gtkSetLabel.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
(Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel): New method.
Index: gnu/java/awt/peer/gtk/GtkButtonPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java,v
retrieving revision 1.7
diff -u -r1.7 GtkButtonPeer.java
--- gnu/java/awt/peer/gtk/GtkButtonPeer.java 11 Dec 2003 13:50:50 -0000 1.7
+++ gnu/java/awt/peer/gtk/GtkButtonPeer.java 9 Feb 2004 19:24:33 -0000
@@ -54,6 +54,7 @@
public native void connectSignals ();
native void gtkSetFont(String name, int style, int size);
+ native void gtkSetLabel(String label);
native void gtkWidgetSetForeground (int red, int green, int blue);
public GtkButtonPeer (Button b)
@@ -63,7 +64,7 @@
public void setLabel (String label)
{
- set ("label", label);
+ gtkSetLabel(label);
}
public void handleEvent (AWTEvent e)
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,v
retrieving revision 1.7
diff -u -r1.7 gnu_java_awt_peer_gtk_GtkButtonPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 13 Dec 2003 01:15:47 -0000 1.7
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 9 Feb 2004 19:24:36 -0000
@@ -88,6 +88,25 @@
}
JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel
+ (JNIEnv *env, jobject obj, jstring jtext)
+{
+ const char *text;
+ GtkWidget *label;
+ void *ptr;
+
+ ptr = NSA_GET_PTR (env, obj);
+ label = gtk_bin_get_child (GTK_BIN(ptr));
+ text = (*env)->GetStringUTFChars (env, jtext, NULL);
+
+ gdk_threads_enter ();
+ gtk_label_set_text (GTK_LABEL(label), text);
+ gdk_threads_leave ();
+
+ (*env)->ReleaseStringUTFChars (env, jtext, text);
+}
+
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont
(JNIEnv *env, jobject obj, jstring name, jint style, jint size)
{