  // Moves the selection left and down a specified distance in pixels.

  xy = split(getArgument());
  if (lengthOf(xy)!=2) {
      dx = 10;
      dy = 10;
  } else {
      dx = parseFloat(xy[0]);
      if (isNaN(dx)) dx = 10;
      dy = parseFloat(xy[1]);
      if (isNaN(dy)) dy = 10;
  }
  getPixelSize(unit, pixelWidth, pixelHeight);
  if (unit=="pixel") unit = "pixels";
  dxc = dx*pixelWidth;
  dyc = dy*pixelHeight;
  Dialog.create("Move");
  Dialog.addNumber("Delta_X ("+unit+"):", dxc);
  Dialog.addNumber("Delta_Y ("+unit+"):", dyc);
  Dialog.show();
  dx = Dialog.getNumber()/pixelWidth;
  dy = Dialog.getNumber()/pixelHeight;
  moveSelection(dx, dy);
  return toString(dx)+" "+toString(dy);

  function moveSelection(dx, dy) {
      getBoundingRect(x, y, width, height);
      if (selectionType==0)
          makeRectangle(x+dx, y+dy, width, height);
      else if (selectionType==1)
          makeOval(x+dx, y+dy, width, height);
      else {
          getSelectionCoordinates(xCoordinates, yCoordinates);
          for (i=0; i<xCoordinates.length; i++) {
              xCoordinates[i] += dx;
              yCoordinates[i] += dy;
          }
          makeSelection(selectionType, xCoordinates, yCoordinates);          
      }
  }
