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] FYI: Setting Font size in the constructor


Hi,

I committed the following patch to the java-gui-branch. It allows the
Font size to be set at creation time in the constructor.  If no size is
specified, it will be set to 1.

-David Jee

2004-02-25  David Jee  <djee@redhat.com>

        * gnu/java/awt/peer/gtk/GtkFontPeer.java
        (GtkFontPeer(String,int)): Call the new constructor with size 1.
        (GtkFontPeer(String,int,int)): New constructor with size attribute.
        * gnu/java/awt/peer/gtk/GtkToolkit.java
        (getFontPeer(String,int)): Call the new overload method with size 1.
        (getFontPeer(String,int,int)): New method. Overloaded with size
        attribute.
        (getClasspathFontPeer): Set the size of the font.


Index: gnu/java/awt/peer/gtk/GtkFontPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkFontPeer.java,v
retrieving revision 1.3
diff -u -r1.3 GtkFontPeer.java
--- gnu/java/awt/peer/gtk/GtkFontPeer.java	31 Dec 2003 08:58:30 -0000	1.3
+++ gnu/java/awt/peer/gtk/GtkFontPeer.java	25 Feb 2004 17:07:47 -0000
@@ -62,11 +62,17 @@
       }
   }
 
-  final private String Xname; // uses %d for font size.
+  final private String Xname;
 
   public GtkFontPeer (String name, int style)
   {
-    super(name, style, 12 /* kludge */);
+    // All fonts get a default size of 1 if size is not specified.
+    this(name, style, 1);
+  }
+
+  public GtkFontPeer (String name, int style, int size)
+  {
+    super(name, style, size);
 
     if (bundle != null)
       Xname = bundle.getString (name.toLowerCase () + "." + style);
@@ -90,7 +96,7 @@
 	else
 	  spacing = "c";
 
-        Xname = "-*-*-" + weight + "-" + slant + "-normal-*-%d-*-*-*-" + spacing + "-*-*-*";
+        Xname = "-*-*-" + weight + "-" + slant + "-normal-*-*-" + size + "-*-*-" + spacing + "-*-*-*";
       }
   }
 
Index: gnu/java/awt/peer/gtk/GtkToolkit.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java,v
retrieving revision 1.8.2.1
diff -u -r1.8.2.1 GtkToolkit.java
--- gnu/java/awt/peer/gtk/GtkToolkit.java	24 Feb 2004 22:52:53 -0000	1.8.2.1
+++ gnu/java/awt/peer/gtk/GtkToolkit.java	25 Feb 2004 17:07:47 -0000
@@ -367,10 +367,18 @@
    * @deprecated part of the older "logical font" system in earlier AWT
    * implementations. Our newer Font class uses getClasspathFontPeer.
    */
-  protected FontPeer getFontPeer (String name, int style) 
+  protected FontPeer getFontPeer (String name, int style) {
+    // All fonts get a default size of 1 if size is not specified.
+    return getFontPeer(name, style, 1);
+  }
+
+  /**
+   * Private method that allows size to be set at initialization time.
+   */
+  private FontPeer getFontPeer (String name, int style, int size) 
   {
     try {
-      GtkFontPeer fp = new GtkFontPeer (name, style);
+      GtkFontPeer fp = new GtkFontPeer (name, style, size);
       return fp;
     } catch (MissingResourceException ex) {
       return null;
@@ -389,6 +397,8 @@
       return new GdkClasspathFontPeer (name, attrs);
     else
       {
+        // All fonts get a default size of 1 if size is not specified.
+        int size = 1;
         int style = Font.PLAIN;
 
         if (attrs.containsKey (TextAttribute.WEIGHT))
@@ -405,7 +415,13 @@
               style += Font.ITALIC;
           }
         
-        return (ClasspathFontPeer) this.getFontPeer (name, style);
+        if (attrs.containsKey (TextAttribute.SIZE))
+          {
+            Float fsize = (Float) attrs.get (TextAttribute.SIZE);
+            size = fsize.intValue();
+          }
+ 
+        return (ClasspathFontPeer) this.getFontPeer (name, style, size);
       }
   }
 

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