Tk::MultiMediaControls - Create media player control buttons.
$mmc = $parent->MultiMediaControls(-option => value, ... );
Create multimedia controls similar to that found on Apple applications like QuickTime, iMovie, iDVD, iTunes, etcetera. This mega-widget accepts a -buttons option that specifies a list of controller buttons, and a series of specialized options that bind callbacks to those buttons.
A list of controller buttons:
[ qw/ home rewind play stop fastforward / ]. You supply the callbacks that implement the above buttons, which nominally have this effect on the movie:
home - reset movie to first frame
rewind - play movie in fast reverse
play - a toggle: play movie at normal speed / pause movie
stop - stop movie (reset to first frame?)
fastforward - play movie in fast forward
Callbacks that are invoked when control buttons are pressed or released. Callbacks that include the string highlight are invoked when Button-1 is pressed and held. With the exception of the -leftcommand and -rightcommand, all other callbacks are invoked when Button-1 is released.
Three keys have special meanings that parallel Apple's bindings. The space bar (space) is bound to toggle the play/pause button. The left-arrow (Left) and right-arrow (Right) should, if possible, display the previous or next movie frame. Use -leftcommand and -rightcommand for this.
A MultiMediaControls widget has no additional methods.
This example creates a MultiMediaControls widget appropriate for a Tk::Animation widget:
my $p = $mw->Animation( -format => 'gif', -file => ' ... ' ); my $mmc = $mw->MultiMediaControls( # Define, from left to right, the window's controller buttons. -buttons => [ qw/ home rewind play stop fastforward / ], # Define callbacks for the buttons' various states. -fastforwardhighlightcommand => [ $p => 'fast_forward', 4 ], -fastforwardcommand => [ $p => 'fast_forward', 1 ], -homecommand => [ $p => 'set_image', 0 ], -pausecommand => [ $p => 'pause_animation' ], -playcommand => [ $p => 'resume_animation' ], -rewindhighlightcommand => [ $p => 'fast_reverse', -4 ], -rewindcommand => [ $p => 'fast_reverse', 1 ], -stopcommand => [ $p => 'stop_animation' ], # Define callbacks for the left and right arrow keys. -leftcommand => [ $p => 'prev_image' ], -rightcommand => [ $p => 'next_image' ], )->pack;
Copyright (C) 2003 - 2004, Steve Lidie. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Apple, QuickTime, animation, multimedia, iMovie, iTunes
I'm sure there are end cases and errors that I've neglected to catch.