X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;ds=inline;f=simpleWebSlides.js;h=e73a1a2252cab4d7b0d49490230afe3b7d0557c2;hb=aa50324ee6e5bf764099971072c3eb6e50443247;hp=42448ea5fa717e7599c29509a2ca12bd54a71d84;hpb=84940d8f7c885110f6ce355ba467dba4f71d7f4d;p=hacks%2FsimpleWebSlides.git diff --git a/simpleWebSlides.js b/simpleWebSlides.js index 42448ea..e73a1a2 100644 --- a/simpleWebSlides.js +++ b/simpleWebSlides.js @@ -2,7 +2,7 @@ Namespace object. */ -var SWS = {}; +var SWS = SWS || {}; @@ -44,7 +44,12 @@ SWS.Utils = new function () { return result; }; - + self.getParameterByName = function (name) { + name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); + var regex = new RegExp("[\\?&]" + name + "=([^]*)"), + results = regex.exec(location.search); + return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); + } }; @@ -52,6 +57,33 @@ SWS.Utils = new function () { SWS.Templates = new function () { var self = this; + self.controlPanel = "
"; self.slideActivate = function (o) { if (!(o.hasClass("sws-active-slide"))){ o.removeClass("sws-inactive-slide").addClass("sws-active-slide"); @@ -73,7 +105,6 @@ SWS.Templates = new function () { self.objectActivate = function (o) { if (!(o.hasClass("sws-active-object"))){ o.removeClass("sws-inactive-object").addClass("sws-active-object"); - o.css({'visibility':'visible'}); return true; }; return false; @@ -95,7 +126,7 @@ SWS.Templates = new function () { + (i + 1) +""); var sep = $( ""); - var tot = $( "" + var tot = $( "" + (SWS.Presentation.getNumSlides()) +""); footer.append(cur).append(sep).append(tot); @@ -121,14 +152,17 @@ SWS.Effects = new function () { var self = this; self.objectDeactivateFadeOut = function (o) { - o.animate({'opacity': '0'}, 150, - function () { SWS.Templates.objectDeactivate(o)}); + o.animate({'opacity': '0'}, 200, + function () { + + SWS.Templates.objectDeactivate(o); + }); }; self.objectActivateFadeIn = function (o) { if (SWS.Templates.objectActivate(o)){ - o.animate({'opacity': '1' }, 150); + o.animate({'opacity': '1' }, 200); }; }; @@ -160,13 +194,19 @@ SWS.Effects = new function () { var t = SWS.Presentation.getSlide(to); if (from < to) { t.css('left', '100%'); + t.css('opacity', '1'); SWS.Templates.slideActivate(t); - f.animate({ 'left': '-100%' }, 250, function () { SWS.Templates.slideDeactivate(f); }); - t.animate({ 'left': '0%' }, 250); + f.animate({ 'left': '-100%' }, 250, function () { SWS.Templates.slideDeactivate(f); + f.css('opacity', '0'); + t.animate({ 'left': '0%' }, 250); + }); } else { t.css('left', '-100%'); SWS.Templates.slideActivate(t); - f.animate({ 'left': '100%' }, 250, function () { SWS.Templates.slideDeactivate(f); }); + f.animate({ 'left': '100%' }, 250, function () { SWS.Templates.slideDeactivate(f); + f.css('opacity', '0'); + }); + t.css('opacity', '1'); t.animate({ 'left': '0%' }, 250); }; }; @@ -190,6 +230,43 @@ SWS.Effects = new function () { }; +SWS.Fullscreen = new function () { + var self = this; + + if (SWS.Utils.isUndefined(document.fullScreen)) { + if (SWS.Utils.isUndefined(document.mozfullScreen)) { + self.status = function () { return document.webkitIsFullScreen; }; + self.enter = function(e) { + e.webkitRequestFullScreen(); + }; + self.exit = function () { + document.webkitCancelFullScreen(); + }; + + } else { + self.status = function () { return document.mozfullScreen; }; + self.enter = function(e) { + e.mozRequestFullScreen(); + }; + self.exit = function () { + document.mozCancelFullScreen(); + }; + + }; + } else { + self.status = function () { return document.fullScreen; }; + self.enter = function(e) { + e.requestFullScreen(); + }; + self.exit = function () { + document.cancelFullScreen(); + }; + + }; + + +}; + SWS.Presentation = new function () { @@ -201,9 +278,10 @@ SWS.Presentation = new function () { var _total_slides; var _initialized = false; var _disable_input_events = false; - + var _print_mode = false; var _slide_callbacks = new Array (); - + var _total_steps = -1; + var _current_theme = ""; self.getNumSlides = function () { return _total_slides; }; @@ -225,7 +303,7 @@ SWS.Presentation = new function () { if (typeof(Storage)!=="undefined"){ self.getCurrentSlide = function () { //unary + casts to integer - var i = +(sessionStorage.current_slide); + var i = +(sessionStorage.getItem("current_slide")); if (!(i >= 0 && i < self.getNumSlides())){ return 0; } else { @@ -234,7 +312,7 @@ SWS.Presentation = new function () { }; self.setCurrentSlide = function (i) { - sessionStorage.current_slide = i; + sessionStorage.setItem("current_slide", i); }; } else { @@ -254,15 +332,18 @@ SWS.Presentation = new function () { var to_slide_num = self.getCurrentSlide(); var watch_slide_anim = false; var to_slide = $(canvas[to_slide_num]); + var from_slide = $(canvas[from_slide_num]); 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); }; @@ -271,9 +352,9 @@ SWS.Presentation = new function () { var cur = info.current; var custom = info.custom; - var real_slide = to_slide.children(".sws-slide"); + var real_slide = to_slide.find(".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)); @@ -287,12 +368,8 @@ SWS.Presentation = new function () { callbacks[k]($(to_slide)); }; - var to_watch = $(to_slide).find("*"); - if (watch_slide_anim) { - to_watch = to_watch.add(to_slide).add($(canvas[from_slide_num])); - }; - - to_watch.find("*").promise().done(function() { + var all = $(from_slide).add(to_slide); + all.find("*").addBack().promise().done(function() { _disable_input_events = false; }); }; @@ -300,11 +377,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 () { @@ -314,6 +393,18 @@ SWS.Presentation = new function () { var infos = canvas.data("sws-frame-info"); return infos; }; + + self.getTotalSteps = function () { + if (_total_steps >= 0) return _total_steps; + _total_steps = 0; + $(".sws-canvas").each(function(i) { + var canvas = $($(".sws-canvas")[i]); + var infos = canvas.data("sws-frame-info"); + _total_steps += infos.last + 1; + }); + return _total_steps; + }; + self.getCurrentFrame = function () { return self.getFrameInfo().current; }; self.setCurrentFrame = function (i) { self.getFrameInfo().current = i; }; self.firstFrame = function () { return 0; }; @@ -331,9 +422,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(); }; @@ -352,14 +444,57 @@ 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.printMode = function () { + _print_mode = true; + var progress = $("