def on_mouse_release(self, event):
        """Set the value under the mouse.

        That is, we determine which value is under the
        mouse based on the position of the relative to
        the right coordinate of each available option
        in this option tray widget and then passes the
        value to the set() method, which sets it as the
        new value of this widget, if it is different
        than the current one.

        Parameters
        ==========
        event
            (pygame.event.Event of pygame.MOUSEBUTTONUP
            type)

            we retrieve the position of the mouse from it,
            to find which value was pressed;

            check pygame.event module documentation on
            pygame website for more info about this event
            object.
        """
        ### retrieve mouse x position
        mouse_x = event.pos[0]

        ### retrieve x position of this widget
        widget_x = self.rect.x

        ### obtain the mouse x coordinate relative to
        ### the widget's x coordinate (horizontal origin)
        relative_mouse_x = mouse_x - widget_x

        ### iterate over the available options and their
        ### respective right coordinates looking for the
        ### value whose right coordinate is located after
        ### the mouse relative x position;
        ###
        ### after we leave "for loop", the 'value'
        ### variable will be holding the value for which
        ### we are looking, that is, the one that we
        ### clicked (actually, the one over which we
        ### released the mouse)

        for value, value_right in zip(self.options, self.right_coordinates):
            if relative_mouse_x < value_right:
                break

        ### we finally pass the value to set(), which will
        ### set it as the new value for this widget, if it
        ### is different than the current one
        self.set(value)
Set the value under the mouse.

        That is, we determine which value is under the
        mouse based on the position of the relative to
        the right coordinate of each available option
        in this option tray widget and then passes the
        value to the set() method, which sets it as the
        new value of this widget, if it is different
        than the current one.

        Parameters
        ==========
        event
            (pygame.event.Event of pygame.MOUSEBUTTONUP
            type)

            we retrieve the position of the mouse from it,
            to find which value was pressed;

            check pygame.event module documentation on
            pygame website for more info about this event
            object.
        
nodezator/widget/optiontray/op.py