HTML-Object

 view release on metacpan or  search on metacpan

lib/HTML/Object/DOM/TextTrackList.pm  view on Meta::CPAN


sub onchange : lvalue { return( shift->on( 'change', @_ ) ); }

sub onremovetrack : lvalue { return( shift->on( 'removetrack', @_ ) ); }

sub _on_children_add
{
    my $self = shift( @_ );
    my( $pos, $ref ) = @_;
    my $track = $ref->[0];
    $self->_trigger_event_for( addtrack => {
        class => 'HTML::Object::DOM::TrackEvent',
        callback => sub
        {
            my $event = shift( @_ );
            $event->track( $track );
        }
    });
}

sub _on_children_remove
{
    my $self = shift( @_ );
    my( $pos, $ref ) = @_;
    my $track = $ref->[0];
    $self->_trigger_event_for( addtrack => {
        class => 'HTML::Object::DOM::TrackEvent',
        callback => sub
        {
            my $event = shift( @_ );
            $event->track( $track );
        }
    });
}

1;
# NOTE: POD
__END__

=encoding utf-8

=head1 NAME

HTML::Object::DOM::TextTrackList - HTML Object DOM Track List Class

=head1 SYNOPSIS

    use HTML::Object::DOM::TextTrackList;
    my $list = HTML::Object::DOM::TextTrackList->new || 
        die( HTML::Object::DOM::TextTrackList->error, "\n" );

Getting a video element's text track list:

    my $textTracks = $doc->querySelector( 'video' )->textTracks;

Monitoring track count changes:

    $textTracks->onaddtrack = \&updateTrackCount;
    $textTracks->onremovetrack = \&updateTrackCount;

    sub updateTrackCount
    {
        my $event = shift( @_ );
        my $trackCount = $textTracks->length;
        drawTrackCountIndicator( $trackCount );
    }

=head1 VERSION

    v0.2.0

=head1 DESCRIPTION

The C<TextTrackList> interface is used to represent a list of the text tracks defined by the C<<track>> element, with each track represented by a separate textTrack object in the list. It inherits from L<HTML::Object::EventTarget>

=head1 INHERITANCE

    +-----------------------+     +---------------------------+     +-------------------------+     +----------------------------------+
    | HTML::Object::Element | --> | HTML::Object::EventTarget | --> | HTML::Object::DOM::List | --> | HTML::Object::DOM::TextTrackList |
    +-----------------------+     +---------------------------+     +-------------------------+     +----------------------------------+

=head1 PROPERTIES

Inherits properties from its parent L<HTML::Object::DOM::List>

=head2 length

The number of tracks in the list.

Example:

    my $media = $doc->querySelector( 'video, audio' );
    my $numTextTracks = 0;

    if( $media->textTracks )
    {
        $numTextTracks = $media->textTracks->length;
    }

See also L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/length>

=head1 METHODS

Inherits methods from its parent L<HTML::Object::DOM::List>

=head2 addEventListener

Set a new event listener for the provided event type. See L<HTML::Object::EventTarget>

=head2 children

Set or get an L<array object|Module::Generic::Array> of elements. 

=head2 forEach

Provided with a callback code reference and this will call it for each child element.

See L<Module::Generic::Array/foreach>

=head2 getTrackById



( run in 0.695 second using v1.01-cache-2.11-cpan-5735350b133 )