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