Index: chrome/common/extensions/docs/examples/api/fontSettings/popup.js |
diff --git a/chrome/common/extensions/docs/examples/api/fontSettings/popup.js b/chrome/common/extensions/docs/examples/api/fontSettings/popup.js |
deleted file mode 100644 |
index 1741903f7949e94056234f6aeaa7245eab70213a..0000000000000000000000000000000000000000 |
--- a/chrome/common/extensions/docs/examples/api/fontSettings/popup.js |
+++ /dev/null |
@@ -1,249 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// Mapping between font list ids and the generic family setting they |
-// represent. |
-var genericFamilies = [ |
- { fontList: 'standardFontList', name: 'standard' }, |
- { fontList: 'serifFontList', name: 'serif' }, |
- { fontList: 'sansSerifFontList', name: 'sansserif' }, |
- { fontList: 'fixedFontList', name: 'fixed' } |
-]; |
- |
-// Ids of elements to contain the "Lorem ipsum" sample text. |
-var sampleTextDivIds = [ |
- 'standardFontSample', |
- 'serifFontSample', |
- 'sansSerifFontSample', |
- 'fixedFontSample' |
-]; |
- |
-var defaultSampleText = 'Lorem ipsum dolor sit amat.'; |
-var scriptSpecificSampleText = { |
- // "Cyrllic script". |
- 'Cyrl': 'Кириллица', |
- 'Hang': '정 참판 양반댁 규수 큰 교자 타고 혼례 치른 날.', |
- 'Hans': '床前明月光,疑是地上霜。举头望明月,低头思故乡。', |
- 'Hant': '床前明月光,疑是地上霜。舉頭望明月,低頭思故鄉。', |
- 'Jpan': '吾輩は猫である。名前はまだ無い。', |
- // "Khmer language". |
- 'Khmr': '\u1797\u17B6\u179F\u17B6\u1781\u17D2\u1798\u17C2\u179A', |
-}; |
- |
-function getSelectedScript() { |
- var scriptList = document.getElementById('scriptList'); |
- return scriptList.options[scriptList.selectedIndex].value; |
-} |
- |
-function getSelectedFont(fontList) { |
- return fontList.options[fontList.selectedIndex].value; |
-} |
- |
-// Populates the font lists with the list of system fonts from |fonts|. |
-function populateLists(fonts) { |
- for (var i = 0; i < genericFamilies.length; i++) { |
- var list = document.getElementById(genericFamilies[i].fontList); |
- |
- // Add special "(none)" item to indicate fallback to the non-per-script |
- // font setting. The Font Settings API uses the empty string to indicate |
- // fallback. |
- var noneItem = document.createElement('option'); |
- noneItem.value = ''; |
- noneItem.text = '(none)'; |
- list.add(noneItem); |
- |
- for (var j = 0; j < fonts.length; j++) { |
- var item = document.createElement('option'); |
- item.value = fonts[j].fontId; |
- item.text = fonts[j].displayName; |
- list.add(item); |
- } |
- } |
- |
- updateFontListsForScript(); |
-} |
- |
-// Returns a function that updates the font setting for |genericFamily| |
-// to match the selected value in |fontList|. It can be used as an event |
-// handler for selection changes in |fontList|. |
-function getFontChangeHandler(fontList, genericFamily) { |
- return function() { |
- var script = getSelectedScript(); |
- var font = getSelectedFont(fontList); |
- |
- var details = {}; |
- details.genericFamily = genericFamily; |
- details.fontId = font; |
- details.script = script; |
- |
- chrome.fontSettings.setFont(details); |
- }; |
-} |
- |
-// Sets the selected value of |fontList| to |fontId|. |
-function setSelectedFont(fontList, fontId) { |
- var script = getSelectedScript(); |
- var i; |
- for (i = 0; i < fontList.length; i++) { |
- if (fontId == fontList.options[i].value) { |
- fontList.selectedIndex = i; |
- break; |
- } |
- } |
- if (i == fontList.length) { |
- console.warn("font '" + fontId + "' for " + fontList.id + ' for ' + |
- script + ' is not on the system'); |
- } |
-} |
- |
-// Returns a callback function that sets the selected value of |list| to the |
-// font returned from |chrome.fontSettings.getFont|. |
-function getFontHandler(list) { |
- return function(details) { |
- setSelectedFont(list, details.fontId); |
- list.disabled = !isControllableLevel(details.levelOfControl); |
- }; |
-} |
- |
-// Called when the script list selection changes. Sets the selected value of |
-// each font list to the current font setting, and updates the document's lang |
-// so that the samples are shown in the current font setting. |
-function updateFontListsForScript() { |
- var script = getSelectedScript(); |
- |
- for (var i = 0; i < genericFamilies.length; i++) { |
- var list = document.getElementById(genericFamilies[i].fontList); |
- var family = genericFamilies[i].name; |
- |
- var details = {}; |
- details.genericFamily = family; |
- details.script = script; |
- // For font selection it's the script code that matters, not language, so |
- // just use en for lang. |
- document.body.lang = 'en-' + script; |
- |
- chrome.fontSettings.getFont(details, getFontHandler(list)); |
- } |
- |
- if (typeof(scriptSpecificSampleText[script]) != 'undefined') |
- sample = scriptSpecificSampleText[script]; |
- else |
- sample = defaultSampleText; |
- for (var i = 0; i < sampleTextDivIds.length; i++) { |
- document.getElementById(sampleTextDivIds[i]).innerText = sample; |
- } |
-} |
- |
-// Returns a function to be called when the user changes the font size |
-// input element |elem|. The function calls the Font Settings Extension API |
-// function |setter| to commit the change. |
-function getFontSizeChangedFunc(elem, setter) { |
- return function() { |
- var pixelSize = parseInt(elem.value); |
- if (!isNaN(pixelSize)) { |
- setter({ pixelSize: pixelSize }); |
- } |
- } |
-} |
- |
-function isControllableLevel(levelOfControl) { |
- return levelOfControl == 'controllable_by_this_extension' || |
- levelOfControl == 'controlled_by_this_extension'; |
-} |
- |
-// Returns a function to be used as a listener for font size setting changed |
-// events from the Font Settings Extension API. The function updates the |
-// input element |elem| to reflect the change. |
-function getFontSizeChangedOnBrowserFunc(elem) { |
- return function(details) { |
- elem.value = details.pixelSize.toString(); |
- elem.disabled = !isControllableLevel(details.levelOfControl); |
- } |
-} |
- |
-// Maps the text input HTML element with |id| to the extension API accessor |
-// functions |getter| and |setter| for a setting and onChange event |apiEvent| |
-// for the setting. |
-function initFontSizePref(id, getter, setter, apiEvent) { |
- var elem = document.getElementById(id); |
- getter({}, function(details) { |
- elem.value = details.pixelSize.toString(); |
- elem.disabled = !isControllableLevel(details.levelOfControl); |
- }); |
- elem.addEventListener('change', getFontSizeChangedFunc(elem, setter)); |
- apiEvent.addListener(getFontSizeChangedOnBrowserFunc(elem)); |
-} |
- |
-function clearAllSettings() { |
- var scripts = |
- ["Afak", "Arab", "Armi", "Armn", "Avst", "Bali", "Bamu", "Bass", "Batk", |
- "Beng", "Blis", "Bopo", "Brah", "Brai", "Bugi", "Buhd", "Cakm", "Cans", |
- "Cari", "Cham", "Cher", "Cirt", "Copt", "Cprt", "Cyrl", "Cyrs", "Deva", |
- "Dsrt", "Dupl", "Egyd", "Egyh", "Egyp", "Elba", "Ethi", "Geor", "Geok", |
- "Glag", "Goth", "Gran", "Grek", "Gujr", "Guru", "Hang", "Hani", "Hano", |
- "Hans", "Hant", "Hebr", "Hluw", "Hmng", "Hung", "Inds", "Ital", "Java", |
- "Jpan", "Jurc", "Kali", "Khar", "Khmr", "Khoj", "Knda", "Kpel", "Kthi", |
- "Lana", "Laoo", "Latf", "Latg", "Latn", "Lepc", "Limb", "Lina", "Linb", |
- "Lisu", "Loma", "Lyci", "Lydi", "Mand", "Mani", "Maya", "Mend", "Merc", |
- "Mero", "Mlym", "Moon", "Mong", "Mroo", "Mtei", "Mymr", "Narb", "Nbat", |
- "Nkgb", "Nkoo", "Nshu", "Ogam", "Olck", "Orkh", "Orya", "Osma", "Palm", |
- "Perm", "Phag", "Phli", "Phlp", "Phlv", "Phnx", "Plrd", "Prti", "Rjng", |
- "Roro", "Runr", "Samr", "Sara", "Sarb", "Saur", "Sgnw", "Shaw", "Shrd", |
- "Sind", "Sinh", "Sora", "Sund", "Sylo", "Syrc", "Syre", "Syrj", "Syrn", |
- "Tagb", "Takr", "Tale", "Talu", "Taml", "Tang", "Tavt", "Telu", "Teng", |
- "Tfng", "Tglg", "Thaa", "Thai", "Tibt", "Tirh", "Ugar", "Vaii", "Visp", |
- "Wara", "Wole", "Xpeo", "Xsux", "Yiii", "Zmth", "Zsym", "Zyyy"]; |
- var families = |
- ["standard", "sansserif", "serif", "fixed", "cursive", "fantasy"]; |
- for (var i = 0; i < scripts.length; i++) { |
- for (var j = 0; j < families.length; j++) { |
- chrome.fontSettings.clearFont({ |
- script: scripts[i], |
- genericFamily: families[j] |
- }); |
- } |
- } |
- |
- chrome.fontSettings.clearDefaultFixedFontSize(); |
- chrome.fontSettings.clearDefaultFontSize(); |
- chrome.fontSettings.clearMinimumFontSize(); |
-} |
- |
-function init() { |
- scriptList = document.getElementById('scriptList'); |
- scriptList.addEventListener('change', |
- updateFontListsForScript); |
- |
- // Populate the font lists. |
- chrome.fontSettings.getFontList(populateLists); |
- |
- // Add change handlers to the font lists. |
- for (var i = 0; i < genericFamilies.length; i++) { |
- var list = document.getElementById(genericFamilies[i].fontList); |
- var handler = getFontChangeHandler(list, genericFamilies[i].name); |
- list.addEventListener('change', handler); |
- } |
- |
- chrome.fontSettings.onFontChanged.addListener( |
- updateFontListsForScript); |
- |
- initFontSizePref('defaultFontSize', |
- chrome.fontSettings.getDefaultFontSize, |
- chrome.fontSettings.setDefaultFontSize, |
- chrome.fontSettings.onDefaultFontSizeChanged); |
- initFontSizePref( |
- 'defaultFixedFontSize', |
- chrome.fontSettings.getDefaultFixedFontSize, |
- chrome.fontSettings.setDefaultFixedFontSize, |
- chrome.fontSettings.onDefaultFixedFontSizeChanged); |
- initFontSizePref('minFontSize', |
- chrome.fontSettings.getMinimumFontSize, |
- chrome.fontSettings.setMinimumFontSize, |
- chrome.fontSettings.onMinimumFontSizeChanged); |
- |
- var clearButton = document.getElementById('clearButton'); |
- clearButton.addEventListener('click', clearAllSettings); |
-} |
- |
-document.addEventListener('DOMContentLoaded', init); |