code: def _setup_bindings(self):
          
          self._timeline.bind("<Configure>", self.__configure_timeline)
          for widget in [self, self._canvas_scroll, self._timeline, self._canvas_categories]:
              widget.bind("<MouseWheel>", self._mouse_scroll_v)
              widget.bind("<Shift-MouseWheel>", self._mouse_scroll_h)
          # Callback bindings
          self._timeline.bind("<ButtonPress-1>", self._left_click)
          self._timeline.bind("<B1-Motion>", self._left_motion)
          self._timeline.bind("<ButtonPress-3>", self._right_click)
          self._timeline.tag_bind("marker", "<Enter>", self._enter_handler)
          self._timeline.tag_bind("marker", "<Leave>", self._leave_handler)
          self._canvas_ticks.bind("<B1-Motion>", self._time_marker_move)
          self._canvas_ticks.bind("<ButtonRelease-1>", self._time_marker_release)
docs: Setup the event bindings for the widgets:
          Configure for _timeline
          Horizontal and Vertical scrolling for all widgets