OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 3 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
4 * Copyright (C) 2007 Matt Lilek (pewtermoose@gmail.com). | 4 * Copyright (C) 2007 Matt Lilek (pewtermoose@gmail.com). |
5 * Copyright (C) 2009 Joseph Pecoraro | 5 * Copyright (C) 2009 Joseph Pecoraro |
6 * | 6 * |
7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
9 * are met: | 9 * are met: |
10 * | 10 * |
(...skipping 1239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1250 * @return {!Element} | 1250 * @return {!Element} |
1251 */ | 1251 */ |
1252 UI.createLabel = function(title, iconClass) { | 1252 UI.createLabel = function(title, iconClass) { |
1253 var element = createElement('label', 'dt-icon-label'); | 1253 var element = createElement('label', 'dt-icon-label'); |
1254 element.createChild('span').textContent = title; | 1254 element.createChild('span').textContent = title; |
1255 element.type = iconClass; | 1255 element.type = iconClass; |
1256 return element; | 1256 return element; |
1257 }; | 1257 }; |
1258 | 1258 |
1259 /** | 1259 /** |
1260 * @param {string=} title | |
1261 * @param {boolean=} checked | |
1262 * @param {string=} subtitle | |
1263 * @return {!Element} | |
1264 */ | |
1265 UI.createCheckboxLabel = function(title, checked, subtitle) { | |
1266 var element = createElement('label', 'dt-checkbox'); | |
1267 element.checkboxElement.checked = !!checked; | |
1268 if (title !== undefined) { | |
1269 element.textElement = element.shadowRoot.createChild('div', 'dt-checkbox-tex
t'); | |
1270 element.textElement.textContent = title; | |
1271 if (subtitle !== undefined) { | |
1272 element.subtitleElement = element.textElement.createChild('div', 'dt-check
box-subtitle'); | |
1273 element.subtitleElement.textContent = subtitle; | |
1274 } | |
1275 } | |
1276 return element; | |
1277 }; | |
1278 | |
1279 /** | |
1280 * @return {!Element} | 1260 * @return {!Element} |
1281 * @param {number} min | 1261 * @param {number} min |
1282 * @param {number} max | 1262 * @param {number} max |
1283 * @param {number} tabIndex | 1263 * @param {number} tabIndex |
1284 */ | 1264 */ |
1285 UI.createSliderLabel = function(min, max, tabIndex) { | 1265 UI.createSliderLabel = function(min, max, tabIndex) { |
1286 var element = createElement('label', 'dt-slider'); | 1266 var element = createElement('label', 'dt-slider'); |
1287 element.sliderElement.min = min; | 1267 element.sliderElement.min = min; |
1288 element.sliderElement.max = max; | 1268 element.sliderElement.max = max; |
1289 element.sliderElement.step = 1; | 1269 element.sliderElement.step = 1; |
(...skipping 17 matching lines...) Expand all Loading... |
1307 | 1287 |
1308 var themeStyleSheet = UI.themeSupport.themeStyleSheet(cssFile, content); | 1288 var themeStyleSheet = UI.themeSupport.themeStyleSheet(cssFile, content); |
1309 if (themeStyleSheet) { | 1289 if (themeStyleSheet) { |
1310 styleElement = createElement('style'); | 1290 styleElement = createElement('style'); |
1311 styleElement.type = 'text/css'; | 1291 styleElement.type = 'text/css'; |
1312 styleElement.textContent = themeStyleSheet + '\n' + Runtime.resolveSourceURL
(cssFile + '.theme'); | 1292 styleElement.textContent = themeStyleSheet + '\n' + Runtime.resolveSourceURL
(cssFile + '.theme'); |
1313 node.appendChild(styleElement); | 1293 node.appendChild(styleElement); |
1314 } | 1294 } |
1315 }; | 1295 }; |
1316 | 1296 |
| 1297 /** |
| 1298 * @extends {HTMLLabelElement} |
| 1299 */ |
| 1300 UI.CheckboxLabel = class extends HTMLLabelElement { |
| 1301 constructor() { |
| 1302 super(); |
| 1303 /** @type {!DocumentFragment} */ |
| 1304 this._shadowRoot; |
| 1305 /** @type {!HTMLInputElement} */ |
| 1306 this.checkboxElement; |
| 1307 /** @type {!Element} */ |
| 1308 this.textElement; |
| 1309 throw new Error('Checkbox must be created via factory method.'); |
| 1310 } |
| 1311 |
| 1312 /** |
| 1313 * @override |
| 1314 */ |
| 1315 createdCallback() { |
| 1316 UI.CheckboxLabel._lastId = (UI.CheckboxLabel._lastId || 0) + 1; |
| 1317 var id = 'ui-checkbox-label' + UI.CheckboxLabel._lastId; |
| 1318 this._shadowRoot = UI.createShadowRootWithCoreStyles(this, 'ui/checkboxTextL
abel.css'); |
| 1319 this.checkboxElement = /** @type {!HTMLInputElement} */ (this._shadowRoot.cr
eateChild('input')); |
| 1320 this.checkboxElement.type = 'checkbox'; |
| 1321 this.checkboxElement.setAttribute('id', id); |
| 1322 this.textElement = this._shadowRoot.createChild('label', 'dt-checkbox-text')
; |
| 1323 this.textElement.setAttribute('for', id); |
| 1324 this._shadowRoot.createChild('content'); |
| 1325 } |
| 1326 |
| 1327 /** |
| 1328 * @param {string=} title |
| 1329 * @param {boolean=} checked |
| 1330 * @param {string=} subtitle |
| 1331 * @return {!UI.CheckboxLabel} |
| 1332 */ |
| 1333 static create(title, checked, subtitle) { |
| 1334 if (!UI.CheckboxLabel._constructor) |
| 1335 UI.CheckboxLabel._constructor = UI.registerCustomElement('label', 'dt-chec
kbox', UI.CheckboxLabel.prototype); |
| 1336 var element = /** @type {!UI.CheckboxLabel} */ (new UI.CheckboxLabel._constr
uctor()); |
| 1337 element.checkboxElement.checked = !!checked; |
| 1338 if (title !== undefined) { |
| 1339 element.textElement.textContent = title; |
| 1340 if (subtitle !== undefined) |
| 1341 element.textElement.createChild('div', 'dt-checkbox-subtitle').textConte
nt = subtitle; |
| 1342 } |
| 1343 return element; |
| 1344 } |
| 1345 |
| 1346 /** |
| 1347 * @param {string} color |
| 1348 * @this {Element} |
| 1349 */ |
| 1350 set backgroundColor(color) { |
| 1351 this.checkboxElement.classList.add('dt-checkbox-themed'); |
| 1352 this.checkboxElement.style.backgroundColor = color; |
| 1353 } |
| 1354 |
| 1355 /** |
| 1356 * @param {string} color |
| 1357 * @this {Element} |
| 1358 */ |
| 1359 set checkColor(color) { |
| 1360 this.checkboxElement.classList.add('dt-checkbox-themed'); |
| 1361 var stylesheet = createElement('style'); |
| 1362 stylesheet.textContent = 'input.dt-checkbox-themed:checked:after { backgroun
d-color: ' + color + '}'; |
| 1363 this._shadowRoot.appendChild(stylesheet); |
| 1364 } |
| 1365 |
| 1366 /** |
| 1367 * @param {string} color |
| 1368 * @this {Element} |
| 1369 */ |
| 1370 set borderColor(color) { |
| 1371 this.checkboxElement.classList.add('dt-checkbox-themed'); |
| 1372 this.checkboxElement.style.borderColor = color; |
| 1373 } |
| 1374 |
| 1375 /** |
| 1376 * @param {boolean} focus |
| 1377 * @this {Element} |
| 1378 */ |
| 1379 set visualizeFocus(focus) { |
| 1380 this.checkboxElement.classList.toggle('dt-checkbox-visualize-focus', focus); |
| 1381 } |
| 1382 }; |
| 1383 |
1317 (function() { | 1384 (function() { |
1318 UI.registerCustomElement('button', 'text-button', { | 1385 UI.registerCustomElement('button', 'text-button', { |
1319 /** | 1386 /** |
1320 * @this {Element} | 1387 * @this {Element} |
1321 */ | 1388 */ |
1322 createdCallback: function() { | 1389 createdCallback: function() { |
1323 this.type = 'button'; | 1390 this.type = 'button'; |
1324 var root = UI.createShadowRootWithCoreStyles(this, 'ui/textButton.css'); | 1391 var root = UI.createShadowRootWithCoreStyles(this, 'ui/textButton.css'); |
1325 root.createChild('content'); | 1392 root.createChild('content'); |
1326 }, | 1393 }, |
(...skipping 22 matching lines...) Expand all Loading... |
1349 * @suppressReceiverCheck | 1416 * @suppressReceiverCheck |
1350 * @this {Element} | 1417 * @this {Element} |
1351 */ | 1418 */ |
1352 function radioClickHandler(event) { | 1419 function radioClickHandler(event) { |
1353 if (this.radioElement.checked || this.radioElement.disabled) | 1420 if (this.radioElement.checked || this.radioElement.disabled) |
1354 return; | 1421 return; |
1355 this.radioElement.checked = true; | 1422 this.radioElement.checked = true; |
1356 this.radioElement.dispatchEvent(new Event('change')); | 1423 this.radioElement.dispatchEvent(new Event('change')); |
1357 } | 1424 } |
1358 | 1425 |
1359 UI.registerCustomElement('label', 'dt-checkbox', { | |
1360 /** | |
1361 * @this {Element} | |
1362 */ | |
1363 createdCallback: function() { | |
1364 this._root = UI.createShadowRootWithCoreStyles(this, 'ui/checkboxTextLabel
.css'); | |
1365 var checkboxElement = createElementWithClass('input', 'dt-checkbox-button'
); | |
1366 checkboxElement.type = 'checkbox'; | |
1367 this._root.appendChild(checkboxElement); | |
1368 this.checkboxElement = checkboxElement; | |
1369 | |
1370 this.addEventListener('click', toggleCheckbox.bind(this)); | |
1371 | |
1372 /** | |
1373 * @param {!Event} event | |
1374 * @this {Node} | |
1375 */ | |
1376 function toggleCheckbox(event) { | |
1377 var deepTarget = event.deepElementFromPoint(); | |
1378 if (deepTarget !== checkboxElement && deepTarget !== this) { | |
1379 event.consume(); | |
1380 checkboxElement.click(); | |
1381 } | |
1382 } | |
1383 | |
1384 this._root.createChild('content'); | |
1385 }, | |
1386 | |
1387 /** | |
1388 * @param {string} color | |
1389 * @this {Element} | |
1390 */ | |
1391 set backgroundColor(color) { | |
1392 this.checkboxElement.classList.add('dt-checkbox-themed'); | |
1393 this.checkboxElement.style.backgroundColor = color; | |
1394 }, | |
1395 | |
1396 /** | |
1397 * @param {string} color | |
1398 * @this {Element} | |
1399 */ | |
1400 set checkColor(color) { | |
1401 this.checkboxElement.classList.add('dt-checkbox-themed'); | |
1402 var stylesheet = createElement('style'); | |
1403 stylesheet.textContent = 'input.dt-checkbox-themed:checked:after { backgro
und-color: ' + color + '}'; | |
1404 this._root.appendChild(stylesheet); | |
1405 }, | |
1406 | |
1407 /** | |
1408 * @param {string} color | |
1409 * @this {Element} | |
1410 */ | |
1411 set borderColor(color) { | |
1412 this.checkboxElement.classList.add('dt-checkbox-themed'); | |
1413 this.checkboxElement.style.borderColor = color; | |
1414 }, | |
1415 | |
1416 /** | |
1417 * @param {boolean} focus | |
1418 * @this {Element} | |
1419 */ | |
1420 set visualizeFocus(focus) { | |
1421 this.checkboxElement.classList.toggle('dt-checkbox-visualize-focus', focus
); | |
1422 }, | |
1423 | |
1424 __proto__: HTMLLabelElement.prototype | |
1425 }); | |
1426 | |
1427 UI.registerCustomElement('label', 'dt-icon-label', { | 1426 UI.registerCustomElement('label', 'dt-icon-label', { |
1428 /** | 1427 /** |
1429 * @this {Element} | 1428 * @this {Element} |
1430 */ | 1429 */ |
1431 createdCallback: function() { | 1430 createdCallback: function() { |
1432 var root = UI.createShadowRootWithCoreStyles(this); | 1431 var root = UI.createShadowRootWithCoreStyles(this); |
1433 this._iconElement = UI.Icon.create(); | 1432 this._iconElement = UI.Icon.create(); |
1434 this._iconElement.style.setProperty('margin-right', '4px'); | 1433 this._iconElement.style.setProperty('margin-right', '4px'); |
1435 root.appendChild(this._iconElement); | 1434 root.appendChild(this._iconElement); |
1436 root.createChild('content'); | 1435 root.createChild('content'); |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2064 */ | 2063 */ |
2065 constructor(message, okCallback, cancelCallback) { | 2064 constructor(message, okCallback, cancelCallback) { |
2066 super(true); | 2065 super(true); |
2067 this.registerRequiredCSS('ui/confirmDialog.css'); | 2066 this.registerRequiredCSS('ui/confirmDialog.css'); |
2068 this.contentElement.createChild('div', 'message').createChild('span').textCo
ntent = message; | 2067 this.contentElement.createChild('div', 'message').createChild('span').textCo
ntent = message; |
2069 var buttonsBar = this.contentElement.createChild('div', 'button'); | 2068 var buttonsBar = this.contentElement.createChild('div', 'button'); |
2070 buttonsBar.appendChild(UI.createTextButton(Common.UIString('Ok'), okCallback
)); | 2069 buttonsBar.appendChild(UI.createTextButton(Common.UIString('Ok'), okCallback
)); |
2071 buttonsBar.appendChild(UI.createTextButton(Common.UIString('Cancel'), cancel
Callback)); | 2070 buttonsBar.appendChild(UI.createTextButton(Common.UIString('Cancel'), cancel
Callback)); |
2072 } | 2071 } |
2073 }; | 2072 }; |
OLD | NEW |