docs: def waitgrab(self, timeout=60, autocrop=True, cb_imgcheck=None):
          '''start process and create screenshot.
          Repeat screenshot until it is not empty and
          cb_imgcheck callback function returns True
          for current screenshot.
  
          :param autocrop: True -> crop screenshot
          :param timeout: int
          :param cb_imgcheck: None or callback for testing img,
                              True = accept img,
                              False = reject img
          '''
          t = 0
          sleep_time = 0.3  # for fast windows
          repeat_time = 1
          while 1:
              log.debug('sleeping %s secs' % str(sleep_time))
              time.sleep(sleep_time)
              t += sleep_time
              img = self.grab(autocrop=autocrop)
              if img:
                  if not cb_imgcheck:
                      break
                  if cb_imgcheck(img):
                      break
              sleep_time = repeat_time
              repeat_time += 1  # progressive
              if t > timeout:
                  msg = 'Timeout! elapsed time:%s timeout:%s ' % (t, timeout)
                  raise DisplayTimeoutError(msg)
                  break
  
              log.debug('screenshot is empty, next try..')
          assert img
  #        if not img:
  #            log.debug('screenshot is empty!')
          return img