Ignore:
Timestamp:
06/03/07 12:56:11 (12 years ago)
Author:
gocher
Message:

change htmlarea to Xinha in plugin LangMarks?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/LangMarks/lang-marks.js

    r677 r850  
    1 // Mask Language plugin for HTMLArea 
     1// Mask Language plugin for Xinha 
    22// Implementation by Udo Schmal 
    33// 
     
    77 
    88function LangMarks(editor, args) { 
    9         this.editor = editor; 
    10         var cfg = editor.config; 
    11         var self = this; 
    12         var options = {}; 
    13         options[this._lc("— language —")] = ""; 
    14         options[this._lc("Greek")] = "el"; 
    15         options[this._lc("English")] = "en"; 
    16         options[this._lc("French")] = "fr"; 
    17         options[this._lc("Latin")] = "la"; 
     9  this.editor = editor; 
     10  var cfg = editor.config; 
     11  var self = this; 
     12  var options = {}; 
     13  options[this._lc("— language —")] = ""; 
     14  options[this._lc("Greek")] = "el"; 
     15  options[this._lc("English")] = "en"; 
     16  options[this._lc("French")] = "fr"; 
     17  options[this._lc("Latin")] = "la"; 
    1818 
    19         cfg.registerDropdown({ 
    20                 id      : "langmarks", 
    21                 tooltip : this._lc("language select"), 
    22                 options : options, 
    23                 action  : function(editor) { self.onSelect(editor, this); }, 
    24                 refresh : function(editor) { self.updateValue(editor, this); } 
    25         }); 
    26         cfg.addToolbarElement("langmarks", "inserthorizontalrule", 1); 
     19  cfg.registerDropdown({ 
     20    id  : "langmarks", 
     21    tooltip     : this._lc("language select"), 
     22    options     : options, 
     23    action      : function(editor) { self.onSelect(editor, this); }, 
     24    refresh     : function(editor) { self.updateValue(editor, this); } 
     25  }); 
     26  cfg.addToolbarElement("langmarks", "inserthorizontalrule", 1); 
    2727} 
    2828 
    2929LangMarks._pluginInfo = { 
    30         name          : "LangMarks", 
    31         version       : "1.0", 
    32         developer     : "Udo Schmal", 
    33         developer_url : "", 
    34         sponsor       : "L.N.Schaffrath NeueMedien", 
    35         sponsor_url   : "http://www.schaffrath-neuemedien.de/",  
    36         c_owner       : "Udo Schmal & Schaffrath NeueMedien", 
    37         license       : "htmlArea" 
     30  name          : "LangMarks", 
     31  version       : "1.0", 
     32  developer     : "Udo Schmal", 
     33  developer_url : "", 
     34  sponsor       : "L.N.Schaffrath NeueMedien", 
     35  sponsor_url   : "http://www.schaffrath-neuemedien.de/", 
     36  c_owner       : "Udo Schmal & Schaffrath NeueMedien", 
     37  license       : "htmlArea" 
    3838}; 
    3939 
    4040LangMarks.prototype._lc = function(string) { 
    41     return HTMLArea._lc(string, 'LangMarks'); 
     41  return Xinha._lc(string, 'LangMarks'); 
    4242}; 
    4343 
     
    5555 
    5656LangMarks.prototype.onSelect = function(editor, obj, context, updatecontextclass) { 
    57         var tbobj = editor._toolbarObjects[obj.id]; 
    58         var index = tbobj.element.selectedIndex; 
    59         var className = tbobj.element.value; 
     57  var tbobj = editor._toolbarObjects[obj.id]; 
     58  var index = tbobj.element.selectedIndex; 
     59  var className = tbobj.element.value; 
    6060 
    61         // retrieve parent element of the selection 
    62         var parent = editor.getParentElement(); 
    63         var surround = true; 
     61  // retrieve parent element of the selection 
     62  var parent = editor.getParentElement(); 
     63  var surround = true; 
    6464 
    65         var is_span = (parent && parent.tagName.toLowerCase() == "span"); 
    66         var update_parent = (context && updatecontextclass && parent && parent.tagName.toLowerCase() == context); 
     65  var is_span = (parent && parent.tagName.toLowerCase() == "span"); 
     66  var update_parent = (context && updatecontextclass && parent && parent.tagName.toLowerCase() == context); 
    6767 
    68         if (update_parent) { 
    69                 parent.className = className; 
    70                 parent.lang = className; 
    71                 editor.updateToolbar(); 
    72                 return; 
    73         } 
     68  if (update_parent) { 
     69    parent.className = className; 
     70    parent.lang = className; 
     71    editor.updateToolbar(); 
     72    return; 
     73  } 
    7474 
    75         if (is_span && index == 0 && !/\S/.test(parent.style.cssText)) { 
    76                 while (parent.firstChild) { 
    77                         parent.parentNode.insertBefore(parent.firstChild, parent); 
    78                 } 
    79                 parent.parentNode.removeChild(parent); 
    80                 editor.updateToolbar(); 
    81                 return; 
    82         } 
     75  if (is_span && index == 0 && !/\S/.test(parent.style.cssText)) { 
     76    while (parent.firstChild) { 
     77      parent.parentNode.insertBefore(parent.firstChild, parent); 
     78    } 
     79    parent.parentNode.removeChild(parent); 
     80    editor.updateToolbar(); 
     81    return; 
     82  } 
    8383 
    84         if (is_span) { 
    85                 // maybe we could simply change the class of the parent node? 
    86                 if (parent.childNodes.length == 1) { 
    87                         parent.className = className; 
    88                         parent.lang = className; 
    89                         surround = false; 
    90                         // in this case we should handle the toolbar updation 
    91                         // ourselves. 
    92                         editor.updateToolbar(); 
    93                 } 
    94         } 
     84  if (is_span) { 
     85    // maybe we could simply change the class of the parent node? 
     86    if (parent.childNodes.length == 1) { 
     87      parent.className = className; 
     88      parent.lang = className; 
     89      surround = false; 
     90      // in this case we should handle the toolbar updation 
     91      // ourselves. 
     92      editor.updateToolbar(); 
     93    } 
     94  } 
    9595 
    96         // Other possibilities could be checked but require a lot of code.  We 
    97         // can't afford to do that now. 
    98         if (surround) { 
    99                 // shit happens ;-) most of the time.  this method works, but 
    100                 // it's dangerous when selection spans multiple block-level 
    101                 // elements. 
    102                 editor.surroundHTML('<span lang="' + className + '" class="' + className + '">', '</span>'); 
    103         } 
     96  // Other possibilities could be checked but require a lot of code.  We 
     97  // can't afford to do that now. 
     98  if (surround) { 
     99    // shit happens ;-) most of the time.  this method works, but 
     100    // it's dangerous when selection spans multiple block-level 
     101    // elements. 
     102    editor.surroundHTML('<span lang="' + className + '" class="' + className + '">', '</span>'); 
     103  } 
    104104}; 
    105105 
    106106LangMarks.prototype.updateValue = function(editor, obj) { 
    107         var select = editor._toolbarObjects[obj.id].element; 
    108         var parent = editor.getParentElement(); 
    109         if (typeof parent.className != "undefined" && /\S/.test(parent.className)) { 
    110                 var options = select.options; 
    111                 var value = parent.className; 
    112                 for (var i = options.length; --i >= 0;) { 
    113                         var option = options[i]; 
    114                         if (value == option.value) { 
    115                                 select.selectedIndex = i; 
    116                                 return; 
    117                         } 
    118                 } 
    119         } 
    120         select.selectedIndex = 0; 
     107  var select = editor._toolbarObjects[obj.id].element; 
     108  var parent = editor.getParentElement(); 
     109  if (typeof parent.className != "undefined" && /\S/.test(parent.className)) { 
     110    var options = select.options; 
     111    var value = parent.className; 
     112    for (var i = options.length; --i >= 0;) { 
     113      var option = options[i]; 
     114      if (value == option.value) { 
     115        select.selectedIndex = i; 
     116        return; 
     117      } 
     118    } 
     119  } 
     120  select.selectedIndex = 0; 
    121121}; 
Note: See TracChangeset for help on using the changeset viewer.