This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gui][PATCH] implement gtkSetFont in GtkListPeer
- From: Thomas Fitzsimmons <fitzsim at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Tue, 18 May 2004 18:10:43 -0400
- Subject: [gui][PATCH] implement gtkSetFont in GtkListPeer
Hi,
I committed this patch to java-gui-branch. It implements gtkSetFont in
GtkListPeer so that setting a List's font works. The patch also
includes other small fixes and clean-ups.
Tom
2004-05-18 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkButtonPeer.java: Give gtkSetFont
package access. Don't override setFont.
* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java: Likewise.
* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Give
gtkWidgetRequestFocus package access.
* gnu/java/awt/peer/gtk/GtkLabelPeer.java: Don't override
setFont.
* gnu/java/awt/peer/gtk/GtkListPeer.java: Override gtkSetFont.
Give gtkWidgetRequestFocus package access.
* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java: Give
gtkWidgetRequestFocus package access. Don't override setFont.
* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Don't override
setFont.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
(gtkSetLabel): Move call to gtk_bin_get_child into GDK critical
region.
(gtkSetFont): Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c (gtkSetFont):
Implement.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
(gtkSetFont): Whitespace fix.
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.8.2.2
diff -u -r1.8.2.2 GtkButtonPeer.java
--- gnu/java/awt/peer/gtk/GtkButtonPeer.java 6 May 2004 22:12:22 -0000 1.8.2.2
+++ gnu/java/awt/peer/gtk/GtkButtonPeer.java 18 May 2004 22:03:38 -0000
@@ -54,7 +54,7 @@
public native void connectJObject ();
public native void connectSignals ();
- native void gtkSetFont(String name, int style, int size);
+ native void gtkSetFont (String name, int style, int size);
native void gtkSetLabel(String label);
native void gtkWidgetSetForeground (int red, int green, int blue);
native void gtkActivate ();
@@ -103,10 +103,5 @@
super.getArgs (component, args);
args.add ("label", ((Button)component).getLabel ());
- }
-
- public void setFont (Font f)
- {
- gtkSetFont(f.getName(), f.getStyle(), f.getSize());
}
}
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.2
diff -u -r1.4.8.2 GtkCheckboxPeer.java
--- gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 11 Mar 2004 20:50:12 -0000 1.4.8.2
+++ gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 18 May 2004 22:03:38 -0000
@@ -56,7 +56,7 @@
boolean state);
public native void nativeSetCheckboxGroup (GtkCheckboxGroupPeer group);
public native void connectSignals ();
- public native void gtkSetFont (String name, int style, int size);
+ native void gtkSetFont (String name, int style, int size);
public native void gtkSetLabel (String label);
public GtkCheckboxPeer (Checkbox c)
@@ -85,11 +85,6 @@
public void setLabel (String label)
{
gtkSetLabel (label);
- }
-
- public void setFont (Font f)
- {
- gtkSetFont(f.getName(), f.getStyle(), f.getSize());
}
public void setCheckboxGroup (CheckboxGroup group)
Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.16.2.8
diff -u -r1.16.2.8 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java 17 May 2004 19:49:03 -0000 1.16.2.8
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 18 May 2004 22:03:38 -0000
@@ -93,7 +93,7 @@
native void gtkWidgetSetCursor (int type);
native void gtkWidgetSetBackground (int red, int green, int blue);
native void gtkWidgetSetForeground (int red, int green, int blue);
- native protected void gtkWidgetRequestFocus ();
+ native void gtkWidgetRequestFocus ();
native void gtkWidgetDispatchKeyEvent (int id, long when, int mods,
int keyCode, int keyLocation);
native void gtkSetFont (String name, int style, int size);
Index: gnu/java/awt/peer/gtk/GtkLabelPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.java,v
retrieving revision 1.3.10.1
diff -u -r1.3.10.1 GtkLabelPeer.java
--- gnu/java/awt/peer/gtk/GtkLabelPeer.java 27 Feb 2004 19:43:40 -0000 1.3.10.1
+++ gnu/java/awt/peer/gtk/GtkLabelPeer.java 18 May 2004 22:03:38 -0000
@@ -47,7 +47,7 @@
implements LabelPeer
{
native void create (String text, float alignment);
- native void gtkSetFont(String name, int style, int size);
+ native void gtkSetFont (String name, int style, int size);
native void nativeSetAlignment (float alignment);
native public void setText (String text);
@@ -61,11 +61,6 @@
public GtkLabelPeer (Label l)
{
super (l);
- }
-
- public void setFont (Font f)
- {
- gtkSetFont(f.getName(), f.getStyle(), f.getSize());
}
public void setAlignment (int alignment)
Index: gnu/java/awt/peer/gtk/GtkListPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkListPeer.java,v
retrieving revision 1.7.2.1
diff -u -r1.7.2.1 GtkListPeer.java
--- gnu/java/awt/peer/gtk/GtkListPeer.java 10 May 2004 17:33:30 -0000 1.7.2.1
+++ gnu/java/awt/peer/gtk/GtkListPeer.java 18 May 2004 22:03:38 -0000
@@ -60,8 +60,8 @@
native void create (int rows);
native void connectJObject ();
native void connectSignals ();
-
- native protected void gtkWidgetRequestFocus ();
+ native void gtkSetFont (String name, int style, int size);
+ native void gtkWidgetRequestFocus ();
native void getSize (int rows, int dims[]);
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.7.8.1
diff -u -r1.7.8.1 GtkTextAreaPeer.java
--- gnu/java/awt/peer/gtk/GtkTextAreaPeer.java 6 May 2004 23:29:42 -0000 1.7.8.1
+++ gnu/java/awt/peer/gtk/GtkTextAreaPeer.java 18 May 2004 22:03:38 -0000
@@ -50,7 +50,7 @@
native void create (int width, int height, int scrollbarVisibility);
native void gtkSetFont (String name, int style, int size);
- native protected void gtkWidgetRequestFocus ();
+ native void gtkWidgetRequestFocus ();
void create ()
{
@@ -175,10 +175,5 @@
public void insertText (String str, int pos)
{
insert (str, pos);
- }
-
- public void setFont (Font f)
- {
- gtkSetFont (f.getName (), f.getStyle (), 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.9
diff -u -r1.9 GtkTextFieldPeer.java
--- gnu/java/awt/peer/gtk/GtkTextFieldPeer.java 20 Jan 2004 21:05:38 -0000 1.9
+++ gnu/java/awt/peer/gtk/GtkTextFieldPeer.java 18 May 2004 22:03:38 -0000
@@ -154,11 +154,6 @@
setEchoChar (c);
}
- public void setFont (Font f)
- {
- gtkSetFont (f.getName (), f.getStyle (), f.getSize ());
- }
-
public void handleEvent (AWTEvent e)
{
if (e.getID () == KeyEvent.KEY_PRESSED)
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.8.2.1
diff -u -r1.8.2.1 gnu_java_awt_peer_gtk_GtkButtonPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 6 May 2004 22:12:23 -0000 1.8.2.1
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 18 May 2004 22:03:39 -0000
@@ -96,11 +96,14 @@
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 ();
+
+ label = gtk_bin_get_child (GTK_BIN (ptr));
gtk_label_set_text (GTK_LABEL(label), text);
+
gdk_threads_leave ();
(*env)->ReleaseStringUTFChars (env, jtext, text);
@@ -112,21 +115,19 @@
{
const char *font_name;
void *ptr;
- GtkWidget *button;
GtkWidget *label;
PangoFontDescription *font_desc;
ptr = NSA_GET_PTR (env, obj);
- button = GTK_WIDGET (ptr);
- label = gtk_bin_get_child (GTK_BIN(button));
-
- if (!label)
- return;
-
font_name = (*env)->GetStringUTFChars (env, name, NULL);
gdk_threads_enter();
+
+ label = gtk_bin_get_child (GTK_BIN (ptr));
+
+ if (!label)
+ return;
font_desc = pango_font_description_from_string (font_name);
pango_font_description_set_size (font_desc, size * PANGO_SCALE);
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,v
retrieving revision 1.7.8.1
diff -u -r1.7.8.1 gnu_java_awt_peer_gtk_GtkListPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c 10 May 2004 17:33:32 -0000 1.7.8.1
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c 18 May 2004 22:03:39 -0000
@@ -149,6 +149,41 @@
}
JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkSetFont
+ (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
+{
+ const char *font_name;
+ void *ptr;
+ GtkWidget *list;
+ PangoFontDescription *font_desc;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ gdk_threads_enter();
+
+ list = GTK_WIDGET (TREE_VIEW_FROM_SW (ptr));
+
+ font_name = (*env)->GetStringUTFChars (env, name, NULL);
+
+ font_desc = pango_font_description_from_string (font_name);
+ pango_font_description_set_size (font_desc, size * PANGO_SCALE);
+
+ if (style & AWT_STYLE_BOLD)
+ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
+
+ if (style & AWT_STYLE_ITALIC)
+ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
+
+ gtk_widget_modify_font (GTK_WIDGET (list), font_desc);
+
+ pango_font_description_free (font_desc);
+
+ (*env)->ReleaseStringUTFChars (env, name, font_name);
+
+ gdk_threads_leave();
+}
+
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetRequestFocus
(JNIEnv *env, jobject obj)
{
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.11.8.1
diff -u -r1.11.8.1 gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c 6 May 2004 23:29:42 -0000 1.11.8.1
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c 18 May 2004 22:03:39 -0000
@@ -164,7 +164,7 @@
if (style & AWT_STYLE_ITALIC)
pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
- gtk_widget_modify_font (GTK_WIDGET(text), font_desc);
+ gtk_widget_modify_font (GTK_WIDGET (text), font_desc);
pango_font_description_free (font_desc);