/** * Copyright (C) 2009-2014 Cars and Tracks Development Project (CTDP). * * 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. */ package net.ctdp.rfdynhud.values; import net.ctdp.rfdynhud.properties.BorderProperty; import net.ctdp.rfdynhud.properties.Size; import net.ctdp.rfdynhud.widgets.base.widget.Widget; /** * The InnerSize value provides an {@link AbstractSize} implementation for the inner * size of a {@link Widget} (excluding border and padding). * * @author Marvin Froehlich (CTDP) */ public class InnerSize extends AbstractSize { private final Size totalSize; private final BorderProperty border; /** * {@inheritDoc} */ @Override public final int getEffectiveWidth() { return ( totalSize.getEffectiveWidth() - border.getBorder().getInnerLeftWidth() - border.getBorder().getInnerRightWidth() ); } /** * {@inheritDoc} */ @Override public final int getEffectiveHeight() { return ( totalSize.getEffectiveHeight() - border.getBorder().getInnerTopHeight() - border.getBorder().getInnerBottomHeight() ); } public InnerSize( Size totalSize, BorderProperty border ) { this.totalSize = totalSize; this.border = border; } }