| /* Copyright (C) 2000 Free Software Foundation |
| |
| This file is part of libgcj. |
| |
| This software is copyrighted work licensed under the terms of the |
| Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
| details. */ |
| |
| package gnu.gcj.xlib; |
| |
| import gnu.gcj.RawData; |
| |
| /** |
| * An X11 Font, implemented as a wrapper around an X11 Font XID and |
| * the associated Xlib XFontStruct structure. |
| * |
| * @author Rolf W. Rasmussen <rolfwr@ii.uib.no> |
| */ |
| public final class Font extends XID |
| { |
| |
| /** |
| * @param lfdNamePattern a font name pattern following the |
| * <em>X Logical Font Description Conventions</em>. |
| */ |
| public Font(Display display, String lfdNamePattern) |
| { |
| this(display, loadFont(display, lfdNamePattern)); |
| } |
| |
| Font(Display display, RawData struct) |
| { |
| super(display, getXIDFromStruct(struct)); |
| structure = struct; |
| } |
| |
| static RawData loadFont(Display display, String lfdNamePattern) |
| { |
| RawData returnValue = null; |
| try |
| { |
| returnValue = loadFontImpl (display,lfdNamePattern); |
| } |
| catch (XException e) |
| { |
| // Throw a descriptive exception, including the font pattern |
| throw new XException ("Font not found: " + lfdNamePattern); |
| } |
| return returnValue; |
| } |
| static native RawData loadFontImpl(Display display, String lfdNamePattern); |
| |
| static native int getXIDFromStruct(RawData structure); |
| |
| public native int getAscent(); |
| public native int getDescent(); |
| public native int getMaxAscent(); |
| public native int getMaxDescent(); |
| |
| public native int getStringWidth(String str); |
| |
| protected native void finalize(); |
| |
| RawData structure; |
| } |