if(!dojo._hasResource["dijit.form.Button"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dijit.form.Button"] = true; dojo.provide("dijit.form.Button"); dojo.require("dijit.form._FormWidget"); dojo.require("dijit._Container"); dojo.declare("dijit.form.Button", dijit.form._FormWidget, { // summary: // Basically the same thing as a normal HTML button, but with special styling. // // example: // | // // example: // | var button1 = new dijit.form.Button({label: "hello world", onClick: foo}); // | dojo.body().appendChild(button1.domNode); // // label: String // text to display in button label: "", // showLabel: Boolean // whether or not to display the text label in button showLabel: true, // iconClass: String // class to apply to div in button to make it display an icon iconClass: "", type: "button", baseClass: "dijitButton", templateString:"
// // example: // | var button1 = new dijit.form.DropDownButton({ label: "hi", dropDown: new dijit.Menu(...) }); // | dojo.body().appendChild(button1); // baseClass : "dijitDropDownButton", templateString:"
// // example: // | var button1 = new dijit.form.ComboButton({label: "hello world", onClick: foo, dropDown: "myMenu"}); // | dojo.body().appendChild(button1.domNode); // templateString:"
${label}
\n", attributeMap: dojo.mixin(dojo.clone(dijit.form._FormWidget.prototype.attributeMap), {id:"", name:""}), // optionsTitle: String // text that describes the options menu (accessibility) optionsTitle: "", baseClass: "dijitComboButton", _focusedNode: null, postCreate: function(){ this.inherited(arguments); this._focalNodes = [this.titleNode, this.popupStateNode]; dojo.forEach(this._focalNodes, dojo.hitch(this, function(node){ if(dojo.isIE){ this.connect(node, "onactivate", this._onNodeFocus); this.connect(node, "ondeactivate", this._onNodeBlur); }else{ this.connect(node, "onfocus", this._onNodeFocus); this.connect(node, "onblur", this._onNodeBlur); } })); }, focusFocalNode: function(node){ // summary: Focus the focal node node. this._focusedNode = node; dijit.focus(node); }, hasNextFocalNode: function(){ // summary: Returns true if this widget has no node currently // focused or if there is a node following the focused one. // False is returned if the last node has focus. return this._focusedNode !== this.getFocalNodes()[1]; }, focusNext: function(){ // summary: Focus the focal node following the current node with focus // or the first one if no node currently has focus. this._focusedNode = this.getFocalNodes()[this._focusedNode ? 1 : 0]; dijit.focus(this._focusedNode); }, hasPrevFocalNode: function(){ // summary: Returns true if this widget has no node currently // focused or if there is a node before the focused one. // False is returned if the first node has focus. return this._focusedNode !== this.getFocalNodes()[0]; }, focusPrev: function(){ // summary: Focus the focal node before the current node with focus // or the last one if no node currently has focus. this._focusedNode = this.getFocalNodes()[this._focusedNode ? 0 : 1]; dijit.focus(this._focusedNode); }, getFocalNodes: function(){ // summary: Returns an array of focal nodes for this widget. return this._focalNodes; }, _onNodeFocus: function(evt){ this._focusedNode = evt.currentTarget; var fnc = this._focusedNode == this.focusNode ? "dijitDownArrowButtonFocused" : "dijitButtonContentsFocused"; dojo.addClass(this._focusedNode, fnc); }, _onNodeBlur: function(evt){ var fnc = evt.currentTarget == this.focusNode ? "dijitDownArrowButtonFocused" : "dijitButtonContentsFocused"; dojo.removeClass(evt.currentTarget, fnc); }, _onBlur: function(){ this.inherited(arguments); this._focusedNode = null; } }); dojo.declare("dijit.form.ToggleButton", dijit.form.Button, { // summary: // A button that can be in two states (checked or not). // Can be base class for things like tabs or checkbox or radio buttons baseClass: "dijitToggleButton", // checked: Boolean // Corresponds to the native HTML element's attribute. // In markup, specified as "checked='checked'" or just "checked". // True if the button is depressed, or the checkbox is checked, // or the radio button is selected, etc. checked: false, _onChangeMonitor: 'checked', attributeMap: dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap), {checked:"focusNode"}), _clicked: function(/*Event*/ evt){ this.setAttribute('checked', !this.checked); }, setAttribute: function(/*String*/ attr, /*anything*/ value){ this.inherited(arguments); switch(attr){ case "checked": dijit.setWaiState(this.focusNode || this.domNode, "pressed", this.checked); this._setStateClass(); this._handleOnChange(this.checked, true); } }, setChecked: function(/*Boolean*/ checked){ // summary: // Programatically deselect the button dojo.deprecated("setChecked("+checked+") is deprecated. Use setAttribute('checked',"+checked+") instead.", "", "2.0"); this.setAttribute('checked', checked); }, postCreate: function(){ this.inherited(arguments); this.setAttribute('checked', this.checked); //to initially set wai pressed state } }); }