コード例 #1
0
ファイル: FeedbackFigure.java プロジェクト: cyqw/yang-ide
 @Override
 protected void outlineShape(Graphics g) {
   int x = getParent().getBounds().x + 15;
   int x2 = x + getParent().getBounds().width - 30;
   g.setForegroundColor(Display.getDefault().getSystemColor(SWT.COLOR_BLUE));
   g.drawPolyline(new int[] {x - 2, position - 2, x, position, x - 2, position + 2});
   g.drawPolyline(new int[] {x, position, x2, position});
   g.drawPolyline(new int[] {x2 + 3, position - 3, x2, position, x2 + 2, position + 2});
 }
コード例 #2
0
ファイル: CheckBoxFigure.java プロジェクト: Crisam/cs-studio
    @Override
    protected void paintClientArea(Graphics graphics) {
      if (support3d == null) support3d = GraphicsUtil.testPatternSupported(graphics);
      Rectangle clientArea = getClientArea();
      Rectangle square =
          new Rectangle(
              clientArea.x,
              clientArea.y + clientArea.height / 2 - BOX_SIZE / 2,
              BOX_SIZE,
              BOX_SIZE);
      graphics.pushState();
      if (support3d)
        graphics.setBackgroundPattern(
            GraphicsUtil.createScaledPattern(
                graphics,
                Display.getCurrent(),
                square.x,
                square.y + 1,
                square.x,
                square.y + square.height,
                ColorConstants.white,
                graphics.getBackgroundColor()));
      graphics.fillRoundRectangle(square, 4, 4);
      graphics.setForegroundColor(CustomMediaFactory.getInstance().getColor(130, 130, 130));
      graphics.drawRoundRectangle(square, 4, 4);

      if (boolValue) {
        graphics.translate(square.x, square.y);
        graphics.setLineWidth(3);
        graphics.setForegroundColor(selectedColor);

        graphics.drawPolyline(
            new int[] {
              3,
              (int) (BOX_SIZE * 0.45),
              (int) (BOX_SIZE * 0.45),
              BOX_SIZE * 3 / 4 - 1,
              BOX_SIZE - 2,
              3
            });
      }
      graphics.popState();
      Dimension textSize = FigureUtilities.getTextExtents(text, graphics.getFont());

      if (!isEnabled()) {
        graphics.translate(1, 1);
        graphics.setForegroundColor(ColorConstants.buttonLightest);
        graphics.drawText(text, square.getRight().getTranslated(GAP, -textSize.height / 2));
        graphics.translate(-1, -1);
        graphics.setForegroundColor(ColorConstants.buttonDarker);
      }
      graphics.drawText(text, square.getRight().getTranslated(GAP, -textSize.height / 2));

      super.paintClientArea(graphics);
    }
コード例 #3
0
  /** @see org.eclipse.draw2d.Figure#paintFigure(Graphics) */
  protected void paintFigure(Graphics g) {
    Rectangle r = getBounds().getCopy();

    IMapMode mm = MapModeUtil.getMapMode(this);
    r.translate(mm.DPtoLP(2), mm.DPtoLP(2));
    r.setSize(mm.DPtoLP(11), mm.DPtoLP(9));

    // Draw the bottom arc of the gate
    r.y += mm.DPtoLP(4);
    r.width = r.width - mm.DPtoLP(1);
    g.fillOval(r);
    r.height--;
    g.drawOval(r);

    // draw gate
    g.translate(getLocation());
    PointList outline = points.getCopy();
    mm.DPtoLP(outline);
    g.fillPolygon(outline);
    g.drawPolyline(outline);
    g.translate(getLocation().getNegated());
  }