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

  1. /*
  2.  * @(#)FormattingParameters.java    1.11 95/04/13 Jonathan Payne
  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.  
  20. package awt;
  21.  
  22. /**
  23.  * A class that encapsulates the state parameters relevant for the
  24.  * Formatter.
  25.  *
  26.  * @version 1.11 13 Apr 1995
  27.  * @author Jonathan Payne
  28.  */
  29. public class FormattingParameters {
  30.     public static final byte    PLAIN = 0;
  31.     public static final byte    BOLD = 1;
  32.     public static final byte    ITALIC = 2;
  33.     public static final byte    UNDERLINE = 4;
  34.  
  35.     public static final byte    WRAP_NOT = 0;        /* wrap at newline */
  36.     public static final byte    WRAP_WORD = 1;        /* wrap at word bounderies */
  37.     public static final byte    WRAP_CHAR = 2;        /* wrap when reach end of line */
  38.  
  39.     public static final byte    ALIGN_LEFT = 0;        /* align to left margin */
  40.     public static final byte    ALIGN_CENTER = 1;   /* center text */
  41.     public static final byte    ALIGN_RIGHT = 2;    /* align to right margin */
  42.  
  43.     public byte    wrapStyle = WRAP_WORD;
  44.     public byte    alignment = ALIGN_LEFT;
  45.     public byte    fontAttr = PLAIN;        /* bits (PLAIN, BOLD, ITALIC, UNDERLINE) */
  46.     public byte    fontSize = 14;
  47.     public short   leftMargin = 20;
  48.     public short   rightMargin = 20;
  49.     public short   r, g, b;
  50.     public String  fontName = "TimesRoman";
  51.  
  52.     public FormattingParameters(FormattingParameters parent) {
  53.     if (parent != null) {
  54.         copy(parent);
  55.     }
  56.     }
  57.  
  58.     public String toString() {
  59.     return "FP[" + buildFontName() + ": color = (" + r + ", " + g + ", " + b + ")]";
  60.     }
  61.  
  62.     public String buildFontName() {
  63.     String name = fontName;
  64.  
  65.     /* REMIND: Kludged for times-roman right now. */
  66.     switch (fontAttr & (BOLD | ITALIC)) {
  67.     case 0:
  68.         name = "TimesRoman";
  69.         break;
  70.  
  71.     case BOLD:
  72.         name = name + ":bold";
  73.         break;
  74.  
  75.     case (BOLD | ITALIC):
  76.         name = name + ":bolditalic";
  77.         break;
  78.  
  79.     case ITALIC:
  80.         name = name + ":italic";
  81.         break;
  82.     }
  83.     name = name + ":" + fontSize;
  84.  
  85.     return name;
  86.     }
  87. }
  88.     
  89.