package com.github.czyzby.lml.parser.impl.attribute.scroll; import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; import com.github.czyzby.lml.parser.LmlParser; import com.github.czyzby.lml.parser.action.ActorConsumer; import com.github.czyzby.lml.parser.tag.LmlAttribute; import com.github.czyzby.lml.parser.tag.LmlTag; import com.github.czyzby.lml.util.LmlUtilities; /** See {@link ScrollPane#setScrollPercentX(float)}, {@link ScrollPane#setScrollPercentY(float)}. Mapped to * "scrollPercent", "percent". * * @author MJ */ public class ScrollPercentLmlAttribute implements LmlAttribute<ScrollPane> { @Override public Class<ScrollPane> getHandledType() { return ScrollPane.class; } @Override public void process(final LmlParser parser, final LmlTag tag, final ScrollPane actor, final String rawAttributeData) { LmlUtilities.getLmlUserObject(actor).addOnCloseAction(new ActorConsumer<Object, Object>() { @Override public Object consume(final Object widget) { actor.layout(); // Needed to calculate scroll pane size. final float percent = parser.parseFloat(rawAttributeData, actor); actor.setScrollPercentX(percent); actor.setScrollPercentY(percent); return null; } }); } }