Index: openacs-4/packages/acs-templating/www/resources/xinha-nightly/plugins/DynamicCSS/dynamiccss.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/xinha-nightly/plugins/DynamicCSS/Attic/dynamiccss.js,v diff -u -N --- openacs-4/packages/acs-templating/www/resources/xinha-nightly/plugins/DynamicCSS/dynamiccss.js 23 May 2010 11:58:33 -0000 1.8 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,237 +0,0 @@ -// Dynamic CSS (className) plugin for HTMLArea -// Sponsored by http://www.systemconcept.de -// Implementation by Holger Hees -// -// (c) systemconcept.de 2004 -// Distributed under the same terms as HTMLArea itself. -// This notice MUST stay intact for use (see license.txt). - -function DynamicCSS(editor, args) { - this.editor = editor; - var cfg = editor.config; - var self = this; - -/*var cssArray=null; - var cssLength=0;*/ - var lastTag=null; - var lastClass=null; - - var css_class = { - id : "DynamicCSS-class", - tooltip : this._lc("Choose stylesheet"), - options : {"":""}, - action : function(editor) { self.onSelect(editor, this); }, - refresh : function(editor) { self.updateValue(editor, this); } - }; - cfg.registerDropdown(css_class); - cfg.addToolbarElement(["T[CSS]", "DynamicCSS-class", "separator"] , "formatblock", -1); -} - -DynamicCSS.parseStyleSheet=function(editor){ - iframe = editor._iframe.contentWindow.document; - - cssArray=DynamicCSS.cssArray; - if(!cssArray) cssArray=new Array(); - - for(i=0;i'; - } - else{ - className='none'; - if(tagName=='all') cssName=Xinha._lc("Default", 'DynamicCSS'); - else cssName='<'+Xinha._lc("Default", 'DynamicCSS')+'>'; - } - cssArray[tagName][className]=cssName; - DynamicCSS.cssLength++; - } - } - } - // ImportRule (Mozilla) - else if(cssRules[rule].styleSheet){ - cssArray=DynamicCSS.applyCSSRule(cssRules[rule].styleSheet.cssRules,cssArray); - } - } - return cssArray; -}; - -DynamicCSS._pluginInfo = { - name : "DynamicCSS", - version : "1.5.2", - developer : "Holger Hees", - developer_url : "http://www.systemconcept.de/", - c_owner : "Holger Hees", - sponsor : "System Concept GmbH", - sponsor_url : "http://www.systemconcept.de/", - license : "htmlArea" -}; - -DynamicCSS.prototype._lc = function(string) { - return Xinha._lc(string, 'DynamicCSS'); -}; - -DynamicCSS.prototype.onSelect = function(editor, obj) { - var tbobj = editor._toolbarObjects[obj.id]; - var index = tbobj.element.selectedIndex; - var className = tbobj.element.value; - - var parent = editor.getParentElement(); - - if(className!='none'){ - parent.className=className; - DynamicCSS.lastClass=className; - } - else{ - if(Xinha.is_gecko) parent.removeAttribute('class'); - else parent.removeAttribute('className'); - } - editor.updateToolbar(); -}; - -/*DynamicCSS.prototype.onMode = function(mode) { - if(mode=='wysiwyg'){ - // reparse possible changed css files - DynamicCSS.cssArray=null; - this.updateValue(this.editor,this.editor.config.customSelects["DynamicCSS-class"]); - } -}*/ - -DynamicCSS.prototype.reparseTimer = function(editor, obj, instance) { - // new attempt of rescan stylesheets in 1,2,4 and 8 second (e.g. for external css-files with longer initialisation) - if(DynamicCSS.parseCount<9){ - setTimeout(function () { - DynamicCSS.cssLength=0; - DynamicCSS.parseStyleSheet(editor); - if(DynamicCSS.cssOldLength!=DynamicCSS.cssLength){ - DynamicCSS.cssOldLength=DynamicCSS.cssLength; - DynamicCSS.lastClass=null; - instance.updateValue(editor, obj); - } - instance.reparseTimer(editor, obj, instance); - },DynamicCSS.parseCount*1000); - DynamicCSS.parseCount=DynamicCSS.parseCount*2; - } -}; - -DynamicCSS.prototype.updateValue = function(editor, obj) { - cssArray=DynamicCSS.cssArray; - // initial style init - if(!cssArray){ - DynamicCSS.cssLength=0; - DynamicCSS.parseStyleSheet(editor); - cssArray=DynamicCSS.cssArray; - DynamicCSS.cssOldLength=DynamicCSS.cssLength; - DynamicCSS.parseCount=1; - this.reparseTimer(editor,obj,this); - } - - var parent = editor.getParentElement(); - var tagName = parent.tagName.toLowerCase(); - var className = parent.className; - - if(this.lastTag!=tagName || this.lastClass!=className){ - this.lastTag=tagName; - this.lastClass=className; - - var select = editor._toolbarObjects[obj.id].element; - - while(select.length>0){ - select.options[select.length-1] = null; - } - - select.options[0]=new Option(this._lc("Default"),'none'); - if(cssArray){ - // style class only allowed if parent tag is not body or editor is in fullpage mode - if(tagName!='body' || editor.config.fullPage){ - if(cssArray[tagName]){ - for(cssClass in cssArray[tagName]){ - if(typeof cssArray[tagName][cssClass] != 'string') continue; - if(cssClass=='none') select.options[0]=new Option(cssArray[tagName][cssClass],cssClass); - else select.options[select.length]=new Option(cssArray[tagName][cssClass],cssClass); - } - } - - if(cssArray['all']){ - for(cssClass in cssArray['all']){ - if(typeof cssArray['all'][cssClass] != 'string') continue; - select.options[select.length]=new Option(cssArray['all'][cssClass],cssClass); - } - } - } - else if(cssArray[tagName] && cssArray[tagName]['none']) select.options[0]=new Option(cssArray[tagName]['none'],'none'); - } - - select.selectedIndex = 0; - - if (typeof className != "undefined" && /\S/.test(className)) { - var options = select.options; - for (var i = options.length; --i >= 0;) { - var option = options[i]; - if (className == option.value) { - select.selectedIndex = i; - break; - } - } - if(select.selectedIndex == 0){ - select.options[select.length]=new Option(this._lc("Undefined"),className); - select.selectedIndex=select.length-1; - } - } - - if(select.length>1) select.disabled=false; - else select.disabled=true; - } -}; \ No newline at end of file