OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 (function(exports) { | 4 (function(exports) { |
5 /** | 5 /** |
6 * Alignment options for a keyset. | 6 * Alignment options for a keyset. |
7 * @param {Object=} opt_keyset The keyset to calculate the dimensions for. | 7 * @param {Object=} opt_keyset The keyset to calculate the dimensions for. |
8 * Defaults to the current active keyset. | 8 * Defaults to the current active keyset. |
9 */ | 9 */ |
10 var AlignmentOptions = function(opt_keyset) { | 10 var AlignmentOptions = function(opt_keyset) { |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 rightEdge + params.pitchX,//xOffset. | 414 rightEdge + params.pitchX,//xOffset. |
415 rightWidth, | 415 rightWidth, |
416 keyHeight, | 416 keyHeight, |
417 yOffset); | 417 yOffset); |
418 } | 418 } |
419 | 419 |
420 /** | 420 /** |
421 * Realigns a given row based on the parameters provided. | 421 * Realigns a given row based on the parameters provided. |
422 * @param {!kb-row} row The row to realign. | 422 * @param {!kb-row} row The row to realign. |
423 * @param {!AlignmentOptions} params The parameters used to align the keyset. | 423 * @param {!AlignmentOptions} params The parameters used to align the keyset. |
424 * @param {number} The height of the keys. | 424 * @param {number} keyHeight The height of the keys. |
425 * @param {number} heightOffset The offset caused by rows above it. | 425 * @param {number} heightOffset The offset caused by rows above it. |
426 */ | 426 */ |
427 function realignRow(row, params, keyHeight, heightOffset) { | 427 function realignRow(row, params, keyHeight, heightOffset) { |
428 var all = row.children; | 428 var all = row.children; |
429 var nStretch = 0; | 429 var nStretch = 0; |
430 var stretchWeightSum = 0; | 430 var stretchWeightSum = 0; |
431 var allSum = 0; | 431 var allSum = 0; |
432 // Keeps track of where to distribute pixels caused by round off errors. | 432 // Keeps track of where to distribute pixels caused by round off errors. |
433 var deltaWidth = []; | 433 var deltaWidth = []; |
434 for (var i = 0; i < all.length; i++) { | 434 for (var i = 0; i < all.length; i++) { |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 var layout = keyboard.layout; | 529 var layout = keyboard.layout; |
530 var keysets = | 530 var keysets = |
531 keyboard.querySelectorAll('kb-keyset[id^=' + layout + ']').array(); | 531 keyboard.querySelectorAll('kb-keyset[id^=' + layout + ']').array(); |
532 for (var i = 0; i<keysets.length ; i++) { | 532 for (var i = 0; i<keysets.length ; i++) { |
533 realignKeyset(keysets[i], params); | 533 realignKeyset(keysets[i], params); |
534 } | 534 } |
535 keyboard.stale = false; | 535 keyboard.stale = false; |
536 exports.recordKeysets(); | 536 exports.recordKeysets(); |
537 } | 537 } |
538 | 538 |
539 /* | 539 /** |
540 * Realigns a given keyset. | 540 * Realigns a given keyset. |
541 * @param {Object} keyset The keyset to realign. | 541 * @param {Object} keyset The keyset to realign. |
542 * @param {!AlignmentOptions} params The parameters used to align the keyset. | 542 * @param {!AlignmentOptions} params The parameters used to align the keyset. |
543 */ | 543 */ |
544 function realignKeyset(keyset, params) { | 544 function realignKeyset(keyset, params) { |
545 var rows = keyset.querySelectorAll('kb-row').array(); | 545 var rows = keyset.querySelectorAll('kb-row').array(); |
546 keyset.style.fontSize = (params.availableHeight / | 546 keyset.style.fontSize = (params.availableHeight / |
547 FONT_SIZE_RATIO / rows.length) + 'px'; | 547 FONT_SIZE_RATIO / rows.length) + 'px'; |
548 var heightOffset = 0; | 548 var heightOffset = 0; |
549 for (var i = 0; i < rows.length; i++) { | 549 for (var i = 0; i < rows.length; i++) { |
550 var row = rows[i]; | 550 var row = rows[i]; |
551 var rowHeight = | 551 var rowHeight = |
552 Math.floor(params.keyHeight * (row.weight / DEFAULT_KEY_WEIGHT)); | 552 Math.floor(params.keyHeight * (row.weight / DEFAULT_KEY_WEIGHT)); |
553 if (row.querySelector('.space') && (i > 1)) { | 553 if (row.querySelector('.space') && (i > 1)) { |
554 realignSpacebarRow(row, rows[i-1], params, rowHeight, heightOffset) | 554 realignSpacebarRow(row, rows[i-1], params, rowHeight, heightOffset) |
555 } else { | 555 } else { |
556 realignRow(row, params, rowHeight, heightOffset); | 556 realignRow(row, params, rowHeight, heightOffset); |
557 } | 557 } |
558 heightOffset += (rowHeight + params.pitchY); | 558 heightOffset += (rowHeight + params.pitchY); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
627 addEventListener('touchend', function(e) { e.preventDefault() }); | 627 addEventListener('touchend', function(e) { e.preventDefault() }); |
628 addEventListener('touchmove', function(e) { e.preventDefault() }); | 628 addEventListener('touchmove', function(e) { e.preventDefault() }); |
629 addEventListener('polymer-ready', function(e) { | 629 addEventListener('polymer-ready', function(e) { |
630 flattenKeysets(); | 630 flattenKeysets(); |
631 resolveAudio(); | 631 resolveAudio(); |
632 }); | 632 }); |
633 addEventListener('stateChange', function(e) { | 633 addEventListener('stateChange', function(e) { |
634 if (e.detail.value == $('keyboard').activeKeysetId) | 634 if (e.detail.value == $('keyboard').activeKeysetId) |
635 realignAll(); | 635 realignAll(); |
636 }) | 636 }) |
OLD | NEW |