indexing description: "[ Mouse sensitive objects which dispatches mouse events. Subscribe on an event-type you want to be notified. In case of a mouse click the event order is: `mouse_button_down_event' `mouse_button_up_event' `mouse_clicked_event' In case of a mouse drag the event order is: `mouse_button_down_event' `mouse_drag_start_event' `mouse_dragged_event' (as long as the mouse is moved) `mouse_button_up_event' `mouse_drag_stop_event' Note: it is possible NOT to receive a `mouse_drag_stop_event' if the mouse exited during dragging. You will then receive a `mouse_exited_event' instead. If the mouse is dragged outside the area and back in, you will receive a `mouse_exited_event' and `mouse_entered_event' event in between `mouse_dragged_event's. ]" date: "$Date$" revision: "$Revision$" deferred class EM_MOUSE_SENSITIVE feature {NONE} -- Initialisation make_mouse_sensitive is -- Initialise default values. do create mouse_button_down_event create mouse_button_up_event create mouse_clicked_event create mouse_moved_event create mouse_dragged_event create mouse_drag_start_event create mouse_drag_stop_event create mouse_wheel_up_event create mouse_wheel_down_event create mouse_entered_event create mouse_exited_event end feature -- Events mouse_button_down_event: EM_EVENT_CHANNEL [TUPLE[EM_MOUSEBUTTON_EVENT]] -- Mouse button down event mouse_button_up_event: EM_EVENT_CHANNEL [TUPLE[EM_MOUSEBUTTON_EVENT]] -- Mouse button up event mouse_clicked_event: EM_EVENT_CHANNEL [TUPLE[EM_MOUSEBUTTON_EVENT]] -- Mouse clicked event mouse_moved_event: EM_EVENT_CHANNEL [TUPLE[EM_MOUSEMOTION_EVENT]] -- Mouse moved event mouse_dragged_event: EM_EVENT_CHANNEL [TUPLE[EM_MOUSEMOTION_EVENT]] -- Mouse dragged event mouse_drag_start_event: EM_EVENT_CHANNEL [TUPLE[EM_MOUSE_EVENT]] -- Mouse drag start event mouse_drag_stop_event: EM_EVENT_CHANNEL [TUPLE[EM_MOUSE_EVENT]] -- Mouse drag stop event mouse_wheel_up_event: EM_EVENT_CHANNEL [TUPLE []] -- Mouse wheel up event mouse_wheel_down_event: EM_EVENT_CHANNEL [TUPLE []] -- Mouse wheel down event mouse_entered_event: EM_EVENT_CHANNEL [TUPLE []] -- Mouse entered event mouse_exited_event: EM_EVENT_CHANNEL [TUPLE []] -- Mouse exited event invariant mouse_button_down_event_not_void: mouse_button_down_event /= Void mouse_button_up_event_not_void: mouse_button_up_event /= Void mouse_clicked_event_not_void: mouse_clicked_event /= Void mouse_moved_event_not_void: mouse_moved_event /= Void mouse_dragged_event_not_void: mouse_dragged_event /= Void mouse_drag_start_event_not_void: mouse_drag_start_event /= Void mouse_drag_stop_event_not_void: mouse_drag_stop_event /= Void mouse_wheel_up_event_not_void: mouse_wheel_up_event /= Void mouse_wheel_down_event_not_void: mouse_wheel_down_event /= Void mouse_entered_event_not_void: mouse_entered_event /= Void mouse_exited_event_not_void: mouse_exited_event /= Void end