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]

Fixes for peers' setFont implementations


Hello,

This patch fixes the implementations of GtkTextFieldPeer,
GtkTextAreaPeer and GtkButtonPeer's setFont methods.  Pango's font
setting mechanisms more closely resemble Java's, which eliminates the
need for XLFD-style font naming.  Also, pango_font_description_set_size
expects the size parameter to be in pango units, not device units.

With this patch, it is possible to change the font family and size for
the TextField, TextArea, and Button components.   Without this patch,
attempting to change the default font on one of these widgets would
cause the text to be displayed at "size 0".

Please review and comment,
Tom

2003-07-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java: Call getName rather
	than getXLFD.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(gtkSetFont): Scale size argument by PANGO_SCALE.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c:
	Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c:
	Likewise.

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.3
diff -u -b -B -r1.3 GtkButtonPeer.java
--- gnu/java/awt/peer/gtk/GtkButtonPeer.java	13 Jul 2003 15:09:20 -0000	1.3
+++ gnu/java/awt/peer/gtk/GtkButtonPeer.java	29 Jul 2003 18:31:56 -0000
@@ -95,6 +95,6 @@
 
   public void setFont (Font f)
   {
-    gtkSetFont(((GtkFontPeer)f.getPeer()).getXLFD(), f.getSize());
+    gtkSetFont(f.getName(), f.getSize());
   }
 }
Index: gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,v
retrieving revision 1.3
diff -u -b -B -r1.3 GtkTextAreaPeer.java
--- gnu/java/awt/peer/gtk/GtkTextAreaPeer.java	13 Jul 2003 15:09:20 -0000	1.3
+++ gnu/java/awt/peer/gtk/GtkTextAreaPeer.java	29 Jul 2003 18:31:56 -0000
@@ -107,6 +107,6 @@
 
   public void setFont (Font f)
   {
-    gtkSetFont(((GtkFontPeer)f.getPeer()).getXLFD(), f.getSize());
+    gtkSetFont(f.getName(), f.getSize());
   }
 }
Index: gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,v
retrieving revision 1.5
diff -u -b -B -r1.5 GtkTextFieldPeer.java
--- gnu/java/awt/peer/gtk/GtkTextFieldPeer.java	23 Jul 2003 22:26:35 -0000	1.5
+++ gnu/java/awt/peer/gtk/GtkTextFieldPeer.java	29 Jul 2003 18:31:56 -0000
@@ -104,7 +104,7 @@
 
   public void setFont (Font f)
   {
-    gtkSetFont(((GtkFontPeer)f.getPeer()).getXLFD(), f.getSize());
+    gtkSetFont(f.getName(), f.getSize());
   }
 
   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.3
diff -u -b -B -r1.3 gnu_java_awt_peer_gtk_GtkButtonPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c	30 Jun 2003 23:53:29 -0000	1.3
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c	29 Jul 2003 18:31:56 -0000
@@ -42,11 +42,11 @@
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
   (JNIEnv *env, jobject obj)
 {
-  GtkButton *button;
+  GtkWidget *button;
 
   gdk_threads_enter ();
   button = gtk_button_new();
-  gtk_widget_show (GTK_WIDGET(button));
+  gtk_widget_show (button);
   gdk_threads_leave ();
   NSA_SET_PTR (env, obj, button);
 }
@@ -74,8 +74,10 @@
   gdk_threads_enter();
 
   font_desc = pango_font_description_from_string (font_name);
-  pango_font_description_set_size (font_desc, size);
+  pango_font_description_set_size (font_desc, size * PANGO_SCALE);
+
   gtk_widget_modify_font (GTK_WIDGET(label), font_desc);
+
   pango_font_description_free (font_desc);
 
   gdk_threads_leave();
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c,v
retrieving revision 1.4
diff -u -b -B -r1.4 gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c	23 Jul 2003 22:26:35 -0000	1.4
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c	29 Jul 2003 18:31:56 -0000
@@ -117,8 +117,10 @@
   gdk_threads_enter();
 
   font_desc = pango_font_description_from_string (font_name);
-  pango_font_description_set_size (font_desc, size);
+  pango_font_description_set_size (font_desc, size * PANGO_SCALE);
+
   gtk_widget_modify_font (GTK_WIDGET(entry), font_desc);
+
   pango_font_description_free (font_desc);
 
   gdk_threads_leave();
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c,v
retrieving revision 1.3
diff -u -b -B -r1.3 gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c	30 Jun 2003 23:53:29 -0000	1.3
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c	29 Jul 2003 18:31:56 -0000
@@ -176,8 +176,10 @@
   gdk_threads_enter();
 
   font_desc = pango_font_description_from_string (font_name);
-  pango_font_description_set_size (font_desc, size);
+  pango_font_description_set_size (font_desc, size * PANGO_SCALE);
+
   gtk_widget_modify_font (GTK_WIDGET(text), font_desc);
+
   pango_font_description_free (font_desc);
   
   gdk_threads_leave();

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