docstr: Select the first shape created which contains this point.
docstr_tok: ["Select","the","first","shape","created","which","contains","this","point","."]
code: def selectShapePoint(self, point, multiple_selection_mode):
      """Select the first shape created which contains this point."""
      if self.selectedVertex():  # A vertex is marked for selection.
          index, shape = self.hVertex, self.hShape
          shape.highlightVertex(index, shape.MOVE_VERTEX)
          return self.hVertex
      else:
          for shape in reversed(self.shapes):
              if self.isVisible(shape) and shape.containsPoint(point):
                  self.calculateOffsets(shape, point)
                  self.setHiding()
                  if multiple_selection_mode:
                      if shape not in self.selectedShapes:  # list
                          self.selectionChanged.emit(
                              self.selectedShapes + [shape]
                          )
                  else:
                      self.selectionChanged.emit([shape])
                  return
      self.deSelectShape()
  
imports: import copy
  from PyQt5.QtCore import Qt, pyqtSignal, QPointF, QPoint
  from PyQt5.QtGui import QPainter, QBrush, QColor, QPixmap
  from PyQt5.QtWidgets import QWidget, QMenu, QApplication
  from libs.shape import Shape
  from libs.utils import distance
label_desc: Use image node_id 22 for calling the Canvas obj's underlying member method code with example usage: obj.selectShapePoint(point, multiple_selection_mode) and returns: self