package org.andrewberman.ui.menu; import java.awt.event.KeyEvent; import org.andrewberman.ui.LayoutUtils; import org.andrewberman.ui.Point; import org.andrewberman.ui.TextField; import processing.core.PApplet; public class TextBox extends Menu { protected PApplet parentApplet; public TextField tf; public TextBox(PApplet p) { super(p); tf = new TextField(p) { @Override public void keyEvent(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { performAction(); } super.keyEvent(e); } }; } @Override public synchronized void dispose() { super.dispose(); tf.dispose(); } @Override public synchronized void draw() { this.alpha = parent.nearestMenu.alpha; tf.alpha = parent.nearestMenu.alpha; super.draw(); } @Override public synchronized void layout() { float px = getStyle().getF("f.padX"); float py = getStyle().getF("f.padY"); super.layout(); tf.setWidth(width-px); tf.setHeight(height-py); LayoutUtils.centerVertical(tf, y, y+height); LayoutUtils.centerHorizontal(tf, x,x+width); } @Override public void performAction() { super.performAction(); context.focus().removeFromFocus(tf); } @Override public void setWidth(float width) { super.setWidth(width); } @Override protected void calcPreferredSize() { super.calcPreferredSize(); } @Override protected boolean containsPoint(Point p) { return tf.containsPoint(p); } @Override public MenuItem create(String label) { return null; } }