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

Unified Diff: chrome/browser/resources/settings/appearance_page/appearance_page.js

Issue 1420533011: [MD settings] change dropdown to accept array of objects rather than array of tuples (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@appearance50p
Patch Set: trybot fix Created 5 years, 1 month 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
Index: chrome/browser/resources/settings/appearance_page/appearance_page.js
diff --git a/chrome/browser/resources/settings/appearance_page/appearance_page.js b/chrome/browser/resources/settings/appearance_page/appearance_page.js
index c38b25e7e0781c859152496a4259242555dc2db3..52691cb918f6c2e4d7f0b1bbc1f59d9e3a4721ed 100644
--- a/chrome/browser/resources/settings/appearance_page/appearance_page.js
+++ b/chrome/browser/resources/settings/appearance_page/appearance_page.js
@@ -30,6 +30,14 @@ Polymer({
},
/**
+ * Preferences state.
+ */
+ prefs: {
+ type: Object,
+ notify: true,
+ },
+
+ /**
* @private
*/
allowResetTheme_: {
@@ -39,32 +47,78 @@ Polymer({
},
/**
+ * @private
+ */
+ defaultZoomLevel_: {
+ notify: true,
+ type: Object,
+ value: function() {
+ return {
+ type: chrome.settingsPrivate.PrefType.NUMBER,
+ };
+ },
+ },
+
+ /**
* List of options for the font size drop-down menu.
- * The order of entries in this array matches the
- * prefs.browser.clear_data.time_period.value enum.
- * @private {!Array<!Array<{0: number, 1: string}>>}
+ * @type {!DropdownMenuOptionList}
*/
fontSizeOptions_: {
readOnly: true,
type: Array,
value: function() {
return [
- [9, loadTimeData.getString('verySmall')],
- [12, loadTimeData.getString('small')],
- [16, loadTimeData.getString('medium')],
- [20, loadTimeData.getString('large')],
- [24, loadTimeData.getString('veryLarge')],
+ {value: 9, name: loadTimeData.getString('verySmall')},
+ {value: 12, name: loadTimeData.getString('small')},
+ {value: 16, name: loadTimeData.getString('medium')},
+ {value: 20, name: loadTimeData.getString('large')},
+ {value: 24, name: loadTimeData.getString('veryLarge')},
];
},
},
+
+ /**
+ * List of options for the page zoom drop-down menu.
+ * @type {!DropdownMenuOptionList}
+ */
+ pageZoomOptions_: {
+ readOnly: true,
+ type: Array,
+ value: [
+ {value: 25, name: '25%'},
+ {value: 33, name: '33%'},
+ {value: 50, name: '50%'},
+ {value: 67, name: '67%'},
+ {value: 75, name: '75%'},
+ {value: 90, name: '90%'},
+ {value: 100, name: '100%'},
+ {value: 110, name: '110%'},
+ {value: 125, name: '125%'},
+ {value: 150, name: '150%'},
+ {value: 175, name: '175%'},
+ {value: 200, name: '200%'},
+ {value: 300, name: '300%'},
+ {value: 400, name: '400%'},
+ {value: 500, name: '500%'},
+ ],
+ },
},
behaviors: [
I18nBehavior,
],
+ observers: [
+ 'zoomLevelChanged_(defaultZoomLevel_.value)',
+ ],
+
ready: function() {
this.$.defaultFontSize.menuOptions = this.fontSizeOptions_;
+ this.$.pageZoom.menuOptions = this.pageZoomOptions_;
+ // TODO(dschuyler): Look into adding a listener for the
+ // default zoom percent.
+ chrome.settingsPrivate.getDefaultZoomPercent(
+ this.zoomPrefChanged_.bind(this));
},
/** @override */
@@ -104,4 +158,23 @@ Polymer({
showFontsPage_: function() {
return this.currentRoute.subpage[0] == 'appearance-fonts';
},
+
+ /**
+ * @param {number} percent The integer percentage of the page zoom.
+ * @private
+ */
+ zoomPrefChanged_: function(percent) {
+ this.set('defaultZoomLevel_.value', percent);
+ },
+
+ /**
+ * @param {number} percent The integer percentage of the page zoom.
+ * @private
+ */
+ zoomLevelChanged_: function(percent) {
+ // The |percent| may be undefined on startup.
+ if (percent === undefined)
+ return;
+ chrome.settingsPrivate.setDefaultZoomPercent(percent);
+ },
});

Powered by Google App Engine
This is Rietveld 408576698