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

Side by Side 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: fix for clear browsing data dropdown menu 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 /** 5 /**
6 * 'settings-appearance-page' is the settings page containing appearance 6 * 'settings-appearance-page' is the settings page containing appearance
7 * settings. 7 * settings.
8 * 8 *
9 * Example: 9 * Example:
10 * 10 *
(...skipping 12 matching lines...) Expand all
23 properties: { 23 properties: {
24 /** 24 /**
25 * The current active route. 25 * The current active route.
26 */ 26 */
27 currentRoute: { 27 currentRoute: {
28 notify: true, 28 notify: true,
29 type: Object, 29 type: Object,
30 }, 30 },
31 31
32 /** 32 /**
33 * Preferences state.
34 */
35 prefs: {
36 type: Object,
37 notify: true,
38 },
39
40 /**
33 * @private 41 * @private
34 */ 42 */
35 allowResetTheme_: { 43 allowResetTheme_: {
36 notify: true, 44 notify: true,
37 type: Boolean, 45 type: Boolean,
38 value: false, 46 value: false,
39 }, 47 },
40 48
41 /** 49 /**
50 * @private
51 */
52 defaultZoomLevel_: {
53 notify: true,
54 type: Object,
55 value: function() {
56 return {
57 type: chrome.settingsPrivate.PrefType.NUMBER,
58 };
59 },
60 },
61
62 /**
42 * List of options for the font size drop-down menu. 63 * List of options for the font size drop-down menu.
43 * The order of entries in this array matches the 64 * @type {!DropdownMenuOptionList}
44 * prefs.browser.clear_data.time_period.value enum.
45 * @private {!Array<!Array<{0: number, 1: string}>>}
46 */ 65 */
47 fontSizeOptions_: { 66 fontSizeOptions_: {
48 readOnly: true, 67 readOnly: true,
49 type: Array, 68 type: Array,
50 value: function() { 69 value: function() {
51 return [ 70 return [
52 [9, loadTimeData.getString('verySmall')], 71 {value: 9, name: loadTimeData.getString('verySmall')},
53 [12, loadTimeData.getString('small')], 72 {value: 12, name: loadTimeData.getString('small')},
54 [16, loadTimeData.getString('medium')], 73 {value: 16, name: loadTimeData.getString('medium')},
55 [20, loadTimeData.getString('large')], 74 {value: 20, name: loadTimeData.getString('large')},
56 [24, loadTimeData.getString('veryLarge')], 75 {value: 24, name: loadTimeData.getString('veryLarge')},
57 ]; 76 ];
58 }, 77 },
59 }, 78 },
79
80 /**
81 * List of options for the page zoom drop-down menu.
82 * @type {!DropdownMenuOptionList}
83 */
84 pageZoomOptions_: {
85 readOnly: true,
86 type: Array,
87 value: [
88 {value: 25, name: '25%'},
89 {value: 33, name: '33%'},
90 {value: 50, name: '50%'},
91 {value: 67, name: '67%'},
92 {value: 75, name: '75%'},
93 {value: 90, name: '90%'},
94 {value: 100, name: '100%'},
95 {value: 110, name: '110%'},
96 {value: 125, name: '125%'},
97 {value: 150, name: '150%'},
98 {value: 175, name: '175%'},
99 {value: 200, name: '200%'},
100 {value: 300, name: '300%'},
101 {value: 400, name: '400%'},
102 {value: 500, name: '500%'},
103 ],
104 },
60 }, 105 },
61 106
62 behaviors: [ 107 behaviors: [
63 I18nBehavior, 108 I18nBehavior,
64 ], 109 ],
65 110
111 observers: [
112 'zoomLevelChanged_(defaultZoomLevel_.value)',
113 ],
114
66 ready: function() { 115 ready: function() {
67 this.$.defaultFontSize.menuOptions = this.fontSizeOptions_; 116 this.$.defaultFontSize.menuOptions = this.fontSizeOptions_;
117 this.$.pageZoom.menuOptions = this.pageZoomOptions_;
118 chrome.settingsPrivate.getDefaultZoomPercent(
michaelpg 2015/11/21 00:02:28 hmm, won't we need a listener for changes to the d
dschuyler 2015/11/21 01:34:41 Done.
119 this.zoomPrefChanged_.bind(this));
68 }, 120 },
69 121
70 /** @override */ 122 /** @override */
71 attached: function() { 123 attached: function() {
72 // Query the initial state. 124 // Query the initial state.
73 cr.sendWithCallback('getResetThemeEnabled', undefined, 125 cr.sendWithCallback('getResetThemeEnabled', undefined,
74 this.setResetThemeEnabled.bind(this)); 126 this.setResetThemeEnabled.bind(this));
75 127
76 // Set up the change event listener. 128 // Set up the change event listener.
77 cr.addWebUIListener('reset-theme-enabled-changed', 129 cr.addWebUIListener('reset-theme-enabled-changed',
(...skipping 14 matching lines...) Expand all
92 144
93 /** @private */ 145 /** @private */
94 openThemesGallery_: function() { 146 openThemesGallery_: function() {
95 window.open(loadTimeData.getString('themesGalleryUrl')); 147 window.open(loadTimeData.getString('themesGalleryUrl'));
96 }, 148 },
97 149
98 /** @private */ 150 /** @private */
99 resetTheme_: function() { 151 resetTheme_: function() {
100 chrome.send('resetTheme'); 152 chrome.send('resetTheme');
101 }, 153 },
154
155 /**
156 * @param {number} percent The integer percentage of the page zoom.
157 * @private
158 */
159 zoomPrefChanged_: function(percent) {
160 this.set('defaultZoomLevel_.value', percent);
161 },
162
163 /**
164 * @param {number} percent The integer percentage of the page zoom.
165 * @private
166 */
167 zoomLevelChanged_: function(percent) {
168 // The |percent| may be undefined on startup.
169 if (percent === undefined)
170 return;
171 chrome.settingsPrivate.setDefaultZoomPercent(percent);
172 },
102 }); 173 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698