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

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: Style fixes. 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..e010668bc289aa0031fb24514ebf45e0ac575e34 100644
--- a/chrome/browser/resources/shared/js/cr/ui/menu.js
+++ b/chrome/browser/resources/shared/js/cr/ui/menu.js
@@ -24,6 +24,8 @@ cr.define('cr.ui', function() {
this.addEventListener('mouseover', this.handleMouseOver_);
this.addEventListener('mouseout', this.handleMouseOut_);
+ this.selectedIndex = -1;
arv (Not doing code reviews) 2011/02/10 21:30:14 This should probably be done using { ... sele
nduca 2011/02/11 20:40:04 Isn't this worse? You'd be baking in knowledge tha
+
// Decorate the children as menu items.
var children = this.children;
for (var i = 0, child; child = children[i]; i++) {
@@ -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}
*/
@@ -148,7 +131,15 @@ cr.define('cr.ui', function() {
* The selected menu item.
* @type {number}
*/
- cr.defineProperty(Menu, 'selectedIndex', cr.PropertyKind.JS, -1);
+ cr.defineProperty(Menu, 'selectedIndex', cr.PropertyKind.JS,
+ function(selectedIndex, oldSelectedIndex) {
arv (Not doing code reviews) 2011/02/10 21:30:14 This is fine but I think this would be easier to r
nduca 2011/02/11 20:40:04 Done.
+ var oldSelectedItem = this.chidren[oldSelectedIndex];
+ if (oldSelectedItem)
+ oldSelectedItem.selected = false;
+ var item = this.selectedItem;
+ if (item)
+ item.selected = true;
+ });
// 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