Fix #5718 - Change the order / layout of tabs. / new master lists
[roojs1] / docs / src / Roo_menu_MenuMgr.js.html
1 <html><head><title>/home/edward/gitlive/roojs1/Roo/menu/MenuMgr.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11
12 /**
13  * @class Roo.menu.MenuMgr
14  * Provides a common registry of all menu items on a page so that they can be easily accessed by id.
15  * @singleton
16  */
17 </span><span class="jsdoc-var">Roo.menu.MenuMgr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
18    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">menus</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">active</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">groups </span><span class="jsdoc-syntax">= {}, </span><span class="jsdoc-var">attached </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lastShow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">();
19
20    </span><span class="jsdoc-comment">// private - called when first menu is created
21    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">init</span><span class="jsdoc-syntax">(){
22        </span><span class="jsdoc-var">menus </span><span class="jsdoc-syntax">= {};
23        </span><span class="jsdoc-var">active </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.MixedCollection</span><span class="jsdoc-syntax">();
24        </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.addKeyListener</span><span class="jsdoc-syntax">(27, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
25            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">active.length </span><span class="jsdoc-syntax">&gt; 0){
26                </span><span class="jsdoc-var">hideAll</span><span class="jsdoc-syntax">();
27            }
28        });
29    }
30
31    </span><span class="jsdoc-comment">// private
32    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">hideAll</span><span class="jsdoc-syntax">(){
33        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">active </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">active.length </span><span class="jsdoc-syntax">&gt; 0){
34            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">active.clone</span><span class="jsdoc-syntax">();
35            </span><span class="jsdoc-var">c.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">){
36                </span><span class="jsdoc-var">m.hide</span><span class="jsdoc-syntax">();
37            });
38        }
39    }
40
41    </span><span class="jsdoc-comment">// private
42    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">onHide</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">){
43        </span><span class="jsdoc-var">active.remove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">);
44        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">active.length </span><span class="jsdoc-syntax">&lt; 1){
45            </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mousedown&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onMouseDown</span><span class="jsdoc-syntax">);
46            </span><span class="jsdoc-var">attached </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
47        }
48    }
49
50    </span><span class="jsdoc-comment">// private
51    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">onShow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">){
52        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">last </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">active.last</span><span class="jsdoc-syntax">();
53        </span><span class="jsdoc-var">lastShow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">();
54        </span><span class="jsdoc-var">active.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">);
55        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">attached</span><span class="jsdoc-syntax">){
56            </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mousedown&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onMouseDown</span><span class="jsdoc-syntax">);
57            </span><span class="jsdoc-var">attached </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
58        }
59        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m.parentMenu</span><span class="jsdoc-syntax">){
60           </span><span class="jsdoc-var">m.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setZIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m.parentMenu.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;z-index&quot;</span><span class="jsdoc-syntax">), 10) + 3);
61           </span><span class="jsdoc-var">m.parentMenu.activeChild </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">;
62        }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">last </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">last.isVisible</span><span class="jsdoc-syntax">()){
63           </span><span class="jsdoc-var">m.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setZIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">last.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;z-index&quot;</span><span class="jsdoc-syntax">), 10) + 3);
64        }
65    }
66
67    </span><span class="jsdoc-comment">// private
68    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">onBeforeHide</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">){
69        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m.activeChild</span><span class="jsdoc-syntax">){
70            </span><span class="jsdoc-var">m.activeChild.hide</span><span class="jsdoc-syntax">();
71        }
72        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m.autoHideTimer</span><span class="jsdoc-syntax">){
73            </span><span class="jsdoc-var">clearTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m.autoHideTimer</span><span class="jsdoc-syntax">);
74            </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">m.autoHideTimer</span><span class="jsdoc-syntax">;
75        }
76    }
77
78    </span><span class="jsdoc-comment">// private
79    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">onBeforeShow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">){
80        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">m.parentMenu</span><span class="jsdoc-syntax">;
81        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">pm </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">m.allowOtherMenus</span><span class="jsdoc-syntax">){
82            </span><span class="jsdoc-var">hideAll</span><span class="jsdoc-syntax">();
83        }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pm </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">pm.activeChild </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">active </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">){
84            </span><span class="jsdoc-var">pm.activeChild.hide</span><span class="jsdoc-syntax">();
85        }
86    }
87
88    </span><span class="jsdoc-comment">// private
89    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">onMouseDown</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
90        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lastShow.getElapsed</span><span class="jsdoc-syntax">() &gt; 50 &amp;&amp; </span><span class="jsdoc-var">active.length </span><span class="jsdoc-syntax">&gt; 0 &amp;&amp; !</span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;.x-menu&quot;</span><span class="jsdoc-syntax">)){
91            </span><span class="jsdoc-var">hideAll</span><span class="jsdoc-syntax">();
92        }
93    }
94
95    </span><span class="jsdoc-comment">// private
96    </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">onBeforeCheck</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mi</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">){
97        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">state</span><span class="jsdoc-syntax">){
98            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">mi.group</span><span class="jsdoc-syntax">];
99            </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">g.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
100                </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] != </span><span class="jsdoc-var">mi</span><span class="jsdoc-syntax">){
101                    </span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.setChecked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
102                }
103            }
104        }
105    }
106
107    </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
108
109        </span><span class="jsdoc-comment">/**
110         * Hides all menus that are currently visible
111         */
112        </span><span class="jsdoc-var">hideAll </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
113             </span><span class="jsdoc-var">hideAll</span><span class="jsdoc-syntax">();
114        },
115
116        </span><span class="jsdoc-comment">// private
117        </span><span class="jsdoc-var">register </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">){
118            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">menus</span><span class="jsdoc-syntax">){
119                </span><span class="jsdoc-var">init</span><span class="jsdoc-syntax">();
120            }
121            </span><span class="jsdoc-var">menus</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">menu.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">;
122            </span><span class="jsdoc-var">menu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforehide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onBeforeHide</span><span class="jsdoc-syntax">);
123            </span><span class="jsdoc-var">menu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onHide</span><span class="jsdoc-syntax">);
124            </span><span class="jsdoc-var">menu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeshow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onBeforeShow</span><span class="jsdoc-syntax">);
125            </span><span class="jsdoc-var">menu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onShow</span><span class="jsdoc-syntax">);
126            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">menu.group</span><span class="jsdoc-syntax">;
127            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">menu.events</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">&quot;checkchange&quot;</span><span class="jsdoc-syntax">]){
128                </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">]){
129                    </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">] = [];
130                }
131                </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">);
132                </span><span class="jsdoc-var">menu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;checkchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onCheck</span><span class="jsdoc-syntax">);
133            }
134        },
135
136         </span><span class="jsdoc-comment">/**
137          * Returns a {@link Roo.menu.Menu} object
138          * @param {String/Object} menu The string menu id, an existing menu object reference, or a Menu config that will
139          * be used to generate and return a new Menu instance.
140          */
141        </span><span class="jsdoc-var">get </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">){
142            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">menu </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;string&quot;</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// menu id
143                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">menus</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">];
144            }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menu.events</span><span class="jsdoc-syntax">){  </span><span class="jsdoc-comment">// menu instance
145                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">;
146            }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">menu.length </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number'</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// array of menu items?
147                </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.menu.Menu</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">});
148            }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{ </span><span class="jsdoc-comment">// otherwise, must be a config
149                </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.menu.Menu</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">);
150            }
151        },
152
153        </span><span class="jsdoc-comment">// private
154        </span><span class="jsdoc-var">unregister </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">){
155            </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">menus</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">menu.id</span><span class="jsdoc-syntax">];
156            </span><span class="jsdoc-var">menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforehide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onBeforeHide</span><span class="jsdoc-syntax">);
157            </span><span class="jsdoc-var">menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onHide</span><span class="jsdoc-syntax">);
158            </span><span class="jsdoc-var">menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeshow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onBeforeShow</span><span class="jsdoc-syntax">);
159            </span><span class="jsdoc-var">menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onShow</span><span class="jsdoc-syntax">);
160            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">menu.group</span><span class="jsdoc-syntax">;
161            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">menu.events</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">&quot;checkchange&quot;</span><span class="jsdoc-syntax">]){
162                </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menu</span><span class="jsdoc-syntax">);
163                </span><span class="jsdoc-var">menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;checkchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onCheck</span><span class="jsdoc-syntax">);
164            }
165        },
166
167        </span><span class="jsdoc-comment">// private
168        </span><span class="jsdoc-var">registerCheckable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menuItem</span><span class="jsdoc-syntax">){
169            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">menuItem.group</span><span class="jsdoc-syntax">;
170            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">){
171                </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">]){
172                    </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">] = [];
173                }
174                </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menuItem</span><span class="jsdoc-syntax">);
175                </span><span class="jsdoc-var">menuItem.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforecheckchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onBeforeCheck</span><span class="jsdoc-syntax">);
176            }
177        },
178
179        </span><span class="jsdoc-comment">// private
180        </span><span class="jsdoc-var">unregisterCheckable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menuItem</span><span class="jsdoc-syntax">){
181            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">menuItem.group</span><span class="jsdoc-syntax">;
182            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">){
183                </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">menuItem</span><span class="jsdoc-syntax">);
184                </span><span class="jsdoc-var">menuItem.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforecheckchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">onBeforeCheck</span><span class="jsdoc-syntax">);
185            }
186        }
187    };
188 }();</span></code></body></html>