package com.lucasdnd.ags.ui; import org.newdawn.slick.Color; import org.newdawn.slick.GameContainer; import org.newdawn.slick.Graphics; import org.newdawn.slick.SlickException; import org.newdawn.slick.state.StateBasedGame; import com.lucasdnd.ags.system.ResourceLoader; public class RadioButton extends Button { String text; boolean selected; final float marginLeft = 12f; final float padding = 32f; final float ringRadius = 16f; final float circleRadius = 16f; public RadioButton(String text) throws SlickException { super(null, 0f, 0f); this.text = text; width = 240f; height = 32f; } public RadioButton(String text, boolean enabled) throws SlickException { this(text); this.isEnabled = enabled; } @Override public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException { if (visible) { if (isEnabled) { g.setColor(Color.black); ResourceLoader.getInstance().tinyLightGrayFont.drawString(xPos + marginLeft + padding + 1f, yPos + 1f, text); ResourceLoader.getInstance().tinyBlackFont.drawString(xPos + marginLeft + padding, yPos, text); } else { g.setColor(Color.gray); ResourceLoader.getInstance().tinyLightGrayFont.drawString(xPos + marginLeft + padding + 1f, yPos + 1f, text); ResourceLoader.getInstance().tinyGrayFont.drawString(xPos + marginLeft + padding, yPos, text); } g.setLineWidth(2f); g.drawRoundRect(xPos + marginLeft, yPos, ringRadius, ringRadius, 2); if (selected) { g.fillRoundRect(xPos + marginLeft, yPos, circleRadius, circleRadius, 2); } } } public String getText() { return text; } public void setText(String text) { this.text = text; } public boolean isSelected() { return selected; } public void setSelected(boolean selected) { this.selected = selected; } }