+ self.goToSlide = function (s, f) {
+ if (SWS.Utils.isUndefined(f))
+ f = 0;
+ if (!(s >= self.firstSlide() && s <= self.lastSlide())) return;
+ self.setCurrentSlide(s);
+ 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 = $("<div style='position:fixed;top:0pt;left:0pt;background:white;color:black;width:100%;height:100vh;z-index:200;' id='sws-print-progress'>Rendering presentation: <span id='sws-percent-progress'></span>%</div>");
+ $("body").append(progress);
+
+ $("html").removeClass("sws-display").addClass("sws-print");
+ self.goToSlide(0,0);
+ var steps = self.getTotalSteps();
+ var total_steps = steps;
+ var loop;
+ loop = function () {
+ if (steps >= 0) {
+ //Crazy workaround for chromium
+ ($("link.sws-theme[rel='stylesheet']")[0]).disabled = false;
+ $(".sws-canvas").find("*").addBack().promise().done(function() {
+ var percent = ((total_steps - steps) / total_steps) * 100;
+ console.log(percent);
+ $("#sws-percent-progress").text(Math.round(percent));
+ SWS.Config['sws-slide-change'] = SWS.Templates.slideChange;
+ self.refresh();
+ $($(".sws-canvas")[self.getCurrentSlide()]).css('opacity', 1 );
+ self.next();
+ steps--;
+ loop();
+ })
+ } else {
+ $("#sws-percent-progress").text(100);
+ progress.remove();
+ }
+ };
+ loop();
+
+ }
+