package com.github.mikephil.charting.components;
import android.graphics.Color;
import android.graphics.Typeface;
import com.github.mikephil.charting.utils.Utils;
/**
* This class encapsulates everything both Axis and Legend have in common.
*
* @author Philipp Jahoda
*/
public abstract class ComponentBase {
/** flag that indicates if this axis / legend is enabled or not */
protected boolean mEnabled = true;
/** the offset in pixels this axis labels have on the x-axis */
protected float mXOffset = 5f;
/** the offset in pixels this axis labels have on the Y-axis */
protected float mYOffset = 5f;
/** the typeface used for the labels */
protected Typeface mTypeface = null;
/** the text size of the labels */
protected float mTextSize = 10f;
/** the text color to use for the labels */
protected int mTextColor = Color.BLACK;
public ComponentBase() {
}
/**
* Returns the used offset on the x-axis for drawing the axis or legend
* labels. This offset is applied before and after the label.
*
* @return
*/
public float getXOffset() {
return mXOffset;
}
/**
* Sets the used x-axis offset for the labels on this axis.
*
* @param xOffset
*/
public void setXOffset(float xOffset) {
mXOffset = Utils.convertDpToPixel(xOffset);
}
/**
* Returns the used offset on the x-axis for drawing the axis labels. This
* offset is applied before and after the label.
*
* @return
*/
public float getYOffset() {
return mYOffset;
}
/**
* Sets the used x-axis offset for the labels on this axis.
*
* @param xOffset
*/
public void setYOffset(float yOffset) {
mYOffset = Utils.convertDpToPixel(yOffset);
}
/**
* returns the Typeface used for the labels, returns null if none is set
*
* @return
*/
public Typeface getTypeface() {
return mTypeface;
}
/**
* sets a specific Typeface for the labels
*
* @param tf
*/
public void setTypeface(Typeface tf) {
mTypeface = tf;
}
/**
* sets the size of the label text in pixels min = 6f, max = 24f, default
* 10f
*
* @param size
*/
public void setTextSize(float size) {
if (size > 24f)
size = 24f;
if (size < 6f)
size = 6f;
mTextSize = Utils.convertDpToPixel(size);
}
/**
* returns the text size that is currently set for the labels
*
* @return
*/
public float getTextSize() {
return mTextSize;
}
/**
* Sets the text color to use for the labels. Make sure to use
* getResources().getColor(...) when using a color from the resources.
*
* @param color
*/
public void setTextColor(int color) {
mTextColor = color;
}
/**
* Returns the text color that is set for the labels.
*
* @return
*/
public int getTextColor() {
return mTextColor;
}
/**
* Set this to true if this component should be enabled (should be drawn),
* false if not. If disabled, nothing of this component will be drawn.
* Default: true
*
* @param enabled
*/
public void setEnabled(boolean enabled) {
mEnabled = enabled;
}
/**
* Returns true if this comonent is enabled (should be drawn), false if not.
*
* @return
*/
public boolean isEnabled() {
return mEnabled;
}
}