Source for gnu.gcj.xlib.Font

   1: /* Copyright (C) 2000  Free Software Foundation
   2: 
   3:    This file is part of libgcj.
   4: 
   5: This software is copyrighted work licensed under the terms of the
   6: Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
   7: details.  */
   8: 
   9: package gnu.gcj.xlib;
  10: 
  11: import gnu.gcj.RawData;
  12: 
  13: /**
  14:  * An X11 Font, implemented as a wrapper around an X11 Font XID and
  15:  * the associated Xlib XFontStruct structure.
  16:  *
  17:  * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
  18:  */
  19: public final class Font extends XID
  20: {
  21: 
  22:   /**
  23:    * @param lfdNamePattern a font name pattern following the
  24:    * <em>X Logical Font Description Conventions</em>.
  25:    */
  26:   public Font(Display display, String lfdNamePattern)
  27:   {
  28:     this(display, loadFont(display, lfdNamePattern));
  29:   }
  30: 
  31:   Font(Display display, RawData struct)
  32:   {
  33:     super(display, getXIDFromStruct(struct));
  34:     structure = struct;
  35:   }
  36: 
  37:   static RawData loadFont(Display display, String lfdNamePattern)
  38:   {
  39:     RawData returnValue = null;
  40:     try
  41:     {
  42:       returnValue = loadFontImpl (display,lfdNamePattern);
  43:     }
  44:     catch (XException e)
  45:     {
  46:       // Throw a descriptive exception, including the font pattern
  47:       throw new XException ("Font not found: " + lfdNamePattern);
  48:     }
  49:     return returnValue;
  50:   }
  51:   static native RawData loadFontImpl(Display display, String lfdNamePattern);
  52: 
  53:   static native int getXIDFromStruct(RawData structure);
  54: 
  55:   public native int getAscent();
  56:   public native int getDescent();
  57:   public native int getMaxAscent();
  58:   public native int getMaxDescent();
  59: 
  60:   public native int getStringWidth(String str);
  61: 
  62:   protected native void finalize();
  63: 
  64:   RawData structure;
  65: }