package com.kreative.paint.tool; import java.awt.Image; import java.awt.event.KeyEvent; import com.kreative.paint.document.draw.ShapeDrawObject; import com.kreative.paint.geom.draw.PowerShapeDrawObject; public class PowerShapeTool extends SimpleShapeTool implements ToolOptions.PowerShapes { private static final int K = 0xFF000000; private static final Image icon = ToolUtilities.makeIcon( 16, 16, new int[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,K,K,K,0,0,0,0,0, 0,0,0,0,0,0,0,K,0,0,0,K,0,0,0,0, 0,0,0,K,K,K,K,0,0,0,0,K,0,K,K,0, 0,0,K,0,0,0,0,0,0,0,0,K,K,0,0,K, 0,0,0,K,0,0,0,0,0,0,0,0,0,0,0,K, 0,0,0,K,0,0,0,0,0,0,0,0,0,K,K,0, 0,0,K,0,0,0,0,0,0,0,0,K,K,0,0,0, 0,K,0,0,0,0,0,0,0,0,0,K,0,0,0,0, K,0,0,0,0,0,0,0,0,0,0,0,K,0,0,0, K,0,0,0,0,K,K,K,0,0,0,0,K,0,0,0, 0,K,0,0,K,0,0,0,K,0,0,K,0,0,0,0, 0,0,K,K,0,0,0,0,0,K,K,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, } ); public ToolCategory getCategory() { return ToolCategory.SHAPE; } protected Image getBWIcon() { return icon; } protected ShapeDrawObject makeShape(ToolEvent e, float sx, float sy, float x, float y) { return new PowerShapeDrawObject(e.getPaintSettings(), e.tc().getPowerShape().clone(), sx, sy, x-sx, y-sy); } public boolean keyPressed(ToolEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_LEFT: e.tc().prevPowerShape(); break; case KeyEvent.VK_RIGHT: e.tc().nextPowerShape(); break; case KeyEvent.VK_UP: e.tc().prevPowerShapeSet(); break; case KeyEvent.VK_DOWN: e.tc().nextPowerShapeSet(); break; case KeyEvent.VK_1: e.tc().setPowerShapeIndex(0); break; case KeyEvent.VK_2: e.tc().setPowerShapeIndex(1); break; case KeyEvent.VK_3: e.tc().setPowerShapeIndex(2); break; case KeyEvent.VK_4: e.tc().setPowerShapeIndex(3); break; case KeyEvent.VK_5: e.tc().setPowerShapeIndex(4); break; case KeyEvent.VK_6: e.tc().setPowerShapeIndex(5); break; case KeyEvent.VK_7: e.tc().setPowerShapeIndex(6); break; case KeyEvent.VK_8: e.tc().setPowerShapeIndex(7); break; case KeyEvent.VK_9: e.tc().setPowerShapeIndex(8); break; case KeyEvent.VK_0: e.tc().setPowerShapeIndex(9); break; } return super.keyPressed(e); } public boolean doubleClickForOptions() { return true; } }