parade 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,12 +8,17 @@
8
8
  * Licenced under the BSD License.
9
9
  * See https://raw.github.com/RobertWHurst/KeyboardJS/master/license.txt
10
10
  */
11
- (function(context, factory) {
11
+
12
+ window.KeyboardCreate = function(name) {
13
+ createKeyboard(name,this,keyboardFactory);
14
+ }
15
+
16
+ createKeyboard = function(name, context, factory) {
12
17
  var namespaces = [], previousValues = {}, library;
13
18
  if(typeof define === 'function' && define.amd) {
14
19
  define(function() { return factory('amd'); });
15
20
  } else {
16
- library = factory('global');
21
+ library = factory('global',name);
17
22
  library.noConflict = function( ) {
18
23
  var args, nI;
19
24
  newNamespaces = Array.prototype.slice.apply(arguments);
@@ -33,10 +38,12 @@
33
38
  namespaces = newNamespaces;
34
39
  return namespaces;
35
40
  };
36
- library.noConflict('KeyboardJS', 'k');
41
+ library.noConflict(name);
37
42
  }
38
- })(this, function(env) {
39
- var KeyboardJS = {}, locales, locale, map, macros, activeKeys = [], bindings = [], activeBindings = [], activeMacros = [];
43
+ };
44
+
45
+ keyboardFactory = function(env) {
46
+ var keyboardJS = {}, locales, locale, map, macros, activeKeys = [], bindings = [], activeBindings = [], activeMacros = [];
40
47
 
41
48
  //INDEXOF POLLYFILL
42
49
  [].indexOf||(Array.prototype.indexOf=function(a,b,c){for(c=this.length,b=(c+~~b)%c;b<c&&(!(b in this)||this[b]!==a);b++);return b^c?b:-1;});
@@ -218,7 +225,7 @@
218
225
  }
219
226
 
220
227
  //If you create a new locale please submit it as a pull request or post it in the issue tracker at
221
- // http://github.com/RobertWhurst/KeyboardJS/issues/
228
+ // http://github.com/RobertWhurst/keyboardJS/issues/
222
229
  };
223
230
  locale = 'us';
224
231
  map = locales[locale].map;
@@ -235,39 +242,39 @@
235
242
  throw new Error('Cannot bind to keydown event. Both addEventListener and attachEvent are unsupported by your browser.');
236
243
  }
237
244
 
238
- KeyboardJS.enable = function() {
239
- KeyboardJS.enabled = true;
245
+ keyboardJS.enable = function() {
246
+ keyboardJS.enabled = true;
240
247
  };
241
248
 
242
- KeyboardJS.disable = function() {
243
- KeyboardJS.enabled = false;
249
+ keyboardJS.disable = function() {
250
+ keyboardJS.enabled = false;
244
251
  };
245
252
 
246
- KeyboardJS.toggle = function() {
247
- KeyboardJS.enabled = !KeyboardJS.enabled;
253
+ keyboardJS.toggle = function() {
254
+ keyboardJS.enabled = !keyboardJS.enabled;
248
255
  };
249
256
 
250
- KeyboardJS.enabled = true;
251
- KeyboardJS.activeKeys = getActiveKeys;
252
- KeyboardJS.on = createBinding;
253
- KeyboardJS.clear = removeBindingByKeyCombo;
254
- KeyboardJS.clear.key = removeBindingByKeyName;
255
- KeyboardJS.locale = getSetLocale;
256
- KeyboardJS.locale.register = registerLocale;
257
- KeyboardJS.macro = createMacro;
258
- KeyboardJS.macro.remove = removeMacro;
259
- KeyboardJS.getKey = getKeyName;
260
- KeyboardJS.combo = {};
261
- KeyboardJS.combo.parse = parseKeyCombo;
262
- KeyboardJS.combo.stringify = stringifyKeyCombo;
257
+ keyboardJS.enabled = true;
258
+ keyboardJS.activeKeys = getActiveKeys;
259
+ keyboardJS.on = createBinding;
260
+ keyboardJS.clear = removeBindingByKeyCombo;
261
+ keyboardJS.clear.key = removeBindingByKeyName;
262
+ keyboardJS.locale = getSetLocale;
263
+ keyboardJS.locale.register = registerLocale;
264
+ keyboardJS.macro = createMacro;
265
+ keyboardJS.macro.remove = removeMacro;
266
+ keyboardJS.getKey = getKeyName;
267
+ keyboardJS.combo = {};
268
+ keyboardJS.combo.parse = parseKeyCombo;
269
+ keyboardJS.combo.stringify = stringifyKeyCombo;
263
270
 
264
271
  window.map = map;
265
272
  window.macros = macros;
266
273
 
267
- return KeyboardJS;
274
+ return keyboardJS;
268
275
 
269
276
  function keydown(event) {
270
- if (!KeyboardJS.enabled) { return; }
277
+ if (!keyboardJS.enabled) { return; }
271
278
 
272
279
  var keyNames, kI;
273
280
  keyNames = getKeyName(event.keyCode);
@@ -279,7 +286,6 @@
279
286
  executeBindings(event);
280
287
  }
281
288
  function keyup(event) {
282
- if (!KeyboardJS.enabled) { return; }
283
289
 
284
290
  var keyNames, kI;
285
291
  keyNames = getKeyName(event.keyCode);
@@ -287,13 +293,13 @@
287
293
  for(kI = 0; kI < keyNames.length; kI += 1) {
288
294
  removeActiveKey(keyNames[kI]);
289
295
  }
296
+ if (!keyboardJS.enabled) { return; }
290
297
  pruneMacros();
291
298
  pruneBindings(event);
292
299
  }
293
300
  function blur(event) {
294
- if (!KeyboardJS.enabled) { return; }
295
-
296
301
  activeKeys = [];
302
+ if (!keyboardJS.enabled) { return; }
297
303
  pruneMacros();
298
304
  pruneBindings(event);
299
305
  }
@@ -423,7 +429,7 @@
423
429
  function removeBindingByKeyCombo(keyCombo) {
424
430
  var bI, binding, keyName;
425
431
  for(bI = 0; bI < bindings.length; bI += 1) {
426
- binding = bindings[bi];
432
+ binding = bindings[bI];
427
433
  if(compareCombos(keyCombo, binding.keyCombo)) {
428
434
  bindings.splice(bI, 1); bI -= 1;
429
435
  }
@@ -723,11 +729,11 @@
723
729
  function getSetLocale(localeName) {
724
730
  if(!localeName) {
725
731
  if(typeof localeName !== 'string') { throw new Error('Cannot set locale. The locale name must be a string.'); }
726
- if(!locales[localeName]) { throw new Error('Cannot set locale to ' + localeName + ' because it does not exist. If you would like to submit a ' + localeName + ' locale map for KeyboardJS please submit it at https://github.com/RobertWHurst/KeyboardJS/issues.'); }
732
+ if(!locales[localeName]) { throw new Error('Cannot set locale to ' + localeName + ' because it does not exist. If you would like to submit a ' + localeName + ' locale map for keyboardJS please submit it at https://github.com/RobertWHurst/keyboardJS/issues.'); }
727
733
  locale = localeName;
728
734
  map = locales[locale].map;
729
735
  macros = locales[locale].macros;
730
736
  }
731
737
  return locale;
732
738
  }
733
- });
739
+ };
@@ -8,8 +8,20 @@ $(document).ready(function() {
8
8
  next : publishCommand('presentation:slide:next'),
9
9
  previous : publishCommand('presentation:slide:previous'),
10
10
  goto : function(tokens) {
11
- var slide = parseInt(tokens[0]) - 1;
12
- $.publish('presentation:slide:location:change',slide);
11
+
12
+ var gotoSlideNumber = undefined;
13
+
14
+ if ( parseInt(tokens[0]) > 0 && parseInt(tokens[0]) < presentation.slideTotal()) {
15
+ gotoSlideNumber = parseInt(tokens[0]) - 1;
16
+ } else if (tokens[0] == 'start') {
17
+ gotoSlideNumber = 0;
18
+ } else if (tokens[0] == 'end') {
19
+ gotoSlideNumber = presentation.slideTotal() - 1;
20
+ } else {
21
+ gotoSlideNumber = presentation.slides.findClosestToQuery(presentation.currentSlide.sequence,tokens[0]) - 1;
22
+ }
23
+
24
+ $.publish('presentation:slide:location:change',gotoSlideNumber);
13
25
  }
14
26
  };
15
27
 
@@ -22,23 +22,20 @@
22
22
  var self = this;
23
23
  self.terminal = this.find('.td').terminal(eval, settings);
24
24
  var focus = false;
25
- $(document.documentElement).keypress(function(e) {
26
- if (e.which == 96) {
27
- self.slideToggle('fast');
28
- self.terminal.set_command('');
29
- self.terminal.focus(focus = !focus);
30
-
31
- if (focus) {
32
- $.publish("console:show");
33
- } else {
34
- $.publish("console:hidden");
35
- }
36
-
37
- self.terminal.attr({
38
- scrollTop: self.terminal.attr("scrollHeight")
39
- });
40
- }
41
- });
25
+
26
+ self.toggle = function(focus) {
27
+ self.slideToggle('fast');
28
+ self.terminal.set_command('');
29
+ self.terminal.focus(focus);
30
+
31
+ self.terminal.attr({
32
+ scrollTop: self.terminal.attr("scrollHeight")
33
+ });
34
+ }
35
+
36
+ $.subscribe("console:show", function() { self.toggle(true); });
37
+ $.subscribe("console:hidden", function() { self.toggle(false); });
38
+
42
39
  $('body').data('tilda', this);
43
40
  this.hide();
44
41
  return self;
@@ -76,7 +73,7 @@ $(document).ready(function() {
76
73
  },
77
74
  commands: TerminalCommands
78
75
  }
79
-
76
+
80
77
  $('#tilda').tilda(function(command, terminal) {
81
78
  if (command.length == 0) { return; }
82
79
 
@@ -4,51 +4,105 @@
4
4
 
5
5
  $(document).ready(function() {
6
6
 
7
- $.subscribe("console:show",function() {
8
- KeyboardJS.disable();
9
- });
7
+ KeyboardCreate('MainKeyboard');
10
8
 
11
- $.subscribe("console:hidden",function() {
12
- KeyboardJS.enable();
9
+ MainKeyboard.on('graveaccent',function(){
10
+ $.publish("console:show");
13
11
  });
14
12
 
15
- KeyboardJS.on('space, right, pagedown, down', function(){
13
+ MainKeyboard.on('space, right, pagedown, down', function(){
16
14
  $.publish("presentation:slide:next");
17
15
  });
18
16
 
19
- KeyboardJS.on('shift + space, left, pageup, up', function(){
17
+ MainKeyboard.on('shift + space, left, pageup, up', function(){
20
18
  $.publish("presentation:slide:previous");
21
19
  });
22
20
 
23
- KeyboardJS.on('h, ?', function(){
21
+ MainKeyboard.on('h, ?', function(){
24
22
  $.publish("help:toggle");
25
23
  });
26
24
 
27
- KeyboardJS.on('b, f', function(){
25
+ MainKeyboard.on('b, f', function(){
28
26
  $.publish("presentation:footer:toggle");
29
27
  });
30
28
 
31
- KeyboardJS.on('d', function(){
29
+ MainKeyboard.on('t, c', function(){
30
+ $.publish("navigation:show");
31
+ });
32
+
33
+ MainKeyboard.on('d', function(){
32
34
  $.publish("debug:toggle");
33
35
  });
34
36
 
35
- KeyboardJS.on('n', function(){
37
+ MainKeyboard.on('n', function(){
36
38
  $.publish("presentation:speaker:notes:toggle");
37
39
  });
38
40
 
39
- KeyboardJS.on('shift + p', function(){
41
+ MainKeyboard.on('shift + p', function(){
40
42
  $.publish("presentation:pause:toggle");
41
43
  });
42
44
 
43
- KeyboardJS.on('p', function(){
45
+ MainKeyboard.on('p', function(){
44
46
  $.publish("presentation:preshow:toggle");
45
47
  });
46
48
 
47
- KeyboardJS.on('enter', function(){
49
+ MainKeyboard.on('enter', function(){
48
50
  $.publish("code:execute:visible")
49
51
  });
50
52
 
51
- KeyboardJS.on('escape', function(){
53
+ MainKeyboard.on('escape', function(){
52
54
  $.publish("code:execution:clear");
53
55
  });
56
+
57
+
58
+ KeyboardCreate('ConsoleKeyboard');
59
+ ConsoleKeyboard.disable();
60
+
61
+ ConsoleKeyboard.on('graveaccent',function() {
62
+ $.publish("console:hidden");
63
+ });
64
+
65
+ $.subscribe("console:show", function() {
66
+ setTimeout(function() { ConsoleKeyboard.enable(); }, 50 );
67
+ MainKeyboard.disable();
68
+ });
69
+
70
+ $.subscribe("console:hidden", function() {
71
+ setTimeout(function() { MainKeyboard.enable(); }, 50 );
72
+ ConsoleKeyboard.disable();
73
+ });
74
+
75
+ KeyboardCreate('NavigationKeyboard');
76
+ NavigationKeyboard.disable();
77
+
78
+ NavigationKeyboard.on('t, c, escape',function() {
79
+ $.publish("navigation:hidden");
80
+ });
81
+
82
+ NavigationKeyboard.on('down',function() {
83
+ $.publish("navigation:down");
84
+ });
85
+ NavigationKeyboard.on('up',function() {
86
+ $.publish("navigation:up");
87
+ });
88
+ NavigationKeyboard.on('left',function() {
89
+ $.publish("navigation:left");
90
+ });
91
+ NavigationKeyboard.on('right',function() {
92
+ $.publish("navigation:right")
93
+ });
94
+ NavigationKeyboard.on('enter',function() {
95
+ $.publish("navigation:selection");
96
+ });
97
+
98
+ $.subscribe("navigation:show", function() {
99
+ setTimeout(function() { NavigationKeyboard.enable(); }, 50 );
100
+ MainKeyboard.disable();
101
+ });
102
+
103
+ $.subscribe("navigation:hidden", function() {
104
+ setTimeout(function() { MainKeyboard.enable(); }, 50 );
105
+ NavigationKeyboard.disable();
106
+ });
107
+
54
108
  });
@@ -1,47 +1,3 @@
1
- function ListMenu(s) {
2
- this.slide = s
3
- this.typeName = 'ListMenu'
4
- this.itemLength = 0;
5
- this.items = new Array();
6
- this.addItem = function (key, text, slide) {
7
- if (key.length > 1) {
8
- thisKey = key.shift()
9
- if (!this.items[thisKey]) {
10
- this.items[thisKey] = new ListMenu(slide)
11
- }
12
- this.items[thisKey].addItem(key, text, slide)
13
- } else {
14
- thisKey = key.shift()
15
- this.items[thisKey] = new ListMenuItem(text, slide)
16
- }
17
- }
18
- this.getList = function() {
19
- var newMenu = $("<ul>")
20
- for(var i in this.items) {
21
- var item = this.items[i]
22
- var domItem = $("<li>")
23
- if (item.typeName == 'ListMenu') {
24
- choice = $("<a rel=\"" + (item.slide - 1) + "\" href=\"#\">" + i + "</a>")
25
- domItem.append(choice)
26
- domItem.append(item.getList())
27
- }
28
- if (item.typeName == 'ListMenuItem') {
29
- choice = $("<a rel=\"" + (item.slide - 1) + "\" href=\"#\">" + item.slide + '. ' + item.textName + "</a>")
30
- domItem.append(choice)
31
- }
32
- newMenu.append(domItem)
33
- }
34
- return newMenu
35
- }
36
- }
37
-
38
- function ListMenuItem(t, s) {
39
- this.typeName = "ListMenuItem"
40
- this.slide = s
41
- this.textName = t
42
- }
43
-
44
-
45
1
  $(document).ready(function() {
46
2
 
47
3
  window.Preshow = Spine.Class.create({
@@ -270,6 +226,23 @@ $(document).ready(function() {
270
226
  this.maxSlides = arguments[2];
271
227
 
272
228
  this.transition = this.htmlContent.attr('data-transition');
229
+ this.sequence = parseInt(this.htmlContent.attr('data-sequence'));
230
+ this.title = this.htmlContent.attr('data-title');
231
+
232
+ if (this.title === undefined) {
233
+ this.title = this.htmlContent.text().trim().split("\n")[0];
234
+
235
+ if (this.title.length > 20) {
236
+ this.title = this.title.substr(0,15) + "...";
237
+ }
238
+
239
+ }
240
+
241
+ this.sections = [];
242
+
243
+ if (this.htmlContent.attr('data-sections') != undefined) {
244
+ this.sections = this.htmlContent.attr('data-sections').split(',');
245
+ }
273
246
 
274
247
  this.increments = this.htmlContent.find(".incremental > ul > li");
275
248
  this.currentIncrement = 0;
@@ -289,7 +262,11 @@ $(document).ready(function() {
289
262
  var increment = this.increments.eq(incrementIndex);
290
263
 
291
264
  if (this.codeIncremental && increment.hasClass('command')) {
292
- increment.css('visibility', 'visible').jTypeWriter({duration:1.0});
265
+
266
+ var typeInputOverDuration = increment.find('.input').text().length / 24;
267
+
268
+ increment.find('.prompt').css('visibility', 'visible');
269
+ increment.find('.input').css('visibility', 'visible').jTypeWriter({duration:typeInputOverDuration});
293
270
  } else {
294
271
  increment.css('visibility', 'visible');
295
272
  }
@@ -354,6 +331,34 @@ $(document).ready(function() {
354
331
  },
355
332
  at: function(index) {
356
333
  return new Slide($(this.slides.eq(index)),index,this.size());
334
+ },
335
+ find: function(query) {
336
+ var regexQuery = new RegExp(query,"i");
337
+ var matchedSlideNumbers = [];
338
+ for (var index = 0; index < this.size(); index++) {
339
+ var slide = this.at(index);
340
+ // console.log(slide.title + " " + regexQuery);
341
+ if (regexQuery.exec(slide.title)) { matchedSlideNumbers.push(slide.sequence); }
342
+ }
343
+ console.log("Found: " + matchedSlideNumbers);
344
+ return matchedSlideNumbers;
345
+ },
346
+ findClosestToQuery: function(position,query) {
347
+ console.log('Finding the query `' + query + '` next to position ' + position);
348
+ var matchingSlides = this.find(query);
349
+
350
+ var closestPosition = matchingSlides[0];
351
+ console.log('Defaulting to ' + closestPosition);
352
+
353
+ for (var mI = 0; mI < matchingSlides.length; mI++) {
354
+ if (matchingSlides[mI] > position) {
355
+ console.log('Setting movement to ' + matchingSlides[mI]);
356
+ closestPosition = matchingSlides[mI];
357
+ break;
358
+ }
359
+ }
360
+
361
+ return closestPosition;
357
362
  }
358
363
  });
359
364
 
@@ -364,19 +369,14 @@ $(document).ready(function() {
364
369
  },
365
370
  populate: function(slides) {
366
371
 
367
- var menu = new ListMenu()
368
-
369
- slides.each(function(slideCount, slideElement) {
370
-
371
- // TODO: by default the menu is populated with the html,
372
- // allow the user to specify some metadata
373
-
374
- content = $(slideElement).children(".content")
375
- shortTitle = $(content).text().substr(0, 20)
376
- path = $(content).attr('ref').split('/')
372
+ var menu = new ListMenu();
377
373
 
378
- menu.addItem(path, shortTitle, slideCount + 1)
379
- })
374
+ for (var i = 0; i < slides.size(); i++) {
375
+ var slide = slides.at(i);
376
+ var sectionsMinusRoot = slide.sections.slice(1,slide.sections.length);
377
+ sectionsMinusRoot.push(slide.sequence);
378
+ menu.addItem(sectionsMinusRoot, slide.title, slide.sequence);
379
+ }
380
380
 
381
381
  this.menuView.html(menu.getList());
382
382
 
@@ -397,9 +397,60 @@ $(document).ready(function() {
397
397
  },
398
398
  open: function() {
399
399
  this.element.trigger('click');
400
+ },
401
+ createMenu: function(slide) {
402
+ console.log(this);
403
+ function menu(slide) {
404
+ console.log(this);
405
+ }
400
406
  }
401
407
  });
402
408
 
409
+ function ListMenu(slide) {
410
+ this.slide = slide
411
+ this.typeName = 'ListMenu'
412
+ this.itemLength = 0;
413
+ this.items = new Array();
414
+
415
+ this.addItem = function (key, text, slide) {
416
+ if (key.length > 1) {
417
+ thisKey = key.shift()
418
+ if (!this.items[thisKey]) {
419
+ this.items[thisKey] = new ListMenu(slide)
420
+ }
421
+ this.items[thisKey].addItem(key, text, slide)
422
+ } else {
423
+ thisKey = key.shift()
424
+ this.items[thisKey] = new ListMenuItem(text, slide)
425
+ }
426
+ }
427
+
428
+ this.getList = function() {
429
+ var newMenu = $("<ul>");
430
+ for(var i in this.items) {
431
+ var item = this.items[i];
432
+ var domItem = $("<li>");
433
+ if (item.typeName == 'ListMenu') {
434
+ choice = $("<a rel=\"" + (item.slide - 1) + "\" href=\"#\">" + i + "</a>");
435
+ domItem.append(choice);
436
+ domItem.append(item.getList());
437
+ }
438
+ if (item.typeName == 'ListMenuItem') {
439
+ choice = $("<a rel=\"" + (item.slide - 1) + "\" href=\"#\">" + item.slide + '. ' + item.textName + "</a>");
440
+ domItem.append(choice);
441
+ }
442
+ newMenu.append(domItem);
443
+ }
444
+ return newMenu;
445
+ }
446
+
447
+ }
448
+
449
+ function ListMenuItem(t, s) {
450
+ this.typeName = "ListMenuItem"
451
+ this.slide = s
452
+ this.textName = t
453
+ }
403
454
 
404
455
  window.Presentation = Spine.Class.create({
405
456
  slides: new Slides(),
@@ -421,7 +472,6 @@ $(document).ready(function() {
421
472
 
422
473
  this.slides.show();
423
474
 
424
- // TODO: Another entity to center the slides should be put in place
425
475
  this.centerSlides();
426
476
 
427
477
  // Copy the slides into the presentation area
@@ -434,7 +484,8 @@ $(document).ready(function() {
434
484
  });
435
485
 
436
486
  this.navigationMenu.hide();
437
- this.navigationMenu.populate(this.slides.slides);
487
+
488
+ this.navigationMenu.populate(this.slides);
438
489
 
439
490
  $.subscribe("presentation:slide:location:change",$.proxy(function(event,slideIndex) {
440
491
  this.gotoSlide(slideIndex);
@@ -481,7 +532,6 @@ $(document).ready(function() {
481
532
 
482
533
  },
483
534
  centerSlides: function() {
484
- console.log("Centering Slides");
485
535
  var presentation = this;
486
536
  this.slides.slides.each(function(s,slide) {
487
537
  presentation.centerSlide(slide);
@@ -489,13 +539,17 @@ $(document).ready(function() {
489
539
  },
490
540
  centerSlide: function(slide) {
491
541
  var slideObject = $(slide);
492
- var slide_content = slideObject.children(".content").first();
493
- var height = slide_content.height();
494
- var margin_top = (0.5 * parseFloat(slideObject.height())) - (0.5 * parseFloat(height));
495
- if (margin_top < 0) {
496
- margin_top = 0;
542
+ var slideContent = slideObject.children(".content.vertical-center").first();
543
+
544
+ if (slideContent) {
545
+ var height = slideContent.height();
546
+ var marginTop = (0.5 * parseFloat(slideObject.height())) - (0.5 * parseFloat(height));
547
+ if (marginTop < 0) {
548
+ marginTop = 0;
549
+ }
550
+ slideContent.css('margin-top', marginTop);
497
551
  }
498
- slide_content.css('margin-top', margin_top);
552
+
499
553
  },
500
554
  showFirstSlide: function() {
501
555
  this.slidenum = WindowToSlideLocation.location();
@@ -529,30 +583,38 @@ $(document).ready(function() {
529
583
  showSlide: function() {
530
584
 
531
585
  if(this.slidenum < 0) {
532
- this.slidenum = 0
533
- return
586
+ this.slidenum = 0;
587
+ return;
534
588
  }
535
589
 
536
590
  var maxSlides = this.slideTotal();
537
591
 
538
592
  if(this.slidenum > (maxSlides - 1)) {
539
- this.slidenum = maxSlides - 1
540
- return
593
+ this.slidenum = maxSlides - 1;
594
+ return;
541
595
  }
542
596
 
543
597
  var currentSlide = this.currentSlide;
598
+ var futureSlide = this.slides.at(this.slidenum);
544
599
 
545
- var transition = currentSlide.transition;
546
- var slideIsFullPage = currentSlide.isFullPage();
600
+ var transition = futureSlide.transition;
601
+ var slideIsFullPage = futureSlide.isFullPage();
547
602
 
548
603
  if (slideIsFullPage) {
549
604
  transition = 'none';
550
605
  }
551
606
 
607
+ // currentSlide.trigger("parade:willDisappear");
608
+ // futureSlide.trigger("parade:willAppear");
609
+
610
+ $.publish('code:execution:clear');
552
611
  $.publish("presentation:slide:willChange",[ this.slidenum, maxSlides ]);
553
612
  this.presentationFrame.cycle(this.slidenum, transition);
613
+ this.currentSlide = futureSlide;
554
614
  $.publish("presentation:slide:didChange",[ this.slidenum, maxSlides ]);
555
615
 
616
+ currentSlide.trigger("parade:didDisappear");
617
+
556
618
  if (slideIsFullPage) {
557
619
  this.presentationFrame.css({'width' : '100%', 'overflow' : 'visible'});
558
620
  currentSlide.goFullPage();
@@ -562,11 +624,10 @@ $(document).ready(function() {
562
624
 
563
625
  WindowToSlideLocation.updateLocation(this.slidenum + 1);
564
626
 
565
- $.publish('code:execution:clear');
566
-
567
- currentSlide.trigger("parade:show");
627
+ // futureSlide.trigger("parade:didAppear");
628
+ futureSlide.trigger("parade:show");
568
629
 
569
- return currentSlide.notes();
630
+ return futureSlide.notes();
570
631
  },
571
632
  nextStep: function() {
572
633
 
@@ -664,12 +725,4 @@ $(document).ready(function() {
664
725
  /* window.onscroll = scrolled; */
665
726
  /* window.onunload = unloaded; */
666
727
 
667
- $('buttonNav.prev').click(function(){
668
- $.publish("presentation:slide:previous");
669
- });
670
-
671
- $('buttonNav.next').click(function(){
672
- $.publish("presentation:slide:next");
673
- });
674
-
675
728
  });