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.
50 lines
1.6 KiB
50 lines
1.6 KiB
define([ |
|
"dojo/_base/declare", |
|
"dojo/dom-construct", |
|
"dijit/form/_CheckBoxMixin", |
|
"./ToggleButton", |
|
"./sniff" |
|
], |
|
function(declare, domConstruct, CheckBoxMixin, ToggleButton, has){ |
|
|
|
return declare("dojox.mobile.CheckBox", [ToggleButton, CheckBoxMixin], { |
|
// summary: |
|
// A non-templated checkbox widget that can be in two states |
|
// (checked or not checked). |
|
|
|
// baseClass: String |
|
// The name of the CSS class of this widget. |
|
baseClass: "mblCheckBox", |
|
|
|
// _setTypeAttr: [private] Function |
|
// Overrides the automatic assignement of type to nodes. |
|
_setTypeAttr: function(){}, // cannot be changed: IE complains w/o this |
|
|
|
buildRendering: function(){ |
|
if(!this.templateString && !this.srcNodeRef){ |
|
// The following doesn't work on IE < 8 if the default state is checked. |
|
// You have to use "<input checked>" instead but it's not worth the bytes here. |
|
this.srcNodeRef = domConstruct.create("input", {type: this.type}); |
|
} |
|
this.inherited(arguments); |
|
if(!this.templateString){ |
|
// if this widget is templated, let the template set the focusNode via an attach point |
|
this.focusNode = this.domNode; |
|
} |
|
|
|
if(has("windows-theme")){ |
|
var rootNode = domConstruct.create("span", {className: "mblCheckableInputContainer"}); |
|
rootNode.appendChild(this.domNode.cloneNode()); |
|
this.labelNode = domConstruct.create("span", {className: "mblCheckableInputDecorator"}, rootNode); |
|
this.domNode = rootNode; |
|
this.focusNode = rootNode.firstChild; |
|
} |
|
}, |
|
|
|
_getValueAttr: function(){ |
|
// tags: |
|
// private |
|
return (this.checked ? this.value : false); |
|
} |
|
}); |
|
});
|
|
|