package com.github.czyzby.lml.vis.parser.impl.tag; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.github.czyzby.lml.parser.LmlParser; import com.github.czyzby.lml.parser.impl.tag.actor.ButtonLmlTag; import com.github.czyzby.lml.parser.tag.LmlActorBuilder; import com.github.czyzby.lml.parser.tag.LmlTag; import com.kotcrab.vis.ui.widget.VisImageButton; import com.kotcrab.vis.ui.widget.VisImageButton.VisImageButtonStyle; /** Handles {@link VisImageButton} actor. Treats children as a {@link ButtonLmlTag}. Mapped to "imageButton", * "visImageButton". * * @author MJ */ public class VisImageButtonLmlTag extends ButtonLmlTag { public VisImageButtonLmlTag(final LmlParser parser, final LmlTag parentTag, final StringBuilder rawTagData) { super(parser, parentTag, rawTagData); } @Override protected Actor getNewInstanceOfActor(final LmlActorBuilder builder) { final Skin skin = getSkin(builder); final VisImageButton button = new VisImageButton(skin.get(builder.getStyleName(), VisImageButtonStyle.class)); button.setSkin(skin); // Not set internally by the constructor. return button; } @Override protected boolean hasComponentActors() { return true; } @Override protected Actor[] getComponentActors(final Actor actor) { return new Actor[] { ((VisImageButton) actor).getImage() }; } }