/*
* Copyright (c) 2012. HappyDroids LLC, All rights reserved.
*/
package com.happydroids.droidtowers.gui;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.NinePatch;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Widget;
import com.badlogic.gdx.scenes.scene2d.utils.Align;
import com.happydroids.droidtowers.Colors;
import com.happydroids.droidtowers.TowerAssetManager;
class ProgressBar extends Widget {
private final Label valueLabel;
private NinePatch patch;
private int padding;
private int value;
ProgressBar() {
this(0);
}
public ProgressBar(int progress) {
super();
padding = 3;
patch = new NinePatch(TowerAssetManager.texture(TowerAssetManager.WHITE_SWATCH));
valueLabel = FontManager.Default.makeLabel("100%");
valueLabel.setAlignment(Align.center);
setValue(progress);
}
@Override
public float getMinWidth() {
return 100;
}
@Override
public float getMinHeight() {
return 16;
}
public void setValue(int value) {
this.value = value;
valueLabel.setText(this.value + "%");
}
@Override
public void draw(SpriteBatch batch, float parentAlpha) {
validate();
patch.setColor(Color.DARK_GRAY);
patch.draw(batch, getX(), getY(), getWidth(), getHeight());
if (value > 0) {
patch.setColor(Colors.ICS_BLUE);
patch.draw(batch, getX() + padding,
getY() + padding,
Math.min(((getWidth() / 100) * value), getWidth()) - (padding * 2),
getHeight() - (padding * 2));
}
valueLabel.setX(getX());
valueLabel.setY(getY());
valueLabel.draw(batch, parentAlpha);
}
@Override
public void layout() {
valueLabel.setWidth(getWidth());
valueLabel.setHeight(getHeight());
}
}