This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gui] [PATCH] Fix setLabel in CheckboxPeer


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)
 {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]