\n"}});
define("dijit/form/ComboButton", [
"dojo/_base/declare", // declare
"dojo/_base/event", // event.stop
"dojo/keys", // keys
"../focus", // focus.focus()
"./DropDownButton",
"dojo/text!./templates/ComboButton.html"
], function(declare, event, keys, focus, DropDownButton, template){
/*=====
var DropDownButton = dijit.form.DropDownButton;
=====*/
// module:
// dijit/form/ComboButton
// summary:
// A combination button and drop-down button.
return declare("dijit.form.ComboButton", DropDownButton, {
// summary:
// A combination button and drop-down button.
// Users can click one side to "press" the button, or click an arrow
// icon to display the drop down.
//
// example:
// |
//
// example:
// | var button1 = new dijit.form.ComboButton({label: "hello world", onClick: foo, dropDown: "myMenu"});
// | dojo.body().appendChild(button1.domNode);
//
templateString: template,
// Map widget attributes to DOMNode attributes.
_setIdAttr: "", // override _FormWidgetMixin which puts id on the focusNode
_setTabIndexAttr: ["focusNode", "titleNode"],
_setTitleAttr: "titleNode",
// optionsTitle: String
// Text that describes the options menu (accessibility)
optionsTitle: "",
baseClass: "dijitComboButton",
// Set classes like dijitButtonContentsHover or dijitArrowButtonActive depending on
// mouse action over specified node
cssStateNodes: {
"buttonNode": "dijitButtonNode",
"titleNode": "dijitButtonContents",
"_popupStateNode": "dijitDownArrowButton"
},
_focusedNode: null,
_onButtonKeyPress: function(/*Event*/ evt){
// summary:
// Handler for right arrow key when focus is on left part of button
if(evt.charOrCode == keys[this.isLeftToRight() ? "RIGHT_ARROW" : "LEFT_ARROW"]){
focus.focus(this._popupStateNode);
event.stop(evt);
}
},
_onArrowKeyPress: function(/*Event*/ evt){
// summary:
// Handler for left arrow key when focus is on right part of button
if(evt.charOrCode == keys[this.isLeftToRight() ? "LEFT_ARROW" : "RIGHT_ARROW"]){
focus.focus(this.titleNode);
event.stop(evt);
}
},
focus: function(/*String*/ position){
// summary:
// Focuses this widget to according to position, if specified,
// otherwise on arrow node
// position:
// "start" or "end"
if(!this.disabled){
focus.focus(position == "start" ? this.titleNode : this._popupStateNode);
}
}
});
});