NAME
Clay::UI::Events::OnHoverStart - fired when the pointer comes over a hoverable widget
SYNOPSIS
use v5.22;
use warnings;
use feature 'signatures';
no warnings 'experimental::signatures';
use Object::Pad;
use Clay::XS qw(sizing_grow);
use Clay::UI;
use Clay::UI::Box;
use Clay::UI::Role::Interaction::Hoverable;
class My::Tile :strict(params)
:does(Clay::UI::Box)
:does(Clay::UI::Role::Interaction::Hoverable)
{}
my $tile = My::Tile->new(
id => 'tile',
layout => { sizing => { width => sizing_grow(), height => sizing_grow() } },
);
$tile->on('OnHoverStart', sub ($event) {
say 'pointer entered ', $event->target->id;
return;
});
my $ui = Clay::UI->new(width => 100, height => 100, root => $tile);
$ui->render; # first layout
$ui->render(pointer_state => { x => 50, y => 50, down => 0 }); # "pointer entered tile"
DESCRIPTION
OnHoverStart fires at a Clay::UI::Role::Interaction::Hoverable widget in the frame it comes under the pointer: during "render" in Clay::UI, or during a synthetic "update" in Clay::UI::Interaction. The widget is hovered (is_hovered is 1) when its listeners run. Its partner is Clay::UI::Events::OnHoverStopped.
- Name
-
'OnHoverStart'. - Received by
-
The Hoverable widget that came under the pointer. Every such widget gets its own event, nested ones included; a widget that is not Hoverable gets none.
- Bubbling
-
Does not bubble by default (
Clay::UI::Enum::Bubble->NEVER), like the DOM'smouseenter. - Order
-
All
OnHoverStartevents of a frame fire after itsOnHoverStoppedevents and beforeOnPress, in tree order. An event whose widget is no longer hovered when its turn comes (an earlier listener removed it, say) is dropped.
ACCESSORS
No payload. The inherited accessors (see Clay::UI::Events::Event):
- name
-
'OnHoverStart'. - bubble_mode
-
Clay::UI::Enum::Bubble->NEVER. - target
- current_target
-
The hovered widget.
- handled_by
- result
-
The hovered widget and
HANDLEDwhen one of its listeners returned anything butClay::UI::Enum::Result->CONTINUE.
CLASS METHODS
event_name
my $name = Clay::UI::Events::OnHoverStart->event_name; # 'OnHoverStart'
Returns 'OnHoverStart', the event name listeners register for with on and the default name of a new event (see "event_name" in Clay::UI::Events::Event).
default_bubble_mode
my $mode = Clay::UI::Events::OnHoverStart->default_bubble_mode; # Bubble->NEVER
Returns Clay::UI::Enum::Bubble->NEVER, the default bubble_mode of a new event: OnHoverStart does not bubble (see "default_bubble_mode" in Clay::UI::Events::Event).
SEE ALSO
Clay::UI::Events::OnHoverStopped, Clay::UI::Role::Interaction::Hoverable, "EVENTS" in Clay::UI.