slideshow.js
46 lines
| 1.7 KiB
| application/javascript
|
JavascriptLexer
Jonathan Frederic
|
r17217 | // Copyright (c) IPython Development Team. | ||
// Distributed under the terms of the Modified BSD License. | ||||
Matthias BUSSONNIER
|
r9087 | |||
Jonathan Frederic
|
r17217 | define([ | ||
'jquery', | ||||
'notebook/js/celltoolbar', | ||||
], function($, celltoolbar) { | ||||
Matthias BUSSONNIER
|
r9087 | "use strict"; | ||
Jonathan Frederic
|
r17217 | |||
var CellToolbar = celltoolbar.CellToolbar; | ||||
Matthias BUSSONNIER
|
r9087 | var slideshow_preset = []; | ||
var select_type = CellToolbar.utils.select_ui_generator([ | ||||
Matthias BUSSONNIER
|
r12649 | ["-" ,"-" ], | ||
Matthias BUSSONNIER
|
r9087 | ["Slide" ,"slide" ], | ||
Matthias BUSSONNIER
|
r9088 | ["Sub-Slide" ,"subslide" ], | ||
Matthias BUSSONNIER
|
r9087 | ["Fragment" ,"fragment" ], | ||
["Skip" ,"skip" ], | ||||
Matthias BUSSONNIER
|
r9088 | ["Notes" ,"notes" ], | ||
Matthias BUSSONNIER
|
r9087 | ], | ||
// setter | ||||
function(cell, value){ | ||||
// we check that the slideshow namespace exist and create it if needed | ||||
Jonathan Frederic
|
r17217 | if (cell.metadata.slideshow === undefined){cell.metadata.slideshow = {};} | ||
Matthias BUSSONNIER
|
r9087 | // set the value | ||
Jonathan Frederic
|
r17217 | cell.metadata.slideshow.slide_type = value; | ||
Matthias BUSSONNIER
|
r9087 | }, | ||
//geter | ||||
function(cell){ var ns = cell.metadata.slideshow; | ||||
// if the slideshow namespace does not exist return `undefined` | ||||
// (will be interpreted as `false` by checkbox) otherwise | ||||
// return the value | ||||
Jonathan Frederic
|
r17217 | return (ns === undefined)? undefined: ns.slide_type; | ||
Matthias BUSSONNIER
|
r9087 | }, | ||
"Slide Type"); | ||||
Jonathan Frederic
|
r17217 | var register = function (notebook, events) { | ||
CellToolbar.register_callback('slideshow.select',select_type); | ||||
slideshow_preset.push('slideshow.select'); | ||||
Matthias BUSSONNIER
|
r9087 | |||
Jonathan Frederic
|
r17217 | CellToolbar.register_preset('Slideshow',slideshow_preset, notebook, events); | ||
console.log('Slideshow extension for metadata editing loaded.'); | ||||
}; | ||||
return {'register': register}; | ||||
}); | ||||