001: /*
002: * Copyright (c) 2005-2008 Substance Kirill Grouchnikov. All Rights Reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without
005: * modification, are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of Substance Kirill Grouchnikov nor the names of
015: * its contributors may be used to endorse or promote products derived
016: * from this software without specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
020: * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
021: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
022: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
023: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
024: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
025: * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
026: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
027: * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
028: * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
029: */
030: package org.jvnet.substance.fonts;
031:
032: import javax.swing.plaf.FontUIResource;
033:
034: /**
035: * Wrapper around the base Substance font set. Is used to create larger /
036: * smaller font sets.
037: *
038: * @author Kirill Grouchnikov
039: */
040: public class ScaledFontSet implements FontSet {
041: /**
042: * Scale factor. Should be positive.
043: */
044: private float scaleFactor;
045:
046: /**
047: * The base Substance font set.
048: */
049: private FontSet delegate;
050:
051: /**
052: * Creates a wrapper font set.
053: *
054: * @param delegate
055: * The base Substance font set.
056: * @param scaleFactor
057: * Scale factor. Should be positive.
058: */
059: public ScaledFontSet(FontSet delegate, float scaleFactor) {
060: super ();
061: this .delegate = delegate;
062: this .scaleFactor = scaleFactor;
063: }
064:
065: /**
066: * Returns the wrapped font.
067: *
068: * @param systemFont
069: * Original font.
070: * @return Wrapped font.
071: */
072: private FontUIResource getWrappedFont(FontUIResource systemFont) {
073: return new FontUIResource(systemFont.getFontName(), systemFont
074: .getStyle(),
075: (int) (systemFont.getSize() * this .scaleFactor));
076: }
077:
078: public FontUIResource getControlFont() {
079: return this .getWrappedFont(this .delegate.getControlFont());
080: }
081:
082: public FontUIResource getMenuFont() {
083: return this .getWrappedFont(this .delegate.getMenuFont());
084: }
085:
086: public FontUIResource getMessageFont() {
087: return this .getWrappedFont(this .delegate.getMessageFont());
088: }
089:
090: public FontUIResource getSmallFont() {
091: return this .getWrappedFont(this .delegate.getSmallFont());
092: }
093:
094: public FontUIResource getTitleFont() {
095: return this .getWrappedFont(this .delegate.getTitleFont());
096: }
097:
098: public FontUIResource getWindowTitleFont() {
099: return this.getWrappedFont(this.delegate.getWindowTitleFont());
100: }
101: }
|