package com.indyforge.twod.engine.graphics.rendering.scenegraph.gui;
import java.awt.Font;
import com.indyforge.twod.engine.graphics.ImageDesc;
import com.indyforge.twod.engine.graphics.rendering.scenegraph.RenderedImage;
import com.indyforge.twod.engine.graphics.rendering.scenegraph.Text;
import com.indyforge.twod.engine.graphics.rendering.scenegraph.Text.Alignment;
import com.indyforge.twod.engine.resources.Resource;
/**
* A gui label implementation.
*
* @author Christopher Probst
*/
public class Label extends GuiEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* The default scale factor of the text (relative to the background image).
*/
public static final float TEXT_SCALE = 0.8f;
/*
* The background image.
*/
private final RenderedImage background = new RenderedImage().centered(true)
.keepRatio(true);
/*
* The text component.
*/
private final Text text;
public Label(ImageDesc imageDesc, Resource<? extends Font> fontResource) {
// Labels can not be selected by default
selectable(false);
// Attach background and text
attach(background,
text = (Text) new Text(imageDesc).fontResource(fontResource)
.centered(true));
// Center a label by default
text.alignment(Alignment.Center);
// Apply text scale
text.scale().scaleLocal(TEXT_SCALE);
}
/**
* @return the background image.
*/
public RenderedImage background() {
return background;
}
/**
* @return the text.
*/
public Text text() {
return text;
}
}