Import xinha so we can switch from htmlarea and fix a bunch of in-browser issues that htmlarea has

This commit is contained in:
Chris Morgan
2005-09-30 02:25:07 +00:00
committed by WineHQ
parent 2311d4d572
commit 9242a68c4a
375 changed files with 26623 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
function InsertAnchor(editor) {
this.editor = editor;
var cfg = editor.config;
var self = this;
// register the toolbar buttons provided by this plugin
cfg.registerButton({
id : "insert-anchor",
tooltip : this._lc("Insert Anchor"),
image : editor.imgURL("insert-anchor.gif", "InsertAnchor"),
textMode : false,
action : function(editor) {
self.buttonPress(editor);
}
});
cfg.addToolbarElement("insert-anchor", "createlink", 1);
}
InsertAnchor._pluginInfo = {
name : "InsertAnchor",
origin : "version: 1.0, by Andre Rabold, MR Printware GmbH, http://www.mr-printware.de",
version : "2.0",
developer : "Udo Schmal",
developer_url : "http://www.schaffrath-neuemedien.de",
c_owner : "Udo Schmal",
sponsor : "L.N.Schaffrath NeueMedien",
sponsor_url : "http://www.schaffrath-neuemedien.de",
license : "htmlArea"
};
InsertAnchor.prototype._lc = function(string) {
return HTMLArea._lc(string, 'InsertAnchor');
}
InsertAnchor.prototype.onGenerate = function() {
var style_id = "IA-style"
var style = this.editor._doc.getElementById(style_id);
if (style == null) {
style = this.editor._doc.createElement("link");
style.id = style_id;
style.rel = 'stylesheet';
style.href = _editor_url + 'plugins/InsertAnchor/insert-anchor.css';
this.editor._doc.getElementsByTagName("HEAD")[0].appendChild(style);
}
}
InsertAnchor.prototype.buttonPress = function(editor) {
var outparam = null;
var html = editor.getSelectedHTML();
var sel = editor._getSelection();
var range = editor._createRange(sel);
var a = editor._activeElement(sel);
if(!(a != null && a.tagName.toLowerCase() == 'a')) {
a = editor._getFirstAncestor(sel, 'a');
}
if (a != null && a.tagName.toLowerCase() == 'a')
outparam = { name : a.id };
else
outparam = { name : '' };
editor._popupDialog( "plugin://InsertAnchor/insert_anchor", function( param ) {
if ( param ) {
var anchor = param["name"];
if (anchor == "" || anchor == null) {
if (a) {
var child = a.innerHTML;
a.parentNode.removeChild(a);
editor.insertHTML(child);
}
return;
}
try {
var doc = editor._doc;
if (!a) {
// editor.surroundHTML('<a id="' + anchor + '" name="' + anchor + '" title="' + anchor + '" class="anchor">', '</a>');
a = doc.createElement("a");
a.id = anchor;
a.name = anchor;
a.title = anchor;
a.className = "anchor";
a.innerHTML = html;
if (HTMLArea.is_ie) {
range.pasteHTML(a.outerHTML);
} else {
editor.insertNodeAtSelection(a);
}
} else {
a.id = anchor;
a.name = anchor;
a.title = anchor;
a.className = "anchor";
}
}
catch (e) { }
}
}, outparam);
}