1 | define([ |
---|
2 | "dojo/_base/declare", // declare |
---|
3 | "dojo/dom-class", // domClass.toggle |
---|
4 | "./MenuItem", |
---|
5 | "dojo/text!./templates/CheckedMenuItem.html", |
---|
6 | "./hccss" |
---|
7 | ], function(declare, domClass, MenuItem, template){ |
---|
8 | |
---|
9 | // module: |
---|
10 | // dijit/CheckedMenuItem |
---|
11 | |
---|
12 | return declare("dijit.CheckedMenuItem", MenuItem, { |
---|
13 | // summary: |
---|
14 | // A checkbox-like menu item for toggling on and off |
---|
15 | |
---|
16 | // Use both base classes so we get styles like dijitMenuItemDisabled |
---|
17 | baseClass: "dijitMenuItem dijitCheckedMenuItem", |
---|
18 | |
---|
19 | templateString: template, |
---|
20 | |
---|
21 | // checked: Boolean |
---|
22 | // Our checked state |
---|
23 | checked: false, |
---|
24 | _setCheckedAttr: function(/*Boolean*/ checked){ |
---|
25 | this.domNode.setAttribute("aria-checked", checked ? "true" : "false"); |
---|
26 | this._set("checked", checked); // triggers CSS update via _CssStateMixin |
---|
27 | }, |
---|
28 | |
---|
29 | iconClass: "", // override dijitNoIcon |
---|
30 | |
---|
31 | role: "menuitemcheckbox", |
---|
32 | |
---|
33 | // checkedChar: String |
---|
34 | // Character (or string) used in place of checkbox icon when display in high contrast mode |
---|
35 | checkedChar: "✓", |
---|
36 | |
---|
37 | onChange: function(/*Boolean*/ /*===== checked =====*/){ |
---|
38 | // summary: |
---|
39 | // User defined function to handle check/uncheck events |
---|
40 | // tags: |
---|
41 | // callback |
---|
42 | }, |
---|
43 | |
---|
44 | _onClick: function(evt){ |
---|
45 | // summary: |
---|
46 | // Clicking this item just toggles its state |
---|
47 | // tags: |
---|
48 | // private |
---|
49 | if(!this.disabled){ |
---|
50 | this.set("checked", !this.checked); |
---|
51 | this.onChange(this.checked); |
---|
52 | } |
---|
53 | this.onClick(evt); |
---|
54 | } |
---|
55 | }); |
---|
56 | }); |
---|