16224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala/*
26224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Copyright 2012 AndroidPlot.com
36224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *
46224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    Licensed under the Apache License, Version 2.0 (the "License");
56224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    you may not use this file except in compliance with the License.
66224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    You may obtain a copy of the License at
76224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *
86224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *        http://www.apache.org/licenses/LICENSE-2.0
96224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *
106224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    Unless required by applicable law or agreed to in writing, software
116224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    distributed under the License is distributed on an "AS IS" BASIS,
126224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    See the License for the specific language governing permissions and
146224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala *    limitations under the License.
156224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala */
166224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
176224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalapackage com.androidplot.ui;
186224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
196224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport android.graphics.RectF;
206224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
216224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala/**
226224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Convenience implementation of {@link BoxModelable}.
236224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala */
246224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalapublic class BoxModel implements BoxModelable{
256224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
266224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float marginLeft;
276224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float marginTop;
286224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float marginRight;
296224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float marginBottom;
306224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
316224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
326224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float paddingLeft;
336224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float paddingTop;
346224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float paddingRight;
356224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private float paddingBottom;
366224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    //private RectF marginRect;
376224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    //private RectF paddingRect;
386224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
396224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public BoxModel() {
406224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
416224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
426224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
436224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    @SuppressWarnings("SameParameterValue")
446224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public BoxModel(float marginLeft, float marginTop, float marginRight, float marginBottom,
456224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                    float paddingLeft, float paddingTop, float paddingRight, float paddingBottom) {
466224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginLeft = marginLeft;
476224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginTop = marginTop;
486224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginRight = marginRight;
496224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginBottom = marginBottom;
506224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
516224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingLeft = paddingLeft;
526224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingTop = paddingTop;
536224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingRight = paddingRight;
546224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingBottom = paddingBottom;
556224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
566224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
576224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    /**
586224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     * Returns a RectF instance describing the inner edge of the margin layer.
596224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     * @param boundsRect
606224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     * @return
616224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     */
626224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public RectF getMarginatedRect(RectF boundsRect) {
636224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return new RectF( boundsRect.left + getMarginLeft(),
646224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                boundsRect.top + getMarginTop(),
656224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                boundsRect.right - getMarginRight(),
666224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                boundsRect.bottom - getMarginBottom());
676224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
686224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
696224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    /**
706224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     * Returns a RectF instance describing the inner edge of the padding layer.
716224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     * @param marginRect
726224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     * @return
736224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala     */
746224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public RectF getPaddedRect(RectF marginRect) {
756224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return new RectF(marginRect.left + getPaddingLeft(),
766224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                marginRect.top+getPaddingTop(),
776224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                marginRect.right - getPaddingRight(),
786224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                marginRect.bottom - getPaddingBottom());
796224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
806224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
816224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    @Override
826224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setMargins(float left, float top, float right, float bottom) {
836224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setMarginLeft(left);
846224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setMarginTop(top);
856224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setMarginRight(right);
866224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setMarginBottom(bottom);
876224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
886224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
896224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    @Override
906224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setPadding(float left, float top, float right, float bottom) {
916224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setPaddingLeft(left);
926224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setPaddingTop(top);
936224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setPaddingRight(right);
946224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        setPaddingBottom(bottom);
956224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
966224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
976224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
986224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getMarginLeft() {
996224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return marginLeft;
1006224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1016224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1026224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setMarginLeft(float marginLeft) {
1036224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginLeft = marginLeft;
1046224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1056224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1066224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getMarginTop() {
1076224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return marginTop;
1086224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1096224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1106224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setMarginTop(float marginTop) {
1116224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginTop = marginTop;
1126224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1136224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1146224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getMarginRight() {
1156224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return marginRight;
1166224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1176224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1186224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setMarginRight(float marginRight) {
1196224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginRight = marginRight;
1206224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1216224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1226224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getMarginBottom() {
1236224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return marginBottom;
1246224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1256224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1266224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setMarginBottom(float marginBottom) {
1276224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.marginBottom = marginBottom;
1286224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1296224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1306224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getPaddingLeft() {
1316224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return paddingLeft;
1326224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1336224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1346224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setPaddingLeft(float paddingLeft) {
1356224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingLeft = paddingLeft;
1366224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1376224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1386224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getPaddingTop() {
1396224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return paddingTop;
1406224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1416224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1426224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setPaddingTop(float paddingTop) {
1436224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingTop = paddingTop;
1446224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1456224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1466224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getPaddingRight() {
1476224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return paddingRight;
1486224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1496224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1506224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setPaddingRight(float paddingRight) {
1516224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingRight = paddingRight;
1526224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1536224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1546224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public float getPaddingBottom() {
1556224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return paddingBottom;
1566224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1576224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1586224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    public void setPaddingBottom(float paddingBottom) {
1596224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        this.paddingBottom = paddingBottom;
1606224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    }
1616224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala}
162