69 lines
2.1 KiB
JavaScript
69 lines
2.1 KiB
JavaScript
/*
|
|
Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
|
|
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
|
see: http://dojotoolkit.org/license for details
|
|
*/
|
|
|
|
|
|
if(!dojo._hasResource["dijit._editor.plugins.TabIndent"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
|
|
dojo._hasResource["dijit._editor.plugins.TabIndent"] = true;
|
|
dojo.provide("dijit._editor.plugins.TabIndent");
|
|
dojo.require("dijit._editor._Plugin");
|
|
dojo.require("dijit.form.ToggleButton");
|
|
|
|
|
|
dojo.experimental("dijit._editor.plugins.TabIndent");
|
|
|
|
|
|
dojo.declare("dijit._editor.plugins.TabIndent",
|
|
dijit._editor._Plugin,
|
|
{
|
|
// summary:
|
|
// This plugin is used to allow the use of the tab and shift-tab keys
|
|
// to indent/outdent list items. This overrides the default behavior
|
|
// of moving focus from/to the toolbar
|
|
|
|
// Override _Plugin.useDefaultCommand... processing is handled by this plugin, not by dijit.Editor.
|
|
useDefaultCommand: false,
|
|
|
|
// Override _Plugin.buttonClass to use a ToggleButton for this plugin rather than a vanilla Button
|
|
buttonClass: dijit.form.ToggleButton,
|
|
|
|
command: "tabIndent",
|
|
|
|
_initButton: function(){
|
|
// Override _Plugin._initButton() to setup listener on button click
|
|
this.inherited(arguments);
|
|
|
|
var e = this.editor;
|
|
this.connect(this.button, "onChange", function(val){
|
|
e.set("isTabIndent", val);
|
|
});
|
|
|
|
// Set initial checked state of button based on Editor.isTabIndent
|
|
this.updateState();
|
|
},
|
|
|
|
updateState: function(){
|
|
// Overrides _Plugin.updateState().
|
|
// Ctrl-m in the editor will switch tabIndent mode on/off, so we need to react to that.
|
|
var disabled = this.get("disabled");
|
|
this.button.set("disabled", disabled);
|
|
if(disabled){
|
|
return;
|
|
}
|
|
this.button.set('checked', this.editor.isTabIndent, false);
|
|
}
|
|
}
|
|
);
|
|
|
|
// Register this plugin.
|
|
dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){
|
|
if(o.plugin){ return; }
|
|
switch(o.args.name){
|
|
case "tabIndent":
|
|
o.plugin = new dijit._editor.plugins.TabIndent({command: o.args.name});
|
|
}
|
|
});
|
|
|
|
}
|