You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.9 KiB
63 lines
1.9 KiB
define([ |
|
"dojo/_base/declare", // declare |
|
"dojo/dom-style", // domStyle.getComputedStyle |
|
"dojo/_base/kernel", // kernel.experimental |
|
"dojo/_base/lang", // lang.hitch |
|
"dojo/on", |
|
"../_Plugin", |
|
"../../form/ToggleButton" |
|
], function(declare, domStyle, kernel, lang, on, _Plugin, ToggleButton){ |
|
|
|
// module: |
|
// dijit/_editor/plugins/ToggleDir |
|
|
|
var ToggleDir = declare("dijit._editor.plugins.ToggleDir", _Plugin, { |
|
// summary: |
|
// This plugin is used to toggle direction of the edited document, |
|
// independent of what direction the whole page is. |
|
|
|
// Override _Plugin.useDefaultCommand: processing is done in this plugin |
|
// rather than by sending commands to the Editor |
|
useDefaultCommand: false, |
|
|
|
command: "toggleDir", |
|
|
|
// Override _Plugin.buttonClass to use a ToggleButton for this plugin rather than a vanilla Button |
|
buttonClass: ToggleButton, |
|
|
|
_initButton: function(){ |
|
this.inherited(arguments); |
|
|
|
var button = this.button, |
|
editorLtr = this.editor.isLeftToRight(); |
|
|
|
this.own(this.button.on("change", lang.hitch(this, function(checked){ |
|
this.editor.set("textDir", editorLtr ^ checked ? "ltr" : "rtl"); |
|
}))); |
|
|
|
// Button should be checked if the editor's textDir is opposite of the editor's dir. |
|
// Note that the arrow in the icon points in opposite directions depending on the editor's dir. |
|
var editorDir = editorLtr ? "ltr" : "rtl"; |
|
function setButtonChecked(textDir){ |
|
button.set("checked", textDir && textDir !== editorDir, false); |
|
} |
|
setButtonChecked(this.editor.get("textDir")); |
|
this.editor.watch("textDir", function(name, oval, nval){ |
|
setButtonChecked(nval); |
|
}); |
|
}, |
|
|
|
updateState: function(){ |
|
// summary: |
|
// Over-ride for button state control for disabled to work. |
|
this.button.set("disabled", this.get("disabled")); |
|
} |
|
}); |
|
|
|
// Register this plugin. |
|
_Plugin.registry["toggleDir"] = function(){ |
|
return new ToggleDir({command: "toggleDir"}); |
|
}; |
|
|
|
return ToggleDir; |
|
});
|
|
|