|
What this is
Other links
The source code/* * SyntaxStyle.java - A simple text style class * Copyright (C) 1999 Slava Pestov * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.gjt.sp.jedit.syntax; import java.awt.*; import java.util.StringTokenizer; /** * A simple text style class. It can specify the color, italic flag, * and bold flag of a run of text. * @author Slava Pestov * @version $Id: SyntaxStyle.java,v 1.1.1.1 2001/08/20 22:31:42 gfx Exp $ */ public class SyntaxStyle { /** * Creates a new SyntaxStyle. * @param color The text color * @param italic True if the text should be italics * @param bold True if the text should be bold */ public SyntaxStyle(Color color, boolean italic, boolean bold) { this.color = color; this.italic = italic; this.bold = bold; } /** * Returns the color specified in this style. */ public Color getColor() { return color; } /** * Returns true if no font styles are enabled. */ public boolean isPlain() { return !(bold || italic); } /** * Returns true if italics is enabled for this style. */ public boolean isItalic() { return italic; } /** * Returns true if boldface is enabled for this style. */ public boolean isBold() { return bold; } /** * Returns the specified font, but with the style's bold and * italic flags applied. */ public Font getStyledFont(Font font) { if(font == null) throw new NullPointerException("font param must not" + " be null"); if(font.equals(lastFont)) return lastStyledFont; lastFont = font; lastStyledFont = new Font(font.getFamily(), (bold ? Font.BOLD : 0) | (italic ? Font.ITALIC : 0), font.getSize()); return lastStyledFont; } /** * Returns the font metrics for the styled font. */ public FontMetrics getFontMetrics(Font font) { if(font == null) throw new NullPointerException("font param must not" + " be null"); if(font.equals(lastFont) && fontMetrics != null) return fontMetrics; lastFont = font; lastStyledFont = new Font(font.getFamily(), (bold ? Font.BOLD : 0) | (italic ? Font.ITALIC : 0), font.getSize()); fontMetrics = Toolkit.getDefaultToolkit().getFontMetrics( lastStyledFont); return fontMetrics; } /** * Sets the foreground color and font of the specified graphics * context to that specified in this style. * @param gfx The graphics context * @param font The font to add the styles to */ public void setGraphicsFlags(Graphics gfx, Font font) { Font _font = getStyledFont(font); gfx.setFont(_font); gfx.setColor(color); } /** * Returns a string representation of this object. */ public String toString() { return getClass().getName() + "[color=" + color + (italic ? ",italic" : "") + (bold ? ",bold" : "") + "]"; } // private members private Color color; private boolean italic; private boolean bold; private Font lastFont; private Font lastStyledFont; private FontMetrics fontMetrics; } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.