All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.flixel.ui.FlxRadioButton Maven / Gradle / Ivy

The newest version!
package org.flixel.ui;

/**
 * Skinnable Radiobutton.
 * 
 * @author Ka Wing Chin
 */
public class FlxRadioButton extends FlxUITouchable
{
	private final String ImgRadioButton = "org/flixel/data/pack:radiobutton";

	/**
	 * The group where this radio button belongs to.
	 */
	public FlxRadioButtonGroup group;

	/**
	 * Creates a new FlxRadioButton object.
	 * 
	 * @param X The x-position of the component.
	 * @param Y The y-position of the component.
	 * @param ID The unique ID of the component.
	 * @param Group The group where the component belongs to.
	 * @param UISkin The skin that needs to be applied.
	 * @param Label The label along side the component.
	 */
	public FlxRadioButton(float X, float Y, String ID, FlxRadioButtonGroup Group, FlxUISkin UISkin, String Label)
	{
		super(X, Y, UISkin, Label);
		this.ID = ID;
		group = Group;
		setOn(true);
		group.add(this);
	}

	/**
	 * Creates a new FlxRadioButton object.
	 * 
	 * @param X The x-position of the component.
	 * @param Y The y-position of the component.
	 * @param ID The unique ID of the component.
	 * @param Group The group where the component belongs to.
	 * @param UISkin The skin that needs to be applied.
	 */
	public FlxRadioButton(float X, float Y, String ID, FlxRadioButtonGroup Group, FlxUISkin UISkin)
	{
		super(X, Y, UISkin, null);
		this.ID = ID;
		group = Group;
		setOn(true);
		group.add(this);
	}

	/**
	 * Creates a new FlxRadioButton object.
	 * 
	 * @param X The x-position of the component.
	 * @param Y The y-position of the component.
	 * @param ID The unique ID of the component.
	 * @param Group The group where the component belongs to.
	 */
	public FlxRadioButton(float X, float Y, String ID, FlxRadioButtonGroup Group)
	{
		super(X, Y, null, null);
		this.ID = ID;
		group = Group;
		setOn(true);
		group.add(this);
	}

	@Override
	public void setDefaultSkin()
	{
		skin = new FlxUISkin();
		skin.DISABLED = 3;
		skin.HIGHLIGHT_DISABLED = 4;
		skin.ACTIVE_NORMAL = 5;
		skin.ACTIVE_HIGHTLIGHT = 6;
		skin.ACTIVE_PRESSED = 7;
		skin.ACTIVE_DISABLED = 8;
		skin.ACTIVE_HIGHTLIGHT_DISABLED = 9;
		skin.setImage(ImgRadioButton, 32, 32);
		skin.labelPosition = FlxUISkin.LABEL_RIGHT;
		skin.setFormat(null, 16);
	}

	@Override
	public void destroy()
	{
		super.destroy();
		group = null;
	}

	/**
	 * Let the group knows to change the behavior of the radio buttons.
	 */
	private void toggleOn()
	{
		group.onChange(this);
	}

	/**
	 * Set the radio button active.
	 */
	@Override
	public void onChange()
	{
		toggleOn();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy