package speiger.src.coreengine.rendering.gui.components.window.misc; import speiger.src.coreengine.math.misc.ColorObject; import speiger.src.coreengine.rendering.gui.components.ButtonComponent; import speiger.src.coreengine.rendering.gui.components.TextComponent; import speiger.src.coreengine.rendering.gui.components.TextFieldComponent; import speiger.src.coreengine.rendering.gui.components.WindowComponent; import speiger.src.coreengine.rendering.gui.helper.constrains.ParentConstrain; import speiger.src.coreengine.rendering.gui.helper.constrains.PixelConstrain; import speiger.src.coreengine.rendering.gui.helper.constrains.RelativeConstrain; import speiger.src.coreengine.rendering.gui.helper.constrains.TextConstrain; public class TextInputComponent extends WindowComponent { TextComponent message = new TextComponent().setLimitedHeight(false).setTextScale(0.5F); TextFieldComponent input = new TextFieldComponent(ColorObject.GRAY).setCanLoseFocus(false).setInfiniteText(true).setMaxTextLength(Integer.MAX_VALUE).setFocused(true); ButtonComponent confirm = new ButtonComponent("Confirm", ColorObject.DARK_GREEN); ButtonComponent cancel = new ButtonComponent("Cancel", ColorObject.RED); public TextInputComponent(float width, String name, String message) { this(0F, 0F, width, name, message); } public TextInputComponent(float x, float y, float width, String name, String message) { super(x, y, width, 35F, FIXED_SIZE_POPUP, name); this.message.setText(message); } public TextFieldComponent getInput() { return input; } public String getText() { return input.getText(); } @Override public void init() { super.init(); confirm.getText().setTextScale(0.5F); cancel.getText().setTextScale(0.5F); input.getRawText().setTextScale(0.5F); addChild(confirm.addChangeListener(minimizedListener).addUserActionListener(this::onListen), new RelativeConstrain(0F), new ParentConstrain(10F).invert(), new RelativeConstrain(0.5F), new PixelConstrain(10F)); addChild(cancel.addChangeListener(minimizedListener).addUserActionListener(closeListener), new RelativeConstrain(0.5F), new ParentConstrain(10F).invert(), new RelativeConstrain(0.5F), new PixelConstrain(10F)); addChild(message.addChangeListener(minimizedListener), new PixelConstrain(10F), new PixelConstrain(11F), new ParentConstrain(10F), TextConstrain.height(message)); addChild(input.addChangeListener(minimizedListener).addUserActionListener(this::onListen), new PixelConstrain(10F), TextConstrain.height(message).setPadding(15F), new ParentConstrain(10F), new PixelConstrain(12F)); getBox().setHeight(45F + message.getMetadata().getMaxHeight()); } private void onListen() { notifyListeners(LISTENER_USER_ACTION); closeListener.accept(this); } @Override public boolean isPopup() { return true; } }