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

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

Issue 7348010: Added Header and Footer support using Skia (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Separate CL for struct change. Changes as per review comments. Created 9 years, 5 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
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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 showLoadingAnimation(); 105 showLoadingAnimation();
106 chrome.send('getDefaultPrinter'); 106 chrome.send('getDefaultPrinter');
107 } 107 }
108 108
109 /** 109 /**
110 * Adds event listeners to the settings controls. 110 * Adds event listeners to the settings controls.
111 */ 111 */
112 function addEventListeners() { 112 function addEventListeners() {
113 // Controls that require preview rendering. 113 // Controls that require preview rendering.
114 $('printer-list').onchange = updateControlsWithSelectedPrinterCapabilities; 114 $('printer-list').onchange = updateControlsWithSelectedPrinterCapabilities;
115 $('header-footer').onclick = onHeaderFooterChanged;
115 116
116 // Controls that do not require preview rendering. 117 // Controls that do not require preview rendering.
117 $('color').onclick = function() { setColor(true); }; 118 $('color').onclick = function() { setColor(true); };
118 $('bw').onclick = function() { setColor(false); }; 119 $('bw').onclick = function() { setColor(false); };
119 } 120 }
120 121
121 /** 122 /**
122 * Removes event listeners from the settings controls. 123 * Removes event listeners from the settings controls.
123 */ 124 */
124 function removeEventListeners() { 125 function removeEventListeners() {
125 if (pageSettings) 126 if (pageSettings)
126 clearTimeout(pageSettings.timerId_); 127 clearTimeout(pageSettings.timerId_);
127 128
128 // Controls that require preview rendering 129 // Controls that require preview rendering
129 $('printer-list').onchange = null; 130 $('printer-list').onchange = null;
131 $('header-footer').onclick = null;
130 132
131 // Controls that don't require preview rendering. 133 // Controls that don't require preview rendering.
132 $('color').onclick = null; 134 $('color').onclick = null;
133 $('bw').onclick = null; 135 $('bw').onclick = null;
134 } 136 }
135 137
136 /** 138 /**
137 * Disables the input elements in the sidebar. 139 * Disables the input elements in the sidebar.
138 */ 140 */
139 function disableInputElementsInSidebar() { 141 function disableInputElementsInSidebar() {
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 * 316 *
315 * @return {boolean} true if settings are valid, false if not. 317 * @return {boolean} true if settings are valid, false if not.
316 */ 318 */
317 function areSettingsValid() { 319 function areSettingsValid() {
318 return pageSettings.isPageSelectionValid() && 320 return pageSettings.isPageSelectionValid() &&
319 (copiesSettings.isValid() || 321 (copiesSettings.isValid() ||
320 getSelectedPrinterName() == PRINT_TO_PDF); 322 getSelectedPrinterName() == PRINT_TO_PDF);
321 } 323 }
322 324
323 /** 325 /**
326 * Checks whether the Headers and Footers checkbox is checked or not.
327 *
328 * @return {boolean} true if Headers and Footers are checked.
329 */
330 function hasHeaderFooter() {
331 return $('header-footer').checked;
332 }
333
334 /**
324 * Creates an object based on the values in the printer settings. 335 * Creates an object based on the values in the printer settings.
325 * 336 *
326 * @return {Object} Object containing print job settings. 337 * @return {Object} Object containing print job settings.
327 */ 338 */
328 function getSettings() { 339 function getSettings() {
329 var deviceName = getSelectedPrinterName(); 340 var deviceName = getSelectedPrinterName();
330 var printToPDF = (deviceName == PRINT_TO_PDF); 341 var printToPDF = (deviceName == PRINT_TO_PDF);
331 342
332 var settings = 343 var settings =
333 {'deviceName': deviceName, 344 {'deviceName': deviceName,
334 'pageRange': pageSettings.selectedPageRanges, 345 'pageRange': pageSettings.selectedPageRanges,
335 'printAll': pageSettings.allPagesRadioButton.checked, 346 'printAll': pageSettings.allPagesRadioButton.checked,
336 'duplex': copiesSettings.duplexMode, 347 'duplex': copiesSettings.duplexMode,
337 'copies': copiesSettings.numberOfCopies, 348 'copies': copiesSettings.numberOfCopies,
338 'collate': copiesSettings.isCollated(), 349 'collate': copiesSettings.isCollated(),
339 'landscape': layoutSettings.isLandscape(), 350 'landscape': layoutSettings.isLandscape(),
340 'color': isColor(), 351 'color': isColor(),
341 'printToPDF': printToPDF, 352 'printToPDF': printToPDF,
353 'headerFooter': hasHeaderFooter(),
342 'requestID': 0}; 354 'requestID': 0};
343 355
344 var printerList = $('printer-list'); 356 var printerList = $('printer-list');
345 var selectedPrinter = printerList.selectedIndex; 357 var selectedPrinter = printerList.selectedIndex;
346 if (cloudprint.isCloudPrint(printerList.options[selectedPrinter])) { 358 if (cloudprint.isCloudPrint(printerList.options[selectedPrinter])) {
347 settings['cloudPrintID'] = 359 settings['cloudPrintID'] =
348 printerList.options[selectedPrinter].value; 360 printerList.options[selectedPrinter].value;
349 } 361 }
350 return settings; 362 return settings;
351 } 363 }
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 } 799 }
788 800
789 /** 801 /**
790 * Called when the PDF plugin loads its document. 802 * Called when the PDF plugin loads its document.
791 */ 803 */
792 function onPDFLoad() { 804 function onPDFLoad() {
793 $('pdf-viewer').fitToHeight(); 805 $('pdf-viewer').fitToHeight();
794 setColor($('color').checked); 806 setColor($('color').checked);
795 hideLoadingAnimation(); 807 hideLoadingAnimation();
796 808
809 if (!previewModifiable) {
dpapad 2011/07/25 15:40:01 Nit: No need for {}.
Aayush Kumar 2011/07/25 18:37:23 Done.
810 fadeOutElement($('options-option'));
811 }
797 cr.dispatchSimpleEvent(document, 'PDFLoaded'); 812 cr.dispatchSimpleEvent(document, 'PDFLoaded');
798 } 813 }
799 814
800 /** 815 /**
801 * Update the page count and check the page range. 816 * Update the page count and check the page range.
802 * Called from PrintPreviewUI::OnDidGetPreviewPageCount(). 817 * Called from PrintPreviewUI::OnDidGetPreviewPageCount().
803 * @param {number} pageCount The number of pages. 818 * @param {number} pageCount The number of pages.
804 */ 819 */
805 function onDidGetPreviewPageCount(pageCount) { 820 function onDidGetPreviewPageCount(pageCount) {
806 pageSettings.updateState(pageCount); 821 pageSettings.updateState(pageCount);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 tempPrintSettings.save(); 875 tempPrintSettings.save();
861 876
862 if (printSettings.deviceName != tempPrintSettings.deviceName) { 877 if (printSettings.deviceName != tempPrintSettings.deviceName) {
863 updateControlsWithSelectedPrinterCapabilities(); 878 updateControlsWithSelectedPrinterCapabilities();
864 return true; 879 return true;
865 } 880 }
866 if (printSettings.isLandscape != tempPrintSettings.isLandscape) { 881 if (printSettings.isLandscape != tempPrintSettings.isLandscape) {
867 setDefaultValuesAndRegeneratePreview(); 882 setDefaultValuesAndRegeneratePreview();
868 return true; 883 return true;
869 } 884 }
885 if (printSettings.hasHeaderFooter != tempPrintSettings.hasHeaderFooter) {
886 requestPrintPreview();
887 return true;
888 }
870 if (pageSettings.requestPrintPreviewIfNeeded()) 889 if (pageSettings.requestPrintPreviewIfNeeded())
871 return true; 890 return true;
872 891
873 return false; 892 return false;
874 } 893 }
875 894
876 /** 895 /**
877 * Create the PDF plugin or reload the existing one. 896 * Create the PDF plugin or reload the existing one.
878 * @param {string} previewUid Preview unique identifier. 897 * @param {string} previewUid Preview unique identifier.
879 */ 898 */
(...skipping 28 matching lines...) Expand all
908 function checkCompatiblePluginExists() { 927 function checkCompatiblePluginExists() {
909 var dummyPlugin = $('dummy-viewer') 928 var dummyPlugin = $('dummy-viewer')
910 return (dummyPlugin.onload && 929 return (dummyPlugin.onload &&
911 dummyPlugin.goToPage && 930 dummyPlugin.goToPage &&
912 dummyPlugin.removePrintButton); 931 dummyPlugin.removePrintButton);
913 } 932 }
914 933
915 window.addEventListener('DOMContentLoaded', onLoad); 934 window.addEventListener('DOMContentLoaded', onLoad);
916 935
917 /** 936 /**
937 * When the user selects or de-selects the headers and footers option then we
dpapad 2011/07/25 15:40:01 Nit: Don't use "we"n in comments. When the user s
Aayush Kumar 2011/07/25 18:37:23 Done.
938 * regenerate the preview pdf.
939 */
940 function onHeaderFooterChanged() {
941 requestPrintPreview();
942 }
943
944 /**
918 * Sets the default values and sends a request to regenerate preview data. 945 * Sets the default values and sends a request to regenerate preview data.
919 */ 946 */
920 function setDefaultValuesAndRegeneratePreview() { 947 function setDefaultValuesAndRegeneratePreview() {
921 pageSettings.resetState(); 948 pageSettings.resetState();
922 requestPrintPreview(); 949 requestPrintPreview();
923 } 950 }
924 951
925 /** 952 /**
926 * Class that represents the state of the print settings. 953 * Class that represents the state of the print settings.
927 */ 954 */
928 function PrintSettings() { 955 function PrintSettings() {
929 this.deviceName = ''; 956 this.deviceName = '';
930 this.isLandscape = ''; 957 this.isLandscape = '';
958 this.hasHeaderFooter = '';
931 } 959 }
932 960
933 /** 961 /**
934 * Takes a snapshot of the print settings. 962 * Takes a snapshot of the print settings.
935 */ 963 */
936 PrintSettings.prototype.save = function() { 964 PrintSettings.prototype.save = function() {
937 this.deviceName = getSelectedPrinterName(); 965 this.deviceName = getSelectedPrinterName();
938 this.isLandscape = layoutSettings.isLandscape(); 966 this.isLandscape = layoutSettings.isLandscape();
967 this.hasHeaderFooter = hasHeaderFooter();
939 } 968 }
940 969
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698