Add key 's' for cycling through stylesheets.
[hacks/simpleWebSlides.git] / simpleWebSlides.js
index 9993a51..10d5d03 100644 (file)
@@ -103,7 +103,7 @@ SWS.Templates = new function () {
                          + (i + 1)
                          +"</span>");
             var sep = $( "<span class='sws-slide-num-sep' />");
-            var tot = $( "<span class='sws-current-slide-number'>"
+            var tot = $( "<span class='sws-last-slide-number'>"
                          + (SWS.Presentation.getNumSlides())
                          +"</span>");
             footer.append(cur).append(sep).append(tot);
@@ -265,12 +265,13 @@ SWS.Presentation = new function () {
         var slide_change = (from_slide_num != to_slide_num);
 
         var info = to_slide.data("sws-frame-info");
+        SWS.Config['sws-update-header'](to_slide);
+        SWS.Config['sws-update-footer'](to_slide);
+
         if (slide_change) {
             //Launch a slide transition:
             SWS.Config['sws-slide-change'](from_slide_num, to_slide_num);
             watch_slide_anim = true;
-            SWS.Config['sws-update-header'](to_slide);
-            SWS.Config['sws-update-footer'](to_slide);
             for (var i = 0; i < info.callbacks.at_slide.length;i++){
                 info.callbacks.at_slide[i](to_slide);
             };
@@ -281,7 +282,7 @@ SWS.Presentation = new function () {
         var custom = info.custom;
         var real_slide = to_slide.children(".sws-slide");
 
-        to_slide.children(".sws-slide").find("*").andSelf().each(function (i){
+        real_slide.find("*").andSelf().each(function (i){
             var frameset = $(this).data("sws-frame-set") || {};
             if (frameset[cur])
                 SWS.Config['sws-object-activate']($(this));
@@ -308,11 +309,13 @@ SWS.Presentation = new function () {
     self.nextSlide = function () {
         self.setCurrentSlide(Math.min(self.getCurrentSlide()+1,
                                       self.lastSlide()));
+        self.setCurrentFrame(self.firstFrame());
     };
 
     self.previousSlide = function () {
         self.setCurrentSlide(Math.max(self.getCurrentSlide()-1,
                                       self.firstSlide()));
+        self.setCurrentFrame(self.firstFrame());
     };
 
     self.getFrameInfo = function () {
@@ -339,9 +342,10 @@ SWS.Presentation = new function () {
 
     self.next = function () {
         var i = self.getCurrentFrame();
-        if (i == self.lastFrame())
+        if (i == self.lastFrame()) {
             self.nextSlide();
-        else
+            self.setCurrentFrame(self.firstFrame());
+        } else
             self.nextFrame();
     };
 
@@ -360,11 +364,18 @@ SWS.Presentation = new function () {
             f = 0;
         if (!(s >= self.firstSlide() && s <= self.lastSlide())) return;
         self.setCurrentSlide(s);
-        if (!(f >= self.firstFrame() && s <= self.lastFrame())) f = 0;
+        if (!(f >= self.firstFrame() && f <= self.lastFrame())) f = 0;
         self.setCurrentFrame(f);
         self.refresh();
     };
 
+    self.cycleStyle = function() {
+        var styles = $("head").children('link[rel$="stylesheet"][title]');
+        var j = styles.index(styles.filter(':not(:disabled)'));
+        styles[j].disabled = true;
+        if (++j == styles.length) j = 0;
+        styles[j].disabled = false;
+    };
 
     self.inputHandler = function (event) {
         if (_disable_input_events) return;
@@ -394,6 +405,9 @@ SWS.Presentation = new function () {
         case 80: /* p */
             self.previousSlide();
             break;
+        case 83: /* s */
+            self.cycleStyle();
+            return;
         case 67: /* c */
             $("#sws-control-panel").toggle();
         default:
@@ -502,7 +516,7 @@ SWS.Presentation = new function () {
             if (i == cur) {
                 canvas
                     .addClass("sws-active-slide")
-                    .removeClass("sws-inacitve-slide");
+                    .removeClass("sws-inactive-slide");
             } else {
                 canvas
                     .addClass("sws-inactive-slide")