package com.beardedhen.androidbootstrap.api.defaults;
import android.content.Context;
import android.support.annotation.DimenRes;
import com.beardedhen.androidbootstrap.R;
import com.beardedhen.androidbootstrap.api.attributes.BootstrapHeading;
import com.beardedhen.androidbootstrap.utils.DimenUtils;
/**
* Bootstrap provides styling for elements H1-H6, and sets their text size and padding using the
* values supplied here.
*/
public enum DefaultBootstrapHeading implements BootstrapHeading {
H1(R.dimen.bootstrap_h1_text_size,
R.dimen.bootstrap_h1_vert_padding,
R.dimen.bootstrap_h1_hori_padding),
H2(R.dimen.bootstrap_h2_text_size,
R.dimen.bootstrap_h2_vert_padding,
R.dimen.bootstrap_h2_hori_padding),
H3(R.dimen.bootstrap_h3_text_size,
R.dimen.bootstrap_h3_vert_padding,
R.dimen.bootstrap_h3_hori_padding),
H4(R.dimen.bootstrap_h4_text_size,
R.dimen.bootstrap_h4_vert_padding,
R.dimen.bootstrap_h4_hori_padding),
H5(R.dimen.bootstrap_h5_text_size,
R.dimen.bootstrap_h5_vert_padding,
R.dimen.bootstrap_h5_hori_padding),
H6(R.dimen.bootstrap_h6_text_size,
R.dimen.bootstrap_h6_vert_padding,
R.dimen.bootstrap_h6_hori_padding);
private final @DimenRes int textSize;
private final @DimenRes int vertPadding;
private final @DimenRes int horiPadding;
DefaultBootstrapHeading(int textSize, int vertPadding, int horiPadding) {
this.textSize = textSize;
this.vertPadding = vertPadding;
this.horiPadding = horiPadding;
}
public static DefaultBootstrapHeading fromAttributeValue(int attrValue) {
switch (attrValue) {
case 0:
return H1;
case 1:
return H2;
case 2:
return H3;
case 3:
return H4;
case 4:
return H5;
case 5:
return H6;
default:
return H6;
}
}
@Override public float getTextSize(Context context) {
return DimenUtils.pixelsFromSpResource(context, textSize);
}
@Override public float verticalPadding(Context context) {
return DimenUtils.pixelsFromDpResource(context, vertPadding);
}
@Override public float horizontalPadding(Context context) {
return DimenUtils.pixelsFromDpResource(context, horiPadding);
}
}