NAME
Tk::MultiMediaControls - Create media player control buttons.
SYNOPSIS
$mmc = $parent->MultiMediaControls(-option => value, ... );
DESCRIPTION
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
- -fastcommand
- -fasthighlightcommand
- -homecommand
- -homehighlightcommand
- -leftcommand
- -pausecommand
- -pausehighlightcommand
- -playcommand
- -playhighlightcommand
- -rewindcommand
- -rewindhighlightcommand
- -rightcommand
- -stopcommand
- -stophighlightcommand
-
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.
METHODS
A MultiMediaControls widget has no additional methods.
EXAMPLE
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;
AUTHOR
sol0@Lehigh.EDU
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.
KEYWORDS
Apple, QuickTime, animation, multimedia, iMovie, iTunes
BUGS
I'm sure there are end cases and errors that I've neglected to catch.