silverstripe-framework/thirdparty/tinymce/classes/CommandManager.js
2009-11-21 02:26:09 +00:00

54 lines
1.5 KiB
JavaScript

/**
* $Id: ControlManager.js 999 2009-02-10 17:42:58Z spocke $
*
* @author Moxiecode
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
*/
(function(tinymce) {
tinymce.CommandManager = function() {
var execCommands = {}, queryStateCommands = {}, queryValueCommands = {};
function add(collection, cmd, func, scope) {
if (typeof(cmd) == 'string')
cmd = [cmd];
tinymce.each(cmd, function(cmd) {
collection[cmd.toLowerCase()] = {func : func, scope : scope};
});
};
tinymce.extend(this, {
add : function(cmd, func, scope) {
add(execCommands, cmd, func, scope);
},
addQueryStateHandler : function(cmd, func, scope) {
add(queryStateCommands, cmd, func, scope);
},
addQueryValueHandler : function(cmd, func, scope) {
add(queryValueCommands, cmd, func, scope);
},
execCommand : function(scope, cmd, ui, value, args) {
if (cmd = execCommands[cmd.toLowerCase()]) {
if (cmd.func.call(scope || cmd.scope, ui, value, args) !== false)
return true;
}
},
queryCommandValue : function() {
if (cmd = queryValueCommands[cmd.toLowerCase()])
return cmd.func.call(scope || cmd.scope, ui, value, args);
},
queryCommandState : function() {
if (cmd = queryStateCommands[cmd.toLowerCase()])
return cmd.func.call(scope || cmd.scope, ui, value, args);
}
});
};
tinymce.GlobalCommands = new tinymce.CommandManager();
})(tinymce);