code: def copy_result(self, selection):
          
  
          bbox = selection.get_bbox()
  
          if not bbox:
              # There is no selection
              bb_top, bb_left = self.grid.actions.cursor[:2]
              bb_bottom, bb_right = bb_top, bb_left
          else:
              # Thereis a selection
              (bb_top, bb_left), (bb_bottom, bb_right) = bbox
  
          if bb_top == bb_bottom and bb_left == bb_right:
              # We have  a single selection
  
              tab = self.grid.current_table
              result = self.grid.code_array[bb_top, bb_left, tab]
  
              if isinstance(result, wx._gdi.Bitmap):
                  # The result is a wx.Bitmap. Return it.
                  return result
  
              elif Figure is not None and isinstance(result, Figure):
                  # The result is a matplotlib figure
                  # Therefore, a wx.Bitmap is returned
                  key = bb_top, bb_left, tab
                  rect = self.grid.CellToRect(bb_top, bb_left)
                  merged_rect = self.grid.grid_renderer.get_merged_rect(
                      self.grid, key, rect)
                  dpi = float(wx.ScreenDC().GetPPI()[0])
                  zoom = self.grid.grid_renderer.zoom
  
                  return fig2bmp(result, merged_rect.width, merged_rect.height,
                                 dpi, zoom)
  
          # So we have result strings to be returned
          getter = self._get_result_string
  
          return self.copy(selection, getter=getter)
docs: Returns result
  
          If selection consists of one cell only and result is a bitmap then
          the bitmap is returned.
          Otherwise the method returns string representations of the result
          for the given selection in a tab separated string.