| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 cr.define('print_preview', function() { | 5 cr.define('print_preview', function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * Measurement system of the print preview. Used to parse and serialize point | 9 * Measurement system of the print preview. Used to parse and serialize point |
| 10 * measurements into the system's local units (e.g. millimeters, inches). | 10 * measurements into the system's local units (e.g. millimeters, inches). |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 MeasurementSystem.parseNumberFormat = function(numberFormat) { | 31 MeasurementSystem.parseNumberFormat = function(numberFormat) { |
| 32 if (!numberFormat) { | 32 if (!numberFormat) { |
| 33 return [',', '.']; | 33 return [',', '.']; |
| 34 } | 34 } |
| 35 var regex = /^(\d+)(\W?)(\d+)(\W?)(\d+)$/; | 35 var regex = /^(\d+)(\W?)(\d+)(\W?)(\d+)$/; |
| 36 var matches = numberFormat.match(regex) || ['', '', ',', '', '.']; | 36 var matches = numberFormat.match(regex) || ['', '', ',', '', '.']; |
| 37 return [matches[2], matches[4]]; | 37 return [matches[2], matches[4]]; |
| 38 }; | 38 }; |
| 39 | 39 |
| 40 /** | 40 /** |
| 41 * Enumeration of measurement unit types. | |
| 42 * @enum {number} | |
| 43 */ | |
| 44 MeasurementSystem.UnitType = { | |
| 45 METRIC: 0, // millimeters | |
| 46 IMPERIAL: 1 // inches | |
| 47 }; | |
| 48 | |
| 49 /** | |
| 50 * Maximum resolution of local unit values. | 41 * Maximum resolution of local unit values. |
| 51 * @type {!Object.<!print_preview.MeasurementSystem.UnitType, number>} | 42 * @type {!Object.<!print_preview.MeasurementSystem.UnitType, number>} |
| 52 * @private | 43 * @private |
| 53 */ | 44 */ |
| 54 MeasurementSystem.Precision_ = {}; | 45 MeasurementSystem.Precision_ = {}; |
| 55 MeasurementSystem.Precision_[MeasurementSystem.UnitType.METRIC] = 0.5; | 46 MeasurementSystem.Precision_[MeasurementSystem.UnitType.METRIC] = 0.5; |
| 56 MeasurementSystem.Precision_[MeasurementSystem.UnitType.IMPERIAL] = 0.01; | 47 MeasurementSystem.Precision_[MeasurementSystem.UnitType.IMPERIAL] = 0.01; |
| 57 | 48 |
| 58 /** | 49 /** |
| 59 * Maximum number of decimal places to keep for local unit. | 50 * Maximum number of decimal places to keep for local unit. |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 | 107 |
| 117 /** | 108 /** |
| 118 * Rounds a value in the local system's units to the appropriate precision. | 109 * Rounds a value in the local system's units to the appropriate precision. |
| 119 * @param {number} value Value to round. | 110 * @param {number} value Value to round. |
| 120 * @return {number} Rounded value. | 111 * @return {number} Rounded value. |
| 121 */ | 112 */ |
| 122 roundValue: function(value) { | 113 roundValue: function(value) { |
| 123 var precision = MeasurementSystem.Precision_[this.unitType_]; | 114 var precision = MeasurementSystem.Precision_[this.unitType_]; |
| 124 var roundedValue = Math.round(value / precision) * precision; | 115 var roundedValue = Math.round(value / precision) * precision; |
| 125 // Truncate | 116 // Truncate |
| 126 return roundedValue.toFixed( | 117 return +roundedValue.toFixed( |
| 127 MeasurementSystem.DecimalPlaces_[this.unitType_]); | 118 MeasurementSystem.DecimalPlaces_[this.unitType_]); |
| 128 }, | 119 }, |
| 129 | 120 |
| 130 /** | 121 /** |
| 131 * @param {number} pts Value in points to convert to local units. | 122 * @param {number} pts Value in points to convert to local units. |
| 132 * @return {number} Value in local units. | 123 * @return {number} Value in local units. |
| 133 */ | 124 */ |
| 134 convertFromPoints: function(pts) { | 125 convertFromPoints: function(pts) { |
| 135 if (this.unitType_ == MeasurementSystem.UnitType.METRIC) { | 126 if (this.unitType_ == MeasurementSystem.UnitType.METRIC) { |
| 136 return pts / MeasurementSystem.PTS_PER_MM_; | 127 return pts / MeasurementSystem.PTS_PER_MM_; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 150 return localUnits * MeasurementSystem.PTS_PER_INCH_; | 141 return localUnits * MeasurementSystem.PTS_PER_INCH_; |
| 151 } | 142 } |
| 152 } | 143 } |
| 153 }; | 144 }; |
| 154 | 145 |
| 155 // Export | 146 // Export |
| 156 return { | 147 return { |
| 157 MeasurementSystem: MeasurementSystem | 148 MeasurementSystem: MeasurementSystem |
| 158 }; | 149 }; |
| 159 }); | 150 }); |
| 151 |
| 152 /** |
| 153 * Enumeration of measurement unit types. |
| 154 * @enum {number} |
| 155 */ |
| 156 print_preview.MeasurementSystem.UnitType = { |
| 157 METRIC: 0, // millimeters |
| 158 IMPERIAL: 1 // inches |
| 159 }; |
| OLD | NEW |