001/* 002 * Copyright (c) 2002-2007 JGoodies Karsten Lentzsch. 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 JGoodies Karsten Lentzsch 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 031package com.jgoodies.forms.util; 032 033import java.awt.Component; 034 035/** 036 * An interface that describes how to convert general sizes to pixel sizes. 037 * For example, <i>dialog units</i> require a conversion that honors 038 * the font and resolution. The {@link com.jgoodies.forms.layout.Sizes} class 039 * delegates all size conversions to an implementation of this interface. 040 * 041 * @author Karsten Lentzsch 042 * @version $Revision$ 043 * @see com.jgoodies.forms.layout.Sizes 044 * @see com.jgoodies.forms.layout.ConstantSize 045 * @see AbstractUnitConverter 046 * @see DefaultUnitConverter 047 */ 048public interface UnitConverter { 049 050 /** 051 * Converts Inches and returns pixels using the specified resolution. 052 * 053 * @param in the Inches 054 * @param component the component that provides the graphics object 055 * @return the given Inches as pixels 056 */ 057 int inchAsPixel(double in, Component component); 058 059 /** 060 * Converts Millimeters and returns pixels using the resolution of the 061 * given component's graphics object. 062 * 063 * @param mm Millimeters 064 * @param component the component that provides the graphics object 065 * @return the given Millimeters as pixels 066 */ 067 int millimeterAsPixel(double mm, Component component); 068 069 /** 070 * Converts Centimeters and returns pixels using the resolution of the 071 * given component's graphics object. 072 * 073 * @param cm Centimeters 074 * @param component the component that provides the graphics object 075 * @return the given Centimeters as pixels 076 */ 077 int centimeterAsPixel(double cm, Component component); 078 079 /** 080 * Converts DTP Points and returns pixels using the resolution of the 081 * given component's graphics object. 082 * 083 * @param pt DTP Points 084 * @param component the component that provides the graphics object 085 * @return the given Points as pixels 086 */ 087 int pointAsPixel(int pt, Component component); 088 089 /** 090 * Converts horizontal dialog units and returns pixels. 091 * Honors the resolution, dialog font size, platform and look&feel. 092 * 093 * @param dluX the horizontal dialog units 094 * @param component a component that provides the font and graphics 095 * @return the given horizontal dialog units as pixels 096 */ 097 int dialogUnitXAsPixel(int dluX, Component component); 098 099 /** 100 * Converts vertical dialog units and returns pixels. 101 * Honors the resolution, dialog font size, platform and look&feel. 102 * 103 * @param dluY the vertical dialog units 104 * @param component a component that provides the font and graphics 105 * @return the given vertical dialog units as pixels 106 */ 107 int dialogUnitYAsPixel(int dluY, Component component); 108 109}