]>
git.wh0rd.org - tt-rss.git/blob - lib/dijit/form/ComboButton.js.uncompressed.js
2 'url:dijit/form/templates/ComboButton.html':"<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' role=\"presentation\"\n\t><tbody role=\"presentation\"><tr role=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" data-dojo-attach-point=\"buttonNode\" data-dojo-attach-event=\"ondijitclick:_onClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdata-dojo-attach-point=\"titleNode\"\n\t\t\trole=\"button\" aria-labelledby=\"${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" data-dojo-attach-point=\"iconNode\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" data-dojo-attach-point=\"containerNode\" role=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdata-dojo-attach-point=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdata-dojo-attach-event=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\trole=\"button\" aria-haspopup=\"true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" role=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" role=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" data-dojo-attach-point=\"valueNode\" role=\"presentation\"\n\t\t/></td></tr></tbody\n></table>\n"}});
3 define("dijit/form/ComboButton", [
4 "dojo/_base/declare", // declare
5 "dojo/_base/event", // event.stop
7 "../focus", // focus.focus()
9 "dojo/text!./templates/ComboButton.html"
10 ], function(declare
, event
, keys
, focus
, DropDownButton
, template
){
13 // dijit/form/ComboButton
15 return declare("dijit.form.ComboButton", DropDownButton
, {
17 // A combination button and drop-down button.
18 // Users can click one side to "press" the button, or click an arrow
19 // icon to display the drop down.
22 // | <button data-dojo-type="dijit/form/ComboButton" onClick="...">
23 // | <span>Hello world</span>
24 // | <div data-dojo-type="dijit/Menu">...</div>
28 // | var button1 = new ComboButton({label: "hello world", onClick: foo, dropDown: "myMenu"});
29 // | dojo.body().appendChild(button1.domNode);
32 templateString
: template
,
34 // Map widget attributes to DOMNode attributes.
35 _setIdAttr
: "", // override _FormWidgetMixin which puts id on the focusNode
36 _setTabIndexAttr
: ["focusNode", "titleNode"],
37 _setTitleAttr
: "titleNode",
39 // optionsTitle: String
40 // Text that describes the options menu (accessibility)
43 baseClass
: "dijitComboButton",
45 // Set classes like dijitButtonContentsHover or dijitArrowButtonActive depending on
46 // mouse action over specified node
48 "buttonNode": "dijitButtonNode",
49 "titleNode": "dijitButtonContents",
50 "_popupStateNode": "dijitDownArrowButton"
55 _onButtonKeyPress: function(/*Event*/ evt
){
57 // Handler for right arrow key when focus is on left part of button
58 if(evt
.charOrCode
== keys
[this.isLeftToRight() ? "RIGHT_ARROW" : "LEFT_ARROW"]){
59 focus
.focus(this._popupStateNode
);
64 _onArrowKeyPress: function(/*Event*/ evt
){
66 // Handler for left arrow key when focus is on right part of button
67 if(evt
.charOrCode
== keys
[this.isLeftToRight() ? "LEFT_ARROW" : "RIGHT_ARROW"]){
68 focus
.focus(this.titleNode
);
73 focus: function(/*String*/ position
){
75 // Focuses this widget to according to position, if specified,
76 // otherwise on arrow node
80 focus
.focus(position
== "start" ? this.titleNode
: this._popupStateNode
);