blob: 8e7e60a67fc5471aa299916bbcd349001114218c [file] [log] [blame]
// Marquee plugin for HTMLArea/Xinha
// Implementation by Udo Schmal based on HTMLArea 3.0
// Original Author - Udo Schmal, Schaffrath-NeueMedien
//
// (c) Udo Schmal.2004
// Distributed under the same terms as HTMLArea itself.
// This notice MUST stay intact for use (see license.txt).
function InsertMarquee(editor) {
this.editor = editor;
var cfg = editor.config;
var self = this;
// register the toolbar buttons provided by this plugin
cfg.registerButton({
id : "insertmarquee",
tooltip : this._lc("Insert scrolling marquee"),
image : editor.imgURL("ed_marquee.gif", "InsertMarquee"),
textMode : false,
action : function(editor) {
self.buttonPress(editor);
}
})
cfg.addToolbarElement("insertmarquee", "inserthorizontalrule", -1);
}
InsertMarquee._pluginInfo = {
name : "InsertMarquee",
version : "1.0",
developer : "Udo Schmal",
developer_url : "http://www.schaffrath-NeueMedien.de/",
c_owner : "Udo Schmal & Schaffrath NeueMedien",
license : "htmlArea"
};
InsertMarquee.prototype._lc = function(string) {
return Xinha._lc(string, "InsertMarquee");
};
InsertMarquee.prototype.buttonPress = function(editor, node) {
function setAttr(el, attr, value) {
if (value != "")
el.setAttribute(attr, value);
else
el.removeAttribute(attr);
}
var outparam = new Object();
if (typeof node == "undefined") {
node = editor.getParentElement();
}
if ( node.tagName.toLowerCase() == "marquee") {
outparam.f_name = node.name;
outparam.f_behavior = node.behavior;
outparam.f_direction = node.direction;
outparam.f_text = node.innerHTML;
outparam.f_width = node.width;
outparam.f_height = node.height;
outparam.f_bgcolor = node.bgColor;
outparam.f_scrollamount = node.scrollAmount;
outparam.f_scrolldelay = node.scrollDelay;
} else {
outparam = {
f_name : '',
f_behavior : '',
f_direction : '',
f_text : '',
f_width : '',
f_height : '',
f_bgcolor : '',
f_scrollamount : '',
f_scrolldelay : ''
};
}
editor._popupDialog( "plugin://InsertMarquee/insert_marquee", function( param )
{
if ( !param )
{ //user must have pressed Cancel
return false;
} else if ( node.tagName.toLowerCase() == "marquee") {
setAttr(node, "name", param["f_name"]);
setAttr(node, "id", param["f_name"]);
setAttr(node, "behavior", param["f_behavior"]);
setAttr(node, "direction", param["f_direction"]);
setAttr(node, "width", param["f_width"]);
setAttr(node, "height", param["f_height"]);
setAttr(node, "bgColor", param["f_bgcolor"]);
setAttr(node, "scrollAmount", param["f_scrollamount"]);
setAttr(node, "scrollDelay", param["f_scrolldelay"]);
node.innerHTML = param["f_text"];
} else {
var text = '<marquee name="' + param["f_name"] + '" ' +
'id="' + param["f_name"] + '" ' +
'behavior="' + param["f_behavior"] + '" ' +
'direction="' + param["f_direction"] + '" ' +
'width="' + param["f_width"] + '" ' +
'height="' + param["f_height"] + '" ' +
'bgcolor="' + param["f_bgcolor"] + '" ' +
'scrollamount="' + param["f_scrollamount"] + '" ' +
'scrolldelay="' + param["f_scrolldelay"] + '">\n';
alert(text);
text = text + param["f_text"];
text = text + '</marquee>';
editor.insertHTML( text );
}
}, outparam);
};