define("dijit/form/_CheckBoxMixin", [ "dojo/_base/declare", // declare "dojo/dom-attr", // domAttr.set "dojo/_base/event" // event.stop ], function(declare, domAttr, event){ // module: // dijit/form/_CheckBoxMixin // summary: // Mixin to provide widget functionality corresponding to an HTML checkbox return declare("dijit.form._CheckBoxMixin", null, { // summary: // Mixin to provide widget functionality corresponding to an HTML checkbox // // description: // User interacts with real html inputs. // On onclick (which occurs by mouse click, space-bar, or // using the arrow keys to switch the selected radio button), // we update the state of the checkbox/radio. // // type: [private] String // type attribute on node. // Overrides `dijit.form.Button.type`. Users should not change this value. type: "checkbox", // value: String // As an initialization parameter, equivalent to value field on normal checkbox // (if checked, the value is passed as the value when form is submitted). value: "on", // readOnly: Boolean // Should this widget respond to user input? // In markup, this is specified as "readOnly". // Similar to disabled except readOnly form values are submitted. readOnly: false, // aria-pressed for toggle buttons, and aria-checked for checkboxes _aria_attr: "aria-checked", _setReadOnlyAttr: function(/*Boolean*/ value){ this._set("readOnly", value); domAttr.set(this.focusNode, 'readOnly', value); this.focusNode.setAttribute("aria-readonly", value); }, // Override dijit.form.Button._setLabelAttr() since we don't even have a containerNode. // Normally users won't try to set label, except when CheckBox or RadioButton is the child of a dojox.layout.TabContainer _setLabelAttr: undefined, postMixInProperties: function(){ if(this.value == ""){ this.value = "on"; } this.inherited(arguments); }, reset: function(){ this.inherited(arguments); // Handle unlikely event that the value attribute has changed this._set("value", this.params.value || "on"); domAttr.set(this.focusNode, 'value', this.value); }, _onClick: function(/*Event*/ e){ // summary: // Internal function to handle click actions - need to check // readOnly, since button no longer does that check. if(this.readOnly){ event.stop(e); return false; } return this.inherited(arguments); } }); });