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] 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);
 

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