109 lines
3.0 KiB
JavaScript
109 lines
3.0 KiB
JavaScript
//>>built
|
|
define("dojox/mobile/ToolBarButton", [
|
|
"dojo/_base/declare",
|
|
"dojo/_base/window",
|
|
"dojo/dom-class",
|
|
"dojo/dom-construct",
|
|
"dojo/dom-style",
|
|
"./common",
|
|
"./_ItemBase"
|
|
], function(declare, win, domClass, domConstruct, domStyle, common, ItemBase){
|
|
/*=====
|
|
var ItemBase = dojox.mobile._ItemBase;
|
|
=====*/
|
|
|
|
// module:
|
|
// dojox/mobile/ToolBarButton
|
|
// summary:
|
|
// A button widget that is placed in the Heading widget.
|
|
|
|
return declare("dojox.mobile.ToolBarButton", ItemBase, {
|
|
// summary:
|
|
// A button widget that is placed in the Heading widget.
|
|
// description:
|
|
// ToolBarButton is a button that is placed in the Heading
|
|
// widget. It is a subclass of dojox.mobile._ItemBase just like
|
|
// ListItem or IconItem. So, unlike Button, it has basically the
|
|
// same capability as ListItem or IconItem, such as icon support,
|
|
// transition, etc.
|
|
|
|
// selected: Boolean
|
|
// If true, the button is in the selected status.
|
|
selected: false,
|
|
|
|
// btnClass: String
|
|
// Deprecated.
|
|
btnClass: "",
|
|
|
|
/* internal properties */
|
|
_defaultColor: "mblColorDefault",
|
|
_selColor: "mblColorDefaultSel",
|
|
|
|
buildRendering: function(){
|
|
this.domNode = this.containerNode = this.srcNodeRef || win.doc.createElement("div");
|
|
this.inheritParams();
|
|
domClass.add(this.domNode, "mblToolBarButton mblArrowButtonText");
|
|
var color;
|
|
if(this.selected){
|
|
color = this._selColor;
|
|
}else if(this.domNode.className.indexOf("mblColor") == -1){
|
|
color = this._defaultColor;
|
|
}
|
|
domClass.add(this.domNode, color);
|
|
|
|
if(!this.label){
|
|
this.label = this.domNode.innerHTML;
|
|
}
|
|
|
|
if(this.icon && this.icon != "none"){
|
|
this.iconNode = domConstruct.create("div", {className:"mblToolBarButtonIcon"}, this.domNode);
|
|
common.createIcon(this.icon, this.iconPos, null, this.alt, this.iconNode);
|
|
if(this.iconPos){
|
|
domClass.add(this.iconNode.firstChild, "mblToolBarButtonSpriteIcon");
|
|
}
|
|
}else{
|
|
if(common.createDomButton(this.domNode)){
|
|
domClass.add(this.domNode, "mblToolBarButtonDomButton");
|
|
}else{
|
|
domClass.add(this.domNode, "mblToolBarButtonText");
|
|
}
|
|
}
|
|
this.connect(this.domNode, "onclick", "onClick");
|
|
},
|
|
|
|
select: function(){
|
|
// summary:
|
|
// Makes this widget in the selected state.
|
|
domClass.toggle(this.domNode, this._selColor, !arguments[0]);
|
|
this.selected = !arguments[0];
|
|
},
|
|
|
|
deselect: function(){
|
|
// summary:
|
|
// Makes this widget in the deselected state.
|
|
this.select(true);
|
|
},
|
|
|
|
onClick: function(e){
|
|
this.setTransitionPos(e);
|
|
this.defaultClickAction();
|
|
},
|
|
|
|
_setBtnClassAttr: function(/*String*/btnClass){
|
|
var node = this.domNode;
|
|
if(node.className.match(/(mblDomButton\w+)/)){
|
|
domClass.remove(node, RegExp.$1);
|
|
}
|
|
domClass.add(node, btnClass);
|
|
if(common.createDomButton(this.domNode)){
|
|
domClass.add(this.domNode, "mblToolBarButtonDomButton");
|
|
}
|
|
},
|
|
|
|
_setLabelAttr: function(/*String*/text){
|
|
this.label = text;
|
|
this.domNode.innerHTML = this._cv ? this._cv(text) : text;
|
|
}
|
|
});
|
|
});
|