/** 
 * Refresh the area specified.
 * @param x relative to drawable
 * @param y relative to drawable
 * @param width width of the area to be updated
 * @param height height of the area to be updated 
 */
MidpError
CustomItem::refresh(int x,
		    int y,
		    int width,
		    int height)
{
#if REPORT_LEVEL <= LOG_INFORMATION
  PlatformMScreen * mscreen = PlatformMScreen::getMScreen();
  reportToLog(LOG_INFORMATION, LC_HIGHUI, 
	      "+ CustomItem::refresh: (%d,%d) (%dx%d)\n",
	      x, y, width, height);
  
  reportToLog(LOG_INFORMATION, LC_HIGHUI, 
	      "+       QWidget::pos() = (%d,%d)  drawable->pos() = (%d,%d)\n",
	      QWidget::pos().x(), QWidget::pos().y(),
	      drawable->pos().x(), drawable->pos().y());
  
  reportToLog(LOG_INFORMATION, LC_HIGHUI, 
	      "+           scroll position = %d\n",
	      mscreen->scrollPosition());

  reportToLog(LOG_INFORMATION, LC_HIGHUI, 
	      "+\t\tbitBlt(\tdst, %d, %d,\n\t\t\tsrc, %d, %d, %d, %d); ",
	      x, // dx
	      y, // dy

	      QWidget::pos().x() + drawable->pos().x() + x,
	      QWidget::pos().y() + drawable->pos().y() + y -
	      mscreen->scrollPosition(),
	      
	      width,
	      height);
#endif
   
  drawable->refresh(x, y, width, height);

  REPORT_INFO(LC_HIGHUI, "bitBlt complete.\n\n");

  return KNI_OK;  
}