Scroll to navigation

Prima::Widget::MouseScroller(3) User Contributed Perl Documentation Prima::Widget::MouseScroller(3)

NAME

Prima::Widget::MouseScroller - auto-repeating mouse events

DESCRIPTION

Implements routines for emulation of auto repeating mouse events. A code inside "MouseMove" callback can be implemented by the following scheme:

        if ( mouse_pointer_inside_the_scrollable_area) {
                $self-> scroll_timer_stop;
        } else {
                $self-> scroll_timer_start unless $self-> scroll_timer_active;
                return unless $self-> scroll_timer_semaphore;
                $self-> scroll_timer_semaphore( 0);
        }

The class uses a semaphore "{mouseTransaction}", which should be set to non-zero if a widget is in mouse capture state, and set to zero or "undef" otherwise.

The class starts an internal timer, which sets a semaphore and calls "MouseMove" notification when triggered. The timer is assigned the timeouts, returned by "Prima::Application::get_scroll_rate" ( see "get_scroll_rate" in Prima::Application ).

Methods

Returns a boolean value indicating if the internal timer is started.
A semaphore, set to 1 when the internal timer was triggered. It is advisable to check the semaphore state to discern a timer-generated event from the real mouse movement. If VALUE is specified, it is assigned to the semaphore.
Starts the internal timer.
Stops the internal timer.

AUTHOR

Dmitry Karasik, <dmitry@karasik.eu.org>.

SEE ALSO

Prima, Prima::Widget, Prima::ScrollBar.

2024-02-01 perl v5.38.2