package com.github.czyzby.lml.parser.impl.attribute; import com.badlogic.gdx.scenes.scene2d.Actor; import com.github.czyzby.lml.parser.LmlParser; import com.github.czyzby.lml.parser.tag.LmlAttribute; import com.github.czyzby.lml.parser.tag.LmlTag; import com.github.czyzby.lml.util.LmlUtilities; /** If true, some widgets might parse plain text between their tags differently. For example: <blockquote> * * <pre> * <label>First. * Second.</label> * <label multiline=true>First. * Second.</label> * </pre> * * </blockquote>By default, labels are single-line, so first label's text would be "First.Second.". Thanks to multiline * property, second label's text would be "First.\nSecond.". This attribute expects a boolean. By default, it is mapped * to "multiline" attribute name. While the mechanism used is common for all widgets, note that it will work only for * labels, text buttons, image text buttons and text areas (might work on text fields, too: the new line char is * appended, but text fields do not seem to support it by default). * * @author MJ */ public class MultilineLmlAttribute implements LmlAttribute<Actor> { @Override public Class<Actor> getHandledType() { return Actor.class; } @Override public void process(final LmlParser parser, final LmlTag tag, final Actor actor, final String rawAttributeData) { LmlUtilities.getLmlUserObject(actor).setData(Boolean.valueOf(parser.parseBoolean(rawAttributeData, actor))); } }