Beispiel #1
0
 def _move_viewport(self, dx=0, dy=0, x=None, y=None, force_draw=False):
     if x is None:
         x = self._view_col0 + dx
     if y is None:
         y = self._view_row0 + dy
     ncol0 = clamp(x, 0, self._max_col0)
     nrow0 = clamp(y, 0, self._max_row0)
     if ncol0 != self._view_col0 or nrow0 != self._view_row0 or force_draw:
         self._view_col0 = ncol0
         self._view_row0 = nrow0
         self._draw()
Beispiel #2
0
    def _fetch_data(self):
        """
        Retrieve frame data within the current view window.

        This method will adjust the view window if it goes out-of-bounds.
        """
        self._view_col0 = clamp(self._view_col0, 0, self._max_col0)
        self._view_row0 = clamp(self._view_row0, 0, self._max_row0)
        self._view_ncols = clamp(self._view_ncols, 0,
                                 self._frame_ncols - self._view_col0)
        self._view_nrows = clamp(self._view_nrows, 0,
                                 self._frame_nrows - self._view_row0)
        return self._data_callback(self._view_row0,
                                   self._view_row0 + self._view_nrows,
                                   self._view_col0,
                                   self._view_col0 + self._view_ncols)