X-Git-Url: https://scm.cri.ensmp.fr/git/ckeditor.git/blobdiff_plain/e7f8fb547940c134de50db80ffaf54be1135ca7b:/skins/ckeditor/plugins/plinn_styles/plugin.js..fbd145a2acd338b7bb7d152fa24692d8ff3e6b4c:/Products/ckeditor/skins/ckeditor/plugins/plinn_styles/static/git-logo.png diff --git a/skins/ckeditor/plugins/plinn_styles/plugin.js b/skins/ckeditor/plugins/plinn_styles/plugin.js deleted file mode 100644 index 835b08b..0000000 --- a/skins/ckeditor/plugins/plinn_styles/plugin.js +++ /dev/null @@ -1,101 +0,0 @@ -/* © 2014 Benoît Pin, MINES ParisTech */ -( function() { - -var PlinnStylesCombo = function(editor) { - this.editor = editor; - this.label = 'Styles'; - this.title = 'CSS Styles'; - this.toolbar = 'styles,10'; - this.panel = { - css : [CKEDITOR.skin.getPath( 'editor' )].concat(editor.config.contentsCss), - multiSelect : true, - attributes : {'aria-label': this.title} - }; - this.styles = []; -}; - -PlinnStylesCombo.prototype.onRender = function() { - var self = this; - this.editor.on('selectionChange', function(evt){self.checkSelection(evt);}); -}; - -PlinnStylesCombo.prototype.checkSelection = function(evt) { - if (evt.data.selection.getRanges().length > 1) { - this.disable(); - } - else { - this.enable(); - } -}; - -PlinnStylesCombo.prototype.loadStyle = function(definition) { - this.styles.push(definition); - this.styles[definition.name] = definition; -}; - -PlinnStylesCombo.prototype.init = function() { - var i, style; - for (i=0 ; i < this.styles.length ; i++) { - style = this.styles[i]; - this.add(style.name, - '
' + - style.name + - '
', - style.name - ); - } -}; - -PlinnStylesCombo.prototype.onClick = function(value) { - this.editor.focus(); - this.editor.fire('saveSnapshot'); - var style = this.styles[value]; - var className = style.className; - var ranges = this.editor.getSelection().getRanges(); - var element = this.editor.elementPath().lastElement; - if(ranges.length === 1) { - var start = ranges[0].startContainer; - var end = ranges[0].endContainer; - if(start.$ !== end.$) { - // selection is a fragment that need to be wrapped in container to apply style - element = new CKEDITOR.dom.element('div'); - element.append(ranges[0].cloneContents()); - this.editor.insertElement(element); - } - } - if (element.hasClass(className)) { - element.removeClass(className); - } - else { - element.addClass(className); - } - this.editor.fire('saveSnapshot'); -}; - -var PlinnStylePlugin = function() { - this.requires = 'richcombo'; - this.combo = undefined; -}; - -PlinnStylePlugin.prototype.init = function(editor) { - this.combo = new PlinnStylesCombo(editor); - editor.ui.addRichCombo('PlinnStyles', this.combo); - var self = this; - editor.on('stylesSet', function(evt){self.onStylesSet(evt);}); -}; - -PlinnStylePlugin.prototype.onStylesSet = function(evt) { - var stylesDefinitions = evt.data.styles; - if (!stylesDefinitions) { return; } - var i; - for(i=0 ; i < stylesDefinitions.length ; i++) { - this.combo.loadStyle(stylesDefinitions[i]); - } - -}; - - -// main -CKEDITOR.plugins.add( 'plinn_styles', new PlinnStylePlugin()); - -} ());