protected void drawInformation(GLGraphics gc) { super.drawInformation(gc); Point size = getSize(); gc.setColor(SWTResourceManager.getColor(0xFF, 0x99, 0x00)); gc.drawLine(0, size.y / 2 + paintOffset.y, size.x, size.y / 2 + paintOffset.y); gc.drawLine(size.x / 2 + paintOffset.x, 0, size.x / 2 + paintOffset.x, size.y); // 绘制起始点和目标点 if (position != null) { int blockSize = 2; if (ratio > 1.0f) { blockSize *= ratio; } gc.setColor(SWTResourceManager.getColor(0xFF, 0x99, 0x00)); Point pt = new Point(position.x, position.y); pt = coordToPos(pt); gc.drawRect(pt.x - blockSize, pt.y - blockSize, blockSize * 2, blockSize * 2); gc.drawLine(pt.x - blockSize, pt.y, pt.x + blockSize, pt.y); gc.drawLine(pt.x, pt.y - blockSize, pt.x, pt.y + blockSize); gc.setColor(SWTResourceManager.getColor(0x00, 0x99, 0xFF)); Point pt2 = new Point(directionX, directionY); pt2 = coordToPos(pt2); gc.drawRect(pt2.x - blockSize, pt2.y - blockSize, blockSize * 2, blockSize * 2); gc.drawLine(pt2.x - blockSize, pt2.y, pt2.x + blockSize, pt2.y); gc.drawLine(pt2.x, pt2.y - blockSize, pt2.x, pt2.y + blockSize); gc.drawLine(pt.x, pt.y, pt2.x, pt2.y); } // 绘制选项按钮 drawButtons(gc); }
public void widgetDisposed(DisposeEvent e) { super.widgetDisposed(e); disposed = true; try { this.animateThread.join(); } catch (Exception e1) { } }
protected void drawButtons(GLGraphics gc) { Point size = getSize(); gc.setColor(AbstractImageViewer.invert(getBackground())); int bx = 1; int i; for (i = 0; i < buttonTexts.length; i++) { Point ts = gc.textExtent(buttonTexts[i]); int by = size.y - ts.y - 8; int bw = ts.x + 7; int bh = ts.y + 6; buttonBounds[i] = new Rectangle(bx, by, bw, bh); gc.setColor(AbstractImageViewer.invert(getBackground())); gc.drawRect(buttonBounds[i]); gc.drawText(buttonTexts[i], buttonBounds[i].x + 4, buttonBounds[i].y + 4); bx += bw + 2; } }
public void setInput(PipAnimateFrame frame, HookPointExtension.HookPoint hookPoint) { super.setInput(frame); this.frame = frame; this.hookPoint = hookPoint; dragging = false; if (hookPoint != null) { position = hookPoint.posList.get(frame); calcTargetPos(); if (position != null) { if (position.direction >= 1000) { buttonTexts[2] = "切换为先画"; } else { buttonTexts[2] = "切换为后画"; } } } else { position = null; } redraw(); }