dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
54 lines (49 loc) • 1.95 kB
JavaScript
define([
"dojo/_base/declare",
"./common",
"dojo/dom-style"
], function(declare,common, domStyle){
// module:
// dojox/mobile/bidi/Carousel
return declare(null, {
// summary:
// Support for control over text direction for mobile Carousel widget, using Unicode Control Characters to control text direction.
// description:
// Implementation for text direction support for Title.
// This class should not be used directly.
// Mobile Carousel widget loads this module when user sets "has: {'dojo-bidi': true }" in data-dojo-config.
buildRendering: function(){
this.inherited(arguments);
// dojox.mobile mirroring support
if(!this.isLeftToRight()){
if(this.navButton){
domStyle.set(this.btnContainerNode, "float", "left"); // workaround for webkit rendering problem
this.disconnect(this._prevHandle);
this.disconnect(this._nextHandle);
this._prevHandle = this.connect(this.prevBtnNode, "onclick", "onNextBtnClick");
this._nextHandle = this.connect(this.nextBtnNode, "onclick", "onPrevBtnClick");
}
if(this.pageIndicator){
domStyle.set(this.piw.domNode, "float", "left"); // workaround for webkit rendering problem
}
}
},
_setTitleAttr: function(title){
this.titleNode.innerHTML = this._cv ? this._cv(title) : title;
this._set("title", title);
if(this.textDir){
this.titleNode.innerHTML = common.enforceTextDirWithUcc(this.titleNode.innerHTML, this.textDir);
this.titleNode.style.textAlign = (this.dir.toLowerCase() === "rtl") ? "right" : "left";
}
},
_setTextDirAttr: function(textDir){
if(textDir && this.textDir !== textDir){
this.textDir = textDir;
this.titleNode.innerHTML = common.removeUCCFromText(this.titleNode.innerHTML);
this.titleNode.innerHTML = common.enforceTextDirWithUcc(this.titleNode.innerHTML, this.textDir);
if(this.items.length > 0)
this.onComplete(this.items);
}
}
});
});