X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fslipway%2Fgui%2FZoomingPanel.java;h=4d934fd4edefa091a77709b132358171047bece0;hb=05bfa73d5415e19943cf36c094dbdb50304a341c;hp=4a3150ffadfe0f16c7b1de3e305e8142821503ae;hpb=304b5fd54ac37294709cf761e5d69b8731b878a8;p=slipway.git diff --git a/src/edu/berkeley/slipway/gui/ZoomingPanel.java b/src/edu/berkeley/slipway/gui/ZoomingPanel.java index 4a3150f..4d934fd 100644 --- a/src/edu/berkeley/slipway/gui/ZoomingPanel.java +++ b/src/edu/berkeley/slipway/gui/ZoomingPanel.java @@ -27,7 +27,10 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo private Point2D recenter; private Point2D recenter2; - public ZoomingPanel() { + private FtdiBoard ftdiboard; + + public ZoomingPanel(FtdiBoard ftdiboard) { + this.ftdiboard = ftdiboard; setDoubleBuffered(true); addKeyListener(this); addMouseMotionListener(this); @@ -109,21 +112,148 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo } Gui.Cell cell = whichCell(mousex, mousey); Fpslic.Cell c = cell == null ? null : cell.cell; - if ((k.getModifiers() & k.ALT_MASK) != 0) + if ((k.getModifiers() & k.ALT_MASK) != 0 || (k.getModifiers() & k.META_MASK) != 0) switch(k.getKeyCode()) { case VK_S: writeMode4(); break; + /* case VK_O: readMode4(); break; + */ + case VK_0: { + c.xlut(0x00); + c.ylut(0x00); + repaint(); + return; + } + case VK_1: { + c.xlut(0xff); + c.ylut(0xff); + repaint(); + return; + } + case VK_F: { + int save1y = c.fpslic().cell(19,22).ylut(); + int save1x = c.fpslic().cell(19,22).xlut(); + int save2y = c.fpslic().cell(20,22).ylut(); + int save2x = c.fpslic().cell(20,22).xlut(); + c.fpslic().cell(19,22).ylut(0xff); + c.fpslic().cell(19,22).xlut(0xff); + for(int i=0; i<800; i++) { + c.fpslic().cell(20,22).ylut(0xff); + c.fpslic().cell(20,22).xlut(0xff); + c.fpslic().flush(); + c.fpslic().cell(20,22).ylut(0x00); + c.fpslic().cell(20,22).xlut(0x00); + c.fpslic().flush(); + } + c.fpslic().cell(19,22).ylut(save1y); + c.fpslic().cell(19,22).xlut(save1x); + c.fpslic().cell(20,22).ylut(save2y); + c.fpslic().cell(20,22).xlut(save2x); + System.out.println("done"); + repaint(); + return; + } + case VK_BACK_QUOTE: { + c.xlut(0xff); + c.ylut(0xff); + repaint(); + return; + } + case VK_A: { + c.xlut(LUT_SELF & LUT_OTHER); + c.ylut(LUT_SELF & LUT_OTHER); + repaint(); + return; + } + case VK_2: + case VK_G: + { + c.c(YLUT); + c.ylut(0x00); + c.xlut(0x00); + c.wi(L0); + c.t(TMUX_W_AND_FB); + c.ylut((LUT_SELF & ~LUT_OTHER) | + (LUT_Z & ~LUT_OTHER) | + (LUT_Z & LUT_SELF)); + c.fpslic().flush(); + c.xlut(LUT_Z); + c.fpslic().flush(); + c.wi(NONE); + c.fpslic().flush(); + repaint(); + return; + } + case VK_3: { + + c.c(XLUT); + c.xlut(0x00); + c.ylut(0x00); + c.wi(L0); + c.t(TMUX_W_AND_FB); + c.xlut((LUT_SELF & ~LUT_OTHER) | + (LUT_Z & ~LUT_OTHER) | + (LUT_Z & LUT_SELF)); + c.fpslic().flush(); + c.ylut(LUT_Z); + c.fpslic().flush(); + c.wi(NONE); + c.fpslic().flush(); + repaint(); + return; + } + case VK_Z: { + c.xlut(LUT_Z); + c.ylut(LUT_Z); + repaint(); + return; + } + case VK_W: { + c.xlut(LUT_Z); + c.ylut(LUT_SELF); + c.t(TMUX_W); + repaint(); + return; + } + case VK_T: { + //c.t(; + repaint(); + return; + } + case VK_O: { + c.xlut(LUT_SELF | LUT_OTHER); + c.ylut(LUT_SELF | LUT_OTHER); + repaint(); + return; + } + case VK_X: { + c.xlut(LUT_SELF); + c.ylut(LUT_OTHER); + repaint(); + return; + } + case VK_Y: { + c.xlut(LUT_OTHER); + c.ylut(LUT_SELF); + repaint(); + return; + } + case VK_I: { + System.out.println("interrupt count => " + ftdiboard.readCount()); + repaint(); + return; + } } else switch(k.getKeyCode()) { case VK_ESCAPE: scale = 1.0; recenter = null; repaint(); return; - case VK_0: case VK_1: case VK_2: case VK_3: case VK_4: { - int i = L0 + (k.getKeyChar() - '0'); + case VK_BACK_QUOTE: case VK_0: case VK_1: case VK_2: case VK_3: case VK_4: { + int i = k.getKeyCode()==VK_BACK_QUOTE ? NONE : (L0 + (k.getKeyChar() - '0')); switch(lastChar) { case 'x': c.xi(i); break; case 'y': case 'q': c.yi(i); break; @@ -156,18 +286,28 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo return; case VK_F: c.f(!c.f()); repaint(); return; - case VK_S: c.ff_reset_value(!c.ff_reset_value()); repaint(); return; + case VK_S: + Gui.Cell gc = whichCell(mousex,mousey); + gc.scanme = !gc.scanme; + //case VK_S: c.ff_reset_value(!c.ff_reset_value()); repaint(); return; case VK_R: c.b(!c.b()); repaint(); return; case VK_T: switch(c.t()) { - case TMUX_FB: c.t(TMUX_W_AND_FB); break; - case TMUX_W_AND_FB: c.t(TMUX_W); break; - case TMUX_W: c.t(TMUX_W_AND_Z); break; - case TMUX_W_AND_Z: c.t(TMUX_Z); break; - case TMUX_Z: c.t(TMUX_FB); break; + case TMUX_FB: + case TMUX_W_AND_FB: + c.t(TMUX_W_AND_Z); + break; + + case TMUX_Z: + case TMUX_W_AND_Z: + c.t(TMUX_W); + break; + + case TMUX_W: + c.t(TMUX_W_AND_FB); + break; } - System.err.println("set " + c.t()); repaint(); return;