parade 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  });