def mouse_edition_control(self):
        """Process event in mouse edition mode.

        Allows edition of the widget contents by dragging
        the mouse.
        """
        for event in SERVICES_NS.get_events():

            if event.type == QUIT:
                raise QuitAppException

            ### if a shift key is pressed or released,
            ### change the influence of the shift key
            ### on how the mouse movement influences
            ### the displayed value of the widget
            ### (this also performs extra setups)

            ## shift key pressed

            elif event.type == KEYDOWN:

                if event.key in (K_LSHIFT, K_RSHIFT):
                    self.change_shift_influence(True)

            ## shift key released

            elif event.type == KEYUP:

                if event.key in (K_LSHIFT, K_RSHIFT):
                    self.change_shift_influence(False)

            ### if the mouse moves, pass the mouse position
            ### in the x axis to the mouse motion routine

            elif event.type == MOUSEMOTION:
                self.mouse_motion_routine(event.pos[0])

            ### if the left button of the mouse is
            ### released, perform exit setups for the
            ### mouse edition mode and resume editing
            ### the widget's value

            elif event.type == MOUSEBUTTONUP:

                if event.button == 1:

                    self.perform_mouse_edition_exit_setups()
                    self.resume_editing()

            ## if window is resized, set the movement watch
            ## out routine

            elif event.type == WINDOW_RESIZE_EVENT_TYPE:

                self.movement_watch_out_routine = self.watch_out_for_movement

        self.movement_watch_out_routine()
Process event in mouse edition mode.

        Allows edition of the widget contents by dragging
        the mouse.
        
nodezator/widget/intfloatentry/modes.py