From: <de...@de...> - 2010-12-29 00:29:24
|
Author: PeterThoeny Date: 2010-12-28 18:29:17 -0600 (Tue, 28 Dec 2010) New Revision: 20049 Trac url: http://develop.twiki.org/trac/changeset/20049 Modified: twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin.pm twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin/SlideShow.pm Log: Item6626: New slide navigation using keys: Home, Left-arrow, Page-up, Right-arrow, Page-down, End and Esc -- this requires JavaScript Modified: twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin/SlideShow.pm =================================================================== --- twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin/SlideShow.pm 2010-12-29 00:27:25 UTC (rev 20048) +++ twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin/SlideShow.pm 2010-12-29 00:29:17 UTC (rev 20049) @@ -135,6 +135,50 @@ $text =~ s/%BR%/<br \/>/go; $text .= $textPost; + my $viewUrl = TWiki::Func::getViewUrl( $theWeb, $theTopic ); + TWiki::Func::addToHEAD( 'SLIDESHOWPLUGIN_JS', <<HERE); +<script type="text/javascript"> +if( navigator.appName != 'Mozilla' ){ document.onkeypress = captureKey} +else{ document.addEventListener( 'keyup', captureKey, true ) } +function captureKey(e) +{ + var keyCode = (typeof event != 'undefined' ) ? window.event.keyCode : e.keyCode; + if( keyCode == 33 || keyCode == 37 ) { // Page-Up or Arrow-Left + goSlide( 'p' ); + return false; + } else if( keyCode == 34 || keyCode == 39 ) { // Page-Down or Arrow-Right + goSlide( 'n' ); + return false; + } else if( keyCode == 36 ) { // Home + goSlide( 1 ); + return false; + } else if( keyCode == 35 ) { // End + goSlide( $slideMax ); + return false; + } else if( keyCode == 27 ) { // Esc + location.href = '$viewUrl'; + return false; + } +} +function goSlide( action ) +{ + var anchor = location.href.replace( /.*#/, '' ); + var num = anchor.replace( /[^0-9]/g, '' )/1; + if( num == '' ) num = 1; + if( action == 'n' ) { + if( num < $slideMax + 1 ) num = num + 1; + } else if( action == 'p' ) { + if( num > 1 ) num = num - 1; + } else( num = action ); + if( anchor == '' ) { + location.href = location.href + '#GoSlide' + num; + } else { + location.href = location.href.replace( '#' + anchor, '#GoSlide' + num ); + } +} +</script> +HERE + } else { # in normal topic view mode if( $text =~ /[\n\r]\-\-\-+(\++)/s ) { Modified: twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin.pm =================================================================== --- twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin.pm 2010-12-29 00:27:25 UTC (rev 20048) +++ twiki/branches/TWikiRelease05x00/SlideShowPlugin/lib/TWiki/Plugins/SlideShowPlugin.pm 2010-12-29 00:29:17 UTC (rev 20049) @@ -1,6 +1,6 @@ # Plugin for TWiki Enterprise Collaboration Platform, http://TWiki.org/ # -# Copyright (C) 2002-2010 Peter Thoeny, pe...@th...i, and +# Copyright (C) 2002-2010 Peter Thoeny, pe...@th..., and # TWiki Contributors. # # This program is free software; you can redistribute it and/or @@ -24,7 +24,7 @@ ); $VERSION = '$Rev$'; -$RELEASE = '2010-05-16'; +$RELEASE = '2010-12-28'; # ========================= sub initPlugin |