Turtle programming game that was never finished to a playable state (but had cute graphics and sounds)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tortuga/src/net/tortuga/gui/widgets/input/ButtonVertical.java

86 lines
1.6 KiB

package net.tortuga.gui.widgets.input;
import static net.tortuga.gui.widgets.EColorRole.*;
import net.tortuga.fonts.LoadedFont;
import net.tortuga.util.Align;
import org.lwjgl.opengl.GL11;
import com.porcupine.coord.Coord;
/**
* Vertical (left tab) button
*
* @author Ondřej Hruška (MightyPork)
*/
public class ButtonVertical extends Button {
/**
* new button v
*
* @param id widget id
* @param text widget text
* @param font render font
*/
public ButtonVertical(int id, String text, LoadedFont font) {
super(id, text, font);
}
/**
* new button v
*
* @param id widget id
* @param text widget text
*/
public ButtonVertical(int id, String text) {
super(id, text);
setMinSize(0, 110);
}
/**
* new button v
*
* @param id widget id
*/
public ButtonVertical(int id) {
super(id);
}
@Override
public void render(Coord mouse)
{
if (!isVisible()) return;
renderBase(mouse);
GL11.glPushMatrix();
Coord txtCenterPos = rect.getCenter().add(font.getHeight() / 2 + 2, -3);
GL11.glTranslated(txtCenterPos.x, txtCenterPos.y, 0);
GL11.glRotated(90, 0, 0, 1);
font.draw(Coord.ZERO, text, getColor(FG, mouse), Align.CENTER);
GL11.glPopMatrix();
}
@Override
public void calcChildSizes()
{
Coord oldms = getMinSize().copy();
double w = font.getHeight() + borderWidth * 2 + paddingX * 2;
double h = font.getWidth(text) + borderWidth * 2 + paddingY * 2;
setMinSize(new Coord(w, h));
if (minSize.x < oldms.x) minSize.x = oldms.x;
if (minSize.y < oldms.y) minSize.y = oldms.y;
rect.setTo(0, 0, minSize.x, minSize.y);
}
}