OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('cr.ui', function() { | 5 cr.define('cr.ui', function() { |
6 const Command = cr.ui.Command; | 6 const Command = cr.ui.Command; |
7 | 7 |
8 /** | 8 /** |
9 * Creates a new menu item element. | 9 * Creates a new menu item element. |
10 * @param {Object=} opt_propertyBag Optional properties. | 10 * @param {Object=} opt_propertyBag Optional properties. |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 */ | 45 */ |
46 command_: null, | 46 command_: null, |
47 get command() { | 47 get command() { |
48 return this.command_; | 48 return this.command_; |
49 }, | 49 }, |
50 set command(command) { | 50 set command(command) { |
51 if (this.command_) { | 51 if (this.command_) { |
52 this.command_.removeEventListener('labelChange', this); | 52 this.command_.removeEventListener('labelChange', this); |
53 this.command_.removeEventListener('disabledChange', this); | 53 this.command_.removeEventListener('disabledChange', this); |
54 this.command_.removeEventListener('hiddenChange', this); | 54 this.command_.removeEventListener('hiddenChange', this); |
55 this.command_.removeEventListener('checkedChange', this); | |
56 } | 55 } |
57 | 56 |
58 if (typeof command == 'string' && command[0] == '#') { | 57 if (typeof command == 'string' && command[0] == '#') { |
59 command = this.ownerDocument.getElementById(command.slice(1)); | 58 command = this.ownerDocument.getElementById(command.slice(1)); |
60 cr.ui.decorate(command, Command); | 59 cr.ui.decorate(command, Command); |
61 } | 60 } |
62 | 61 |
63 this.command_ = command; | 62 this.command_ = command; |
64 if (command) { | 63 if (command) { |
65 if (command.id) | 64 if (command.id) |
66 this.setAttribute('command', '#' + command.id); | 65 this.setAttribute('command', '#' + command.id); |
67 | 66 |
68 this.label = command.label; | 67 this.label = command.label; |
69 this.disabled = command.disabled; | 68 this.disabled = command.disabled; |
70 this.hidden = command.hidden; | 69 this.hidden = command.hidden; |
71 | 70 |
72 this.command_.addEventListener('labelChange', this); | 71 this.command_.addEventListener('labelChange', this); |
73 this.command_.addEventListener('disabledChange', this); | 72 this.command_.addEventListener('disabledChange', this); |
74 this.command_.addEventListener('hiddenChange', this); | 73 this.command_.addEventListener('hiddenChange', this); |
75 this.command_.addEventListener('checkedChange', this); | |
76 } | 74 } |
77 }, | 75 }, |
78 | 76 |
79 /** | 77 /** |
80 * The text label. | 78 * The text label. |
81 * @type {string} | 79 * @type {string} |
82 */ | 80 */ |
83 get label() { | 81 get label() { |
84 return this.textContent; | 82 return this.textContent; |
85 }, | 83 }, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 switch (e.type) { | 117 switch (e.type) { |
120 case 'disabledChange': | 118 case 'disabledChange': |
121 this.disabled = this.command.disabled; | 119 this.disabled = this.command.disabled; |
122 break; | 120 break; |
123 case 'hiddenChange': | 121 case 'hiddenChange': |
124 this.hidden = this.command.hidden; | 122 this.hidden = this.command.hidden; |
125 break; | 123 break; |
126 case 'labelChange': | 124 case 'labelChange': |
127 this.label = this.command.label; | 125 this.label = this.command.label; |
128 break; | 126 break; |
129 case 'checkedChange': | |
130 this.checked = this.command.checked; | |
131 break; | |
132 } | 127 } |
133 } | 128 } |
134 }; | 129 }; |
135 | 130 |
136 /** | 131 /** |
137 * Whether the menu item is disabled or not. | 132 * Whether the menu item is disabled or not. |
138 * @type {boolean} | 133 * @type {boolean} |
139 */ | 134 */ |
140 cr.defineProperty(MenuItem, 'disabled', cr.PropertyKind.BOOL_ATTR); | 135 cr.defineProperty(MenuItem, 'disabled', cr.PropertyKind.BOOL_ATTR); |
141 | 136 |
142 /** | 137 /** |
143 * Whether the menu item is hidden or not. | 138 * Whether the menu item is hidden or not. |
144 * @type {boolean} | 139 * @type {boolean} |
145 */ | 140 */ |
146 cr.defineProperty(MenuItem, 'hidden', cr.PropertyKind.BOOL_ATTR); | 141 cr.defineProperty(MenuItem, 'hidden', cr.PropertyKind.BOOL_ATTR); |
147 | 142 |
148 /** | 143 /** |
149 * Whether the menu item is selected or not. | 144 * Whether the menu item is selected or not. |
150 * @type {boolean} | 145 * @type {boolean} |
151 */ | 146 */ |
152 cr.defineProperty(MenuItem, 'selected', cr.PropertyKind.BOOL_ATTR); | 147 cr.defineProperty(MenuItem, 'selected', cr.PropertyKind.BOOL_ATTR); |
153 | 148 |
154 /** | |
155 * Whether the menu item is checked or not. | |
156 * @type {boolean} | |
157 */ | |
158 cr.defineProperty(MenuItem, 'checked', cr.PropertyKind.BOOL_ATTR); | |
159 | |
160 // Export | 149 // Export |
161 return { | 150 return { |
162 MenuItem: MenuItem | 151 MenuItem: MenuItem |
163 }; | 152 }; |
164 }); | 153 }); |
OLD | NEW |