package com.github.mikephil.charting.utils;
/**
* Class representing the x-axis labels settings. Only use the setter methods to
* modify it. Do not access public variables directly. Be aware that not all
* features the XLabels class provides are suitable for the RadarChart.
*
* @author Philipp Jahoda
*/
public class XLabels extends LabelBase {
/**
* width of the x-axis labels in pixels - this is calculated by the
* calcTextWidth() method of the utils
*/
public int mLabelWidth = 1;
/**
* height of the x-axis labels in pixels - this is calculated by the
* calcTextHeight() method of the utils
*/
public int mLabelHeight = 1;
/**
* the space that should be left out (in characters) between the x-axis
* labels
*/
private int mSpaceBetweenLabels = 4;
/**
* the modulus that indicates if a value at a specified index in an
* array(list) for the x-axis-labels is drawn or not. If index % modulus ==
* 0 DRAW, else dont draw.
*/
public int mXAxisLabelModulus = 1;
/** if true, x-axis label text is centered when using barcharts */
private boolean mCenterXAxisLabels = false;
/**
* if set to true, the chart will avoid that the first and last label entry
* in the chart "clip" off the edge of the chart
*/
private boolean mAvoidFirstLastClipping = false;
/**
* if set to true, the x-axis label entries will adjust themselves when
* scaling the graph
*/
protected boolean mAdjustXAxisLabels = true;
/** the position of the x-labels relative to the chart */
private XLabelPosition mPosition = XLabelPosition.TOP;
/** enum for the position of the x-labels relative to the chart */
public enum XLabelPosition {
TOP, BOTTOM, BOTH_SIDED, TOP_INSIDE, BOTTOM_INSIDE
}
/**
* returns true if centering x-axis labels when using barcharts is enabled,
* false if not
*
* @return
*/
public boolean isCenterXLabelsEnabled() {
return mCenterXAxisLabels;
}
/**
* set this to true to center the x-label text when using barcharts ,
* default: false
*
* @param enabled
*/
public void setCenterXLabelText(boolean enabled) {
mCenterXAxisLabels = enabled;
}
/**
* if set to true, the x-label entries will adjust themselves when scaling
* the graph default: true
*
* @param enabled
*/
public void setAdjustXLabels(boolean enabled) {
mAdjustXAxisLabels = enabled;
}
/**
* returns true if the x-labels adjust themselves when scaling the graph,
* false if not
*
* @return
*/
public boolean isAdjustXLabelsEnabled() {
return mAdjustXAxisLabels;
}
/**
* returns the position of the x-labels
*/
public XLabelPosition getPosition() {
return mPosition;
}
/**
* sets the position of the x-labels
*
* @param pos
*/
public void setPosition(XLabelPosition pos) {
mPosition = pos;
}
/**
* Sets the space (in characters) that should be left out between the x-axis
* labels, default 4
*
* @param space
*/
public void setSpaceBetweenLabels(int space) {
mSpaceBetweenLabels = space;
}
/**
* Returns the space (in characters) that should be left out between the
* x-axis labels
*
* @param space
*/
public int getSpaceBetweenLabels() {
return mSpaceBetweenLabels;
}
/**
* if set to true, the chart will avoid that the first and last label entry
* in the chart "clip" off the edge of the chart or the screen
*
* @param enabled
*/
public void setAvoidFirstLastClipping(boolean enabled) {
mAvoidFirstLastClipping = enabled;
}
/**
* returns true if avoid-first-lastclipping is enabled, false if not
*
* @return
*/
public boolean isAvoidFirstLastClippingEnabled() {
return mAvoidFirstLastClipping;
}
}