OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 /** | |
6 * @fileoverview PendingChanges class tracks changes to be applied when an | |
7 * "Apply Changes" button is clicked. | |
8 */ | |
9 PendingChanges = function() { | |
yoshiki
2013/08/28 02:53:35
var PendingChanges = function() {
...
or
func
yoshiki
2013/08/28 02:53:35
Add a blank line between the end of @fileoverview
yoshiki
2013/08/28 02:53:35
Write the JSdoc of the this function.
falken
2013/08/28 08:36:16
Done.
falken
2013/08/28 08:36:16
Done.
falken
2013/08/28 08:36:16
Done.
| |
10 // Format: pendingFontChanges_.Cyrl.sansserif = "My SansSerif Cyrillic Font" | |
11 this.pendingFontChanges_ = {}; | |
12 | |
13 // Format: pendingFontSizeChanges_.defaultFontSize = 12 | |
14 this.pendingFontSizeChanges_ = {}; | |
15 } | |
16 | |
17 /** | |
18 * Returns the pending font change for the specified script and family, or null | |
19 * if it doesn't exist. | |
20 * | |
21 * @param {string} script The script code, like "Cyrl". | |
22 * @param {string} genericFamily The generic family, like "sansserif". | |
yoshiki
2013/08/28 02:53:35
Add "@return" annotation.
falken
2013/08/28 08:36:16
Done.
| |
23 */ | |
24 PendingChanges.prototype.getFont = function(script, genericFamily) { | |
25 if (this.pendingFontChanges_[script]) | |
26 return this.pendingFontChanges_[script][genericFamily]; | |
27 return null; | |
28 } | |
29 | |
30 /** | |
31 * Returns the pending font size change, or null if it doesn't exist. | |
32 * | |
33 * @param {string} fontSizeKey The font size setting. One of | |
34 * 'defaultFontSize', 'defaultFixedFontSize', or 'minFontSize'. | |
yoshiki
2013/08/28 02:53:35
ditto
falken
2013/08/28 08:36:16
Done.
| |
35 */ | |
36 PendingChanges.prototype.getFontSize = function(fontSizeKey) { | |
37 return this.pendingFontSizeChanges_[fontSizeKey]; | |
38 } | |
39 | |
40 /** | |
41 * Sets the pending font change for the specified script and family. | |
42 * | |
43 * @param {string} script The script code, like "Cyrl". | |
44 * @param {string} genericFamily The generic family, like "sansserif". | |
45 * @param {string} font The font to set the setting to, or null to clear it. | |
yoshiki
2013/08/28 02:53:35
If this parameter is a null-able string, use "?str
falken
2013/08/28 08:36:16
Done.
| |
46 */ | |
47 PendingChanges.prototype.setFont = function(script, genericFamily, font) { | |
48 if (!this.pendingFontChanges_[script]) | |
49 this.pendingFontChanges_[script] = {}; | |
50 if (this.pendingFontChanges_[script][genericFamily] == font) | |
51 return; | |
52 this.pendingFontChanges_[script][genericFamily] = font; | |
53 } | |
54 | |
55 /** | |
56 * Sets the pending font size change. | |
57 * | |
58 * @param {string} fontSizeKey The font size setting. See | |
59 * getFontSize(). | |
60 * @param {number} size The font size to set the setting to. | |
61 */ | |
62 PendingChanges.prototype.setFontSize = function(fontSizeKey, size) { | |
63 if (this.pendingFontSizeChanges_[fontSizeKey] == size) | |
64 return; | |
65 this.pendingFontSizeChanges_[fontSizeKey] = size; | |
66 } | |
67 | |
68 /** | |
69 * Commits the pending changes to Chrome. After this function is called, there | |
70 * are no pending changes. | |
71 */ | |
72 PendingChanges.prototype.apply = function() { | |
73 for (script in this.pendingFontChanges_) { | |
74 for (genericFamily in this.pendingFontChanges_[script]) { | |
75 var details = {}; | |
76 details.script = script; | |
77 details.genericFamily = genericFamily; | |
78 details.fontId = this.pendingFontChanges_[script][genericFamily]; | |
79 chrome.fontSettings.setFont(details); | |
80 } | |
81 } | |
82 | |
83 var size = this.pendingFontSizeChanges_['defaultFontSize']; | |
84 if (size != null) | |
85 chrome.fontSettings.setDefaultFontSize( { pixelSize: size }); | |
yoshiki
2013/08/28 02:53:35
chrome.fontSettings.setDefaultFontSize({pixelSize:
falken
2013/08/28 08:36:16
Done.
| |
86 | |
87 size = this.pendingFontSizeChanges_['defaultFixedFontSize']; | |
88 if (size != null) | |
89 chrome.fontSettings.setDefaultFixedFontSize( { pixelSize: size }); | |
yoshiki
2013/08/28 02:53:35
ditto
falken
2013/08/28 08:36:16
Done.
| |
90 | |
91 size = this.pendingFontSizeChanges_['minFontSize']; | |
92 if (size != null) | |
93 chrome.fontSettings.setMinimumFontSize( { pixelSize: size }); | |
yoshiki
2013/08/28 02:53:35
ditto
falken
2013/08/28 08:36:16
Done.
| |
94 | |
95 this.clear(); | |
96 } | |
97 | |
98 /** | |
99 * Clears the pending font changes for a single script. | |
100 * | |
101 * @param {string} script The script code, like "Cyrl". | |
102 */ | |
103 PendingChanges.prototype.clearOneScript = function(script) { | |
104 this.pendingFontChanges_[script] = {}; | |
105 } | |
106 | |
107 /** | |
108 * Clears all pending font changes. | |
109 */ | |
110 PendingChanges.prototype.clear = function() { | |
111 this.pendingFontChanges_ = {}; | |
112 this.pendingFontSizeChanges_ = {}; | |
113 } | |
114 | |
115 /** | |
116 * Returns true if there are no pending font changes, otherwise, false. | |
117 */ | |
118 PendingChanges.prototype.isEmpty = function() { | |
119 for (var script in this.pendingFontChanges_) { | |
120 for (var genericFamily in this.pendingFontChanges_[script]) { | |
121 if (this.pendingFontChanges_[script][genericFamily] != null) | |
122 return false; | |
123 } | |
124 } | |
125 for (var name in this.pendingFontSizeChanges_) { | |
126 if (this.pendingFontSizeChanges_[name] != null) | |
127 return false; | |
128 } | |
129 return true; | |
130 } | |
OLD | NEW |