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

Side by Side Diff: chrome/browser/resources/print_preview/print_preview.js

Issue 8207005: [print preview] Improve appearance of select control separators. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: add print_preview_cloud.js. Created 9 years, 2 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/resources/print_preview/print_preview_cloud.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // require: cr/ui/print_preview_cloud.js 5 // require: cr/ui/print_preview_cloud.js
6 6
7 var localStrings = new LocalStrings(); 7 var localStrings = new LocalStrings();
8 8
9 // If useCloudPrint is true we attempt to connect to cloud print 9 // If useCloudPrint is true we attempt to connect to cloud print
10 // and populate the list of printers with cloud print printers. 10 // and populate the list of printers with cloud print printers.
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 } 529 }
530 530
531 /** 531 /**
532 * Set the default printer. If there is one, generate a print preview. 532 * Set the default printer. If there is one, generate a print preview.
533 * @param {string} printer Name of the default printer. Empty if none. 533 * @param {string} printer Name of the default printer. Empty if none.
534 * @param {string} cloudPrintData Cloud print related data to restore if 534 * @param {string} cloudPrintData Cloud print related data to restore if
535 * the default printer is a cloud printer. 535 * the default printer is a cloud printer.
536 */ 536 */
537 function setDefaultPrinter(printer_name, cloudPrintData) { 537 function setDefaultPrinter(printer_name, cloudPrintData) {
538 // Add a placeholder value so the printer list looks valid. 538 // Add a placeholder value so the printer list looks valid.
539 addDestinationListOption('', '', true, true, true); 539 addDestinationListOption('', '', true, true);
540 if (printer_name) { 540 if (printer_name) {
541 defaultOrLastUsedPrinterName = printer_name; 541 defaultOrLastUsedPrinterName = printer_name;
542 if (cloudPrintData) { 542 if (cloudPrintData) {
543 cloudprint.setDefaultPrinter(printer_name, 543 cloudprint.setDefaultPrinter(printer_name,
544 cloudPrintData, 544 cloudPrintData,
545 addDestinationListOptionAtPosition, 545 addDestinationListOptionAtPosition,
546 doUpdateCloudPrinterCapabilities); 546 doUpdateCloudPrinterCapabilities);
547 } else { 547 } else {
548 $('printer-list')[0].value = defaultOrLastUsedPrinterName; 548 $('printer-list')[0].value = defaultOrLastUsedPrinterName;
549 updateControlsWithSelectedPrinterCapabilities(); 549 updateControlsWithSelectedPrinterCapabilities();
550 } 550 }
551 } 551 }
552 chrome.send('getPrinters'); 552 chrome.send('getPrinters');
553 } 553 }
554 554
555 /** 555 /**
556 * Fill the printer list drop down. 556 * Fill the printer list drop down.
557 * Called from PrintPreviewHandler::SendPrinterList(). 557 * Called from PrintPreviewHandler::SendPrinterList().
558 * @param {Array} printers Array of printer info objects. 558 * @param {Array} printers Array of printer info objects.
559 */ 559 */
560 function setPrinters(printers) { 560 function setPrinters(printers) {
561 var printerList = $('printer-list'); 561 var printerList = $('printer-list');
562 // Remove empty entry added by setDefaultPrinter. 562 // Remove empty entry added by setDefaultPrinter.
563 if (printerList[0] && printerList[0].textContent == '') 563 if (printerList[0] && printerList[0].textContent == '')
564 printerList.remove(0); 564 printerList.remove(0);
565 for (var i = 0; i < printers.length; ++i) { 565 for (var i = 0; i < printers.length; ++i) {
566 var isDefault = (printers[i].deviceName == defaultOrLastUsedPrinterName); 566 var isDefault = (printers[i].deviceName == defaultOrLastUsedPrinterName);
567 addDestinationListOption(printers[i].printerName, printers[i].deviceName, 567 addDestinationListOption(printers[i].printerName, printers[i].deviceName,
568 isDefault, false, false); 568 isDefault, false);
569 } 569 }
570 570
571 if (printers.length != 0) 571 if (printers.length != 0)
572 addDestinationListOption('', '', false, true, true); 572 addDestinationListSeparator();
573 573
574 // Adding option for saving PDF to disk. 574 // Adding option for saving PDF to disk.
575 addDestinationListOption(localStrings.getString('printToPDF'), 575 addDestinationListOption(localStrings.getString('printToPDF'),
576 PRINT_TO_PDF, 576 PRINT_TO_PDF,
577 defaultOrLastUsedPrinterName == PRINT_TO_PDF, 577 defaultOrLastUsedPrinterName == PRINT_TO_PDF,
578 false,
579 false); 578 false);
580 addDestinationListOption('', '', false, true, true); 579 addDestinationListSeparator();
581 if (useCloudPrint) { 580 if (useCloudPrint) {
582 addDestinationListOption(localStrings.getString('printWithCloudPrint'), 581 addDestinationListOption(localStrings.getString('printWithCloudPrint'),
583 PRINT_WITH_CLOUD_PRINT, 582 PRINT_WITH_CLOUD_PRINT,
584 false, 583 false,
585 false,
586 false); 584 false);
587 addDestinationListOption('', '', false, true, true); 585 addDestinationListSeparator();
588 } 586 }
589 // Add options to manage printers. 587 // Add options to manage printers.
590 if (!cr.isChromeOS) { 588 if (!cr.isChromeOS) {
591 addDestinationListOption(localStrings.getString('managePrinters'), 589 addDestinationListOption(localStrings.getString('managePrinters'),
592 MANAGE_LOCAL_PRINTERS, false, false, false); 590 MANAGE_LOCAL_PRINTERS, false, false);
593 } else if (useCloudPrint) { 591 } else if (useCloudPrint) {
594 // Fetch recent printers. 592 // Fetch recent printers.
595 cloudprint.fetchPrinters(addDestinationListOptionAtPosition, false); 593 cloudprint.fetchPrinters(addDestinationListOptionAtPosition, false);
596 // Fetch the full printer list. 594 // Fetch the full printer list.
597 cloudprint.fetchPrinters(addDestinationListOptionAtPosition, true); 595 cloudprint.fetchPrinters(addDestinationListOptionAtPosition, true);
598 addDestinationListOption(localStrings.getString('managePrinters'), 596 addDestinationListOption(localStrings.getString('managePrinters'),
599 MANAGE_CLOUD_PRINTERS, false, false, false); 597 MANAGE_CLOUD_PRINTERS, false, false);
600 } 598 }
601 599
602 printerList.disabled = false; 600 printerList.disabled = false;
603 601
604 if (!hasRequestedPreview()) 602 if (!hasRequestedPreview())
605 updateControlsWithSelectedPrinterCapabilities(); 603 updateControlsWithSelectedPrinterCapabilities();
606 } 604 }
607 605
608 /** 606 /**
609 * Creates an option that can be added to the printer destination list. 607 * Creates an option that can be added to the printer destination list.
610 * @param {string} optionText specifies the option text content. 608 * @param {string} optionText specifies the option text content.
611 * @param {string} optionValue specifies the option value. 609 * @param {string} optionValue specifies the option value.
612 * @param {boolean} isDefault is true if the option needs to be selected. 610 * @param {boolean} isDefault is true if the option needs to be selected.
613 * @param {boolean} isDisabled is true if the option needs to be disabled. 611 * @param {boolean} isDisabled is true if the option needs to be disabled.
614 * @param {boolean} isSeparator is true if the option is a visual separator and
615 * needs to be disabled.
616 * @return {Object} The created option. 612 * @return {Object} The created option.
617 */ 613 */
618 function createDestinationListOption(optionText, optionValue, isDefault, 614 function createDestinationListOption(optionText, optionValue, isDefault,
619 isDisabled, isSeparator) { 615 isDisabled) {
620 var option = document.createElement('option'); 616 var option = document.createElement('option');
621 option.textContent = optionText; 617 option.textContent = optionText;
622 option.value = optionValue; 618 option.value = optionValue;
623 option.selected = isDefault; 619 option.selected = isDefault;
624 option.disabled = isSeparator || isDisabled; 620 option.disabled = isDisabled;
625 // Adding attribute for improved accessibility.
626 if (isSeparator)
627 option.setAttribute("role", "separator");
628 return option; 621 return option;
629 } 622 }
630 623
631 /** 624 /**
632 * Adds an option to the printer destination list. 625 * Adds an option to the printer destination list.
633 * @param {string} optionText specifies the option text content. 626 * @param {string} optionText specifies the option text content.
634 * @param {string} optionValue specifies the option value. 627 * @param {string} optionValue specifies the option value.
635 * @param {boolean} isDefault is true if the option needs to be selected. 628 * @param {boolean} isDefault is true if the option needs to be selected.
636 * @param {boolean} isDisabled is true if the option needs to be disabled. 629 * @param {boolean} isDisabled is true if the option needs to be disabled.
637 * @return {Object} The created option. 630 * @return {Object} The created option.
638 */ 631 */
639 function addDestinationListOption(optionText, optionValue, isDefault, 632 function addDestinationListOption(optionText, optionValue, isDefault,
640 isDisabled, isSeparator) { 633 isDisabled) {
641 var option = createDestinationListOption(optionText, 634 var option = createDestinationListOption(optionText,
642 optionValue, 635 optionValue,
643 isDefault, 636 isDefault,
644 isDisabled, 637 isDisabled);
645 isSeparator);
646 $('printer-list').add(option); 638 $('printer-list').add(option);
647 return option; 639 return option;
648 } 640 }
649 641
650 /** 642 /**
651 * Adds an option to the printer destination list at a specified position. 643 * Adds an option to the printer destination list at a specified position.
652 * @param {number} position The index in the printer-list wher the option 644 * @param {number} position The index in the printer-list wher the option
653 should be created. 645 should be created.
654 * @param {string} optionText specifies the option text content. 646 * @param {string} optionText specifies the option text content.
655 * @param {string} optionValue specifies the option value. 647 * @param {string} optionValue specifies the option value.
656 * @param {boolean} isDefault is true if the option needs to be selected. 648 * @param {boolean} isDefault is true if the option needs to be selected.
657 * @param {boolean} isDisabled is true if the option needs to be disabled. 649 * @param {boolean} isDisabled is true if the option needs to be disabled.
658 * @return {Object} The created option. 650 * @return {Object} The created option.
659 */ 651 */
660 function addDestinationListOptionAtPosition(position, 652 function addDestinationListOptionAtPosition(position,
661 optionText, 653 optionText,
662 optionValue, 654 optionValue,
663 isDefault, 655 isDefault,
664 isDisabled, 656 isDisabled) {
665 isSeparator) {
666 var option = createDestinationListOption(optionText, 657 var option = createDestinationListOption(optionText,
667 optionValue, 658 optionValue,
668 isDefault, 659 isDefault,
669 isDisabled, 660 isDisabled);
670 isSeparator);
671 var printerList = $('printer-list'); 661 var printerList = $('printer-list');
672 var before = printerList[position]; 662 var before = printerList[position];
673 printerList.add(option, before); 663 printerList.add(option, before);
674 return option; 664 return option;
675 } 665 }
666
667 /**
668 * Adds a separator to the printer destination list.
669 */
670 function addDestinationListSeparator() {
671 $('printer-list').add(document.createElement('hr'));
672 }
673
676 /** 674 /**
677 * Sets the color mode for the PDF plugin. 675 * Sets the color mode for the PDF plugin.
678 * Called from PrintPreviewHandler::ProcessColorSetting(). 676 * Called from PrintPreviewHandler::ProcessColorSetting().
679 * @param {boolean} color is true if the PDF plugin should display in color. 677 * @param {boolean} color is true if the PDF plugin should display in color.
680 */ 678 */
681 function setColor(color) { 679 function setColor(color) {
682 var pdfViewer = $('pdf-viewer'); 680 var pdfViewer = $('pdf-viewer');
683 if (!pdfViewer) { 681 if (!pdfViewer) {
684 return; 682 return;
685 } 683 }
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 <include src="print_preview_animations.js"/> 1026 <include src="print_preview_animations.js"/>
1029 <include src="print_preview_cloud.js"/> 1027 <include src="print_preview_cloud.js"/>
1030 <include src="print_preview_utils.js"/> 1028 <include src="print_preview_utils.js"/>
1031 <include src="print_header.js"/> 1029 <include src="print_header.js"/>
1032 <include src="page_settings.js"/> 1030 <include src="page_settings.js"/>
1033 <include src="copies_settings.js"/> 1031 <include src="copies_settings.js"/>
1034 <include src="header_footer_settings.js"/> 1032 <include src="header_footer_settings.js"/>
1035 <include src="layout_settings.js"/> 1033 <include src="layout_settings.js"/>
1036 <include src="color_settings.js"/> 1034 <include src="color_settings.js"/>
1037 <include src="margin_settings.js"/> 1035 <include src="margin_settings.js"/>
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/print_preview/print_preview_cloud.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698