Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Unified Diff: chrome/browser/resources/shared/js/cr/ui/menu.js

Issue 6246078: Add an optional set_hook argument to defineProperty. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome/browser/resources
Patch Set: Fix jsdoc. Move selectedIndex default to proto. Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/shared/js/cr.js ('k') | chrome/browser/resources/shared/js/cr_test.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/shared/js/cr/ui/menu.js
diff --git a/chrome/browser/resources/shared/js/cr/ui/menu.js b/chrome/browser/resources/shared/js/cr/ui/menu.js
index 1145d0f75a5a264fa54d44908d001827107d5bf0..2ba261ebb47295f00d18d373aa1e7750d4b05ccf 100644
--- a/chrome/browser/resources/shared/js/cr/ui/menu.js
+++ b/chrome/browser/resources/shared/js/cr/ui/menu.js
@@ -17,6 +17,8 @@ cr.define('cr.ui', function() {
Menu.prototype = {
__proto__: HTMLMenuElement.prototype,
+ selectedIndex_: -1,
+
/**
* Initializes the menu element.
*/
@@ -64,25 +66,6 @@ cr.define('cr.ui', function() {
},
/**
- * The index of the selected item.
- * @type {boolean}
- */
- // getter and default value is defined using cr.defineProperty.
- set selectedIndex(selectedIndex) {
- if (this.selectedIndex_ != selectedIndex) {
- var oldSelectedItem = this.selectedItem;
- this.selectedIndex_ = selectedIndex;
- if (oldSelectedItem)
- oldSelectedItem.selected = false;
- var item = this.selectedItem;
- if (item)
- item.selected = true;
-
- cr.dispatchSimpleEvent(this, 'change');
- }
- },
-
- /**
* The selected menu item or null if none.
* @type {cr.ui.MenuItem}
*/
@@ -144,11 +127,20 @@ cr.define('cr.ui', function() {
}
};
+ function selectedIndexChanged(selectedIndex, oldSelectedIndex) {
+ var oldSelectedItem = this.chidren[oldSelectedIndex];
+ if (oldSelectedItem)
+ oldSelectedItem.selected = false;
+ var item = this.selectedItem;
+ if (item)
+ item.selected = true;
+ }
/**
* The selected menu item.
* @type {number}
*/
- cr.defineProperty(Menu, 'selectedIndex', cr.PropertyKind.JS, -1);
+ cr.defineProperty(Menu, 'selectedIndex', cr.PropertyKind.JS,
+ selectedIndexChanged);
// Export
return {
« no previous file with comments | « chrome/browser/resources/shared/js/cr.js ('k') | chrome/browser/resources/shared/js/cr_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698