// --------------------------------------- // Restricted Focus Viewer (RFV) Program // Version 2.1 // Language: Java 2 // October, 2000 // Copyright (C) 2000 Anthony R. Jansen // --------------------------------------- // 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 (at your option) 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. // --------------------------------------- // RFV_Text_Line.java // // Class for drawing a single line of // text, specifying its font and location. // --------------------------------------- import java.awt.*; public class RFV_Text_Line extends RFV_Display_Element { // Key text line variables and components // -------------------------------------- private String label; private Font font; private FontMetrics font_metrics; private Color color; private int height_offset; // Constant private static final int EXTRA_WIDTH = 6; private static final int EXTRA_HEIGHT = 6; // Constructor which accepts the label and font of the text line // ------------------------------------------------------------- public RFV_Text_Line(String l, Font f, FontMetrics fm, Color col) { super(true, false); // Initialize class elements // ------------------------- label = l; font = f; font_metrics = fm; color = col; calculateTextSize(); } // Calculates the size of the text based on // the label and the metrics of the font // ---------------------------------------- private void calculateTextSize() { height = font_metrics.getHeight() + EXTRA_HEIGHT; width = font_metrics.stringWidth(label) + EXTRA_WIDTH; height_offset = ((font_metrics.getLeading() + EXTRA_HEIGHT) / 2) + font_metrics.getAscent(); } // Draws the centered text line // ---------------------------- public void draw(Graphics g) { g.setColor(color); g.setFont(font); g.drawString(label, x_offset + (EXTRA_WIDTH / 2), y_offset + height_offset); } }