/* 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 */ public final class Font extends XID { /** * @param lfdNamePattern a font name pattern following the * X Logical Font Description Conventions. */ 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; }