home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / awt / wsfontmetrics.java < prev    next >
Text File  |  1995-08-11  |  2KB  |  69 lines

  1. /*
  2.  * @(#)WSFontMetrics.java    1.1 95/04/10 Jim Graham
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19. package awt;
  20.  
  21. import java.lang.*;
  22. import awt.*;
  23.  
  24. /** A font metrics object for a WServer font.
  25.  * @version 1.1 10 Apr 1995
  26.  * @author Jim Graham
  27.  */
  28. public class WSFontMetrics extends FontMetrics {
  29.     private WServer wServer;
  30.     private Window drawSurface;
  31.  
  32.     /**
  33.      * Calculate the metrics from the given WServer and font.
  34.      */
  35.     WSFontMetrics(Window w, Font f) {
  36.     super(f);
  37.     wServer = w.wServer;
  38.     drawSurface = w;
  39.     wServer.loadFontMetrics(w, this);
  40.     }
  41.  
  42.     /** Return the width of the specified character in this Font. */
  43.     public int charWidth(int ch) {
  44.     if (widths != null)
  45.         return widths[ch];
  46.     else {
  47.         char data[] = new char[1];
  48.  
  49.         data[0] = (char) ch;
  50.         return wServer.fontCharsWidth(this, data, 0, 1);
  51.     }
  52.     }
  53.  
  54.     /** Return the width of the specified string in this Font. */
  55.     public int stringWidth(String s) {
  56.     return wServer.fontStringWidth(this, s);
  57.     }
  58.  
  59.     /** Return the width of the specified char[] in this Font. */
  60.     public int charsWidth(char data[], int off, int len) {
  61.     return wServer.fontCharsWidth(this, data, off, len);
  62.     }
  63.  
  64.     /** Return the width of the specified byte[] in this Font. */
  65.     public int bytesWidth(byte data[], int off, int len) {
  66.     return wServer.fontBytesWidth(this, data, off, len);
  67.     }
  68. }
  69.