/* draw8: text items */ import java.awt.*; public class Draw8 extends Draw7 { // ADD SUPPORT FOR CREATING TEXT ITEMS Font font = new Font("Helvetica", Font.BOLD, 32); boolean editingText = false; Item newItem() { return (Item)(new Item8()); } Item8 item8(int i) { return (Item8)item[i]; } // TO CREATE A TEXT ITEM, JUST TYPE ITS TEXT AT THE MOUSE POSITION. // IF THE MOUSE WAS ALREADY OVER A TEXT ITEM, THEN EDIT THAT ITEM'S TEXT. public boolean keyUp(Event e, int key) { if (super.keyUp(e, key)) return true; Item8 it; int i = itemAt(mx, my); if (i >= 0 && item8(i).text.length() > 0) it = item8(i); else if (key != 8 && ! editingText) { item[nItems++] = newItem(); it = item8(nItems-1); it.setX(mx); it.setY(my); it.setColor(drawingColor); } else return true; editingText = true; if (key != 8) it.text += (char)key; else if (it.text.length() > 0) it.text = it.text.substring(0, it.text.length() - 1); damage = true; return true; } public void renderFg() { g.setFont(font); super.renderFg(); } // IF MOUSE MOVES, GET OUT OF TEXT EDIT MODE. public boolean mouseMove(Event e, int x, int y) { editingText = false; return super.mouseMove(e, x, y); } }