/**
  * Fills the interior of the rectangle specified by the arguments, with the receiver's background.
  *
  * @param gc the gc where the rectangle is to be filled
  * @param x the x coordinate of the rectangle to be filled
  * @param y the y coordinate of the rectangle to be filled
  * @param width the width of the rectangle to be filled
  * @param height the height of the rectangle to be filled
  * @exception IllegalArgumentException
  *     <ul>
  *       <li>ERROR_NULL_ARGUMENT - if the gc is null
  *       <li>ERROR_INVALID_ARGUMENT - if the gc has been disposed
  *     </ul>
  *
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  *
  * @since 3.2
  */
 public void drawBackground(GC gc, int x, int y, int width, int height) {
   x = DPIUtil.autoScaleUp(x);
   y = DPIUtil.autoScaleUp(y);
   width = DPIUtil.autoScaleUp(width);
   height = DPIUtil.autoScaleUp(height);
   drawBackgroundInPixels(gc, x, y, width, height, 0, 0);
 }
 /**
  * Scrolls a rectangular area of the receiver by first copying the source area to the destination
  * and then causing the area of the source which is not covered by the destination to be
  * repainted. Children that intersect the rectangle are optionally moved during the operation. In
  * addition, all outstanding paint events are flushed before the source area is copied to ensure
  * that the contents of the canvas are drawn correctly.
  *
  * @param destX the x coordinate of the destination
  * @param destY the y coordinate of the destination
  * @param x the x coordinate of the source
  * @param y the y coordinate of the source
  * @param width the width of the area
  * @param height the height of the area
  * @param all <code>true</code>if children should be scrolled, and <code>false</code> otherwise
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public void scroll(int destX, int destY, int x, int y, int width, int height, boolean all) {
   checkWidget();
   destX = DPIUtil.autoScaleUp(destX);
   destY = DPIUtil.autoScaleUp(destY);
   x = DPIUtil.autoScaleUp(x);
   y = DPIUtil.autoScaleUp(y);
   width = DPIUtil.autoScaleUp(width);
   height = DPIUtil.autoScaleUp(height);
   scrollInPixels(destX, destY, x, y, width, height, all);
 }