This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Fixes for peers' setFont implementations
- From: Thomas Fitzsimmons <fitzsim at redhat dot com>
- To: "java-patches at gcc dot gnu dot org" <java-patches at gcc dot gnu dot org>
- Date: 29 Jul 2003 14:55:37 -0400
- Subject: 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();