@Override
  public void mousePressed(MouseEvent e) {
    // TODO Auto-generated method stub
    long time = System.nanoTime();
    int button = e.getButton();
    if (time - lastTimeClicked < 200000000 && button == lastButton) {
      Panel.menu = !Panel.menu;
      return;
    }
    lastButton = button;
    lastTimeClicked = time;

    if (e.getButton() == MouseEvent.BUTTON3 && calc.getZoom() <= 1) {
      calc.setZoom(1);
      return;
    }

    double r = calc.PixToWorld(e.getX(), calc.W / 2, calc.dX);
    double i = calc.PixToWorld(e.getY(), calc.H / 2, calc.dY);

    if (e.getButton() == MouseEvent.BUTTON1) calc.setZoom(calc.getZoom() * 2);
    else if (e.getButton() == MouseEvent.BUTTON3) calc.setZoom(calc.getZoom() / 2);
    else if (e.getButton() == MouseEvent.BUTTON2) {
      try {

        String a = String.valueOf(calc.dX);
        String b = String.valueOf(calc.dY);
        String c = String.valueOf(calc.getZoom());
        ImageIO.write(Panel.getImage(), "png", new File(a + "-" + b + "-" + c + ".png"));
      } catch (IOException ex) {

      }
      return;
    }

    calc.dX = r;
    calc.dY = i;

    if (calc.getZoom() == 1) calc.dX = calc.dY = 0;

    calc.needUpdate = true;

    synchronized (panel.calcThread) {
      if (!calc.isSleeping) {
        calc.forceRestart = true;
      } else panel.calcThread.notify();
    }
  }