0N/A/*
2362N/A * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
2362N/A * published by the Free Software Foundation. Oracle designates this
0N/A * particular file as subject to the "Classpath" exception as provided
2362N/A * by Oracle in the LICENSE file that accompanied this code.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
0N/A */
0N/Apackage javax.swing.plaf.metal;
0N/A
0N/Aimport java.awt.*;
0N/A
0N/A/**
0N/A * DesktopProperty that only uses font height in configuring font. This
0N/A * is only used on Windows.
0N/A *
0N/A */
0N/Aclass MetalFontDesktopProperty extends com.sun.java.swing.plaf.windows.DesktopProperty {
0N/A /**
0N/A * Maps from metal font theme type as defined in MetalTheme
0N/A * to the corresponding desktop property name.
0N/A */
0N/A private static final String[] propertyMapping = {
0N/A "win.ansiVar.font.height",
0N/A "win.tooltip.font.height",
0N/A "win.ansiVar.font.height",
0N/A "win.menu.font.height",
0N/A "win.frame.captionFont.height",
0N/A "win.menu.font.height"
0N/A };
0N/A
0N/A /**
0N/A * Corresponds to a MetalTheme font type.
0N/A */
0N/A private int type;
0N/A
0N/A
0N/A /**
0N/A * Creates a MetalFontDesktopProperty. The key used to lookup the
0N/A * desktop property is determined from the type of font.
0N/A *
0N/A * @param type MetalTheme font type.
0N/A */
0N/A MetalFontDesktopProperty(int type) {
1620N/A this(propertyMapping[type], type);
0N/A }
0N/A
0N/A /**
0N/A * Creates a MetalFontDesktopProperty.
0N/A *
0N/A * @param key Key used in looking up desktop value.
0N/A * @param toolkit Toolkit used to fetch property from, can be null
0N/A * in which default will be used.
0N/A * @param type Type of font being used, corresponds to MetalTheme font
0N/A * type.
0N/A */
1620N/A MetalFontDesktopProperty(String key, int type) {
1620N/A super(key, null);
0N/A this.type = type;
0N/A }
0N/A
0N/A /**
0N/A * Overriden to create a Font with the size coming from the desktop
0N/A * and the style and name coming from DefaultMetalTheme.
0N/A */
0N/A protected Object configureValue(Object value) {
0N/A if (value instanceof Integer) {
0N/A value = new Font(DefaultMetalTheme.getDefaultFontName(type),
0N/A DefaultMetalTheme.getDefaultFontStyle(type),
0N/A ((Integer)value).intValue());
0N/A }
0N/A return super.configureValue(value);
0N/A }
0N/A
0N/A /**
0N/A * Returns the default font.
0N/A */
0N/A protected Object getDefaultValue() {
0N/A return new Font(DefaultMetalTheme.getDefaultFontName(type),
0N/A DefaultMetalTheme.getDefaultFontStyle(type),
0N/A DefaultMetalTheme.getDefaultFontSize(type));
0N/A }
0N/A}