blob: e80728c8e5c6788b462b4711e6e2c5fcfd0cb607 [file] [log] [blame]
/*
* Copyright 2012 AndroidPlot.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.androidplot.ui;
import android.graphics.RectF;
/**
* Convenience implementation of {@link BoxModelable}.
*/
public class BoxModel implements BoxModelable{
private float marginLeft;
private float marginTop;
private float marginRight;
private float marginBottom;
private float paddingLeft;
private float paddingTop;
private float paddingRight;
private float paddingBottom;
//private RectF marginRect;
//private RectF paddingRect;
public BoxModel() {
}
@SuppressWarnings("SameParameterValue")
public BoxModel(float marginLeft, float marginTop, float marginRight, float marginBottom,
float paddingLeft, float paddingTop, float paddingRight, float paddingBottom) {
this.marginLeft = marginLeft;
this.marginTop = marginTop;
this.marginRight = marginRight;
this.marginBottom = marginBottom;
this.paddingLeft = paddingLeft;
this.paddingTop = paddingTop;
this.paddingRight = paddingRight;
this.paddingBottom = paddingBottom;
}
/**
* Returns a RectF instance describing the inner edge of the margin layer.
* @param boundsRect
* @return
*/
public RectF getMarginatedRect(RectF boundsRect) {
return new RectF( boundsRect.left + getMarginLeft(),
boundsRect.top + getMarginTop(),
boundsRect.right - getMarginRight(),
boundsRect.bottom - getMarginBottom());
}
/**
* Returns a RectF instance describing the inner edge of the padding layer.
* @param marginRect
* @return
*/
public RectF getPaddedRect(RectF marginRect) {
return new RectF(marginRect.left + getPaddingLeft(),
marginRect.top+getPaddingTop(),
marginRect.right - getPaddingRight(),
marginRect.bottom - getPaddingBottom());
}
@Override
public void setMargins(float left, float top, float right, float bottom) {
setMarginLeft(left);
setMarginTop(top);
setMarginRight(right);
setMarginBottom(bottom);
}
@Override
public void setPadding(float left, float top, float right, float bottom) {
setPaddingLeft(left);
setPaddingTop(top);
setPaddingRight(right);
setPaddingBottom(bottom);
}
public float getMarginLeft() {
return marginLeft;
}
public void setMarginLeft(float marginLeft) {
this.marginLeft = marginLeft;
}
public float getMarginTop() {
return marginTop;
}
public void setMarginTop(float marginTop) {
this.marginTop = marginTop;
}
public float getMarginRight() {
return marginRight;
}
public void setMarginRight(float marginRight) {
this.marginRight = marginRight;
}
public float getMarginBottom() {
return marginBottom;
}
public void setMarginBottom(float marginBottom) {
this.marginBottom = marginBottom;
}
public float getPaddingLeft() {
return paddingLeft;
}
public void setPaddingLeft(float paddingLeft) {
this.paddingLeft = paddingLeft;
}
public float getPaddingTop() {
return paddingTop;
}
public void setPaddingTop(float paddingTop) {
this.paddingTop = paddingTop;
}
public float getPaddingRight() {
return paddingRight;
}
public void setPaddingRight(float paddingRight) {
this.paddingRight = paddingRight;
}
public float getPaddingBottom() {
return paddingBottom;
}
public void setPaddingBottom(float paddingBottom) {
this.paddingBottom = paddingBottom;
}
}