15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cr.define('print_preview', function() { 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'use strict'; 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Object describing the printable area of a page in the document. 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {!print_preview.Coordinate2d} origin Top left corner of the 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * printable area of the document. 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {!print_preview.Size} size Size of the printable area of the 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * document. 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @constructor 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function PrintableArea(origin, size) { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Top left corner of the printable area of the document. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {!print_preview.Coordinate2d} 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.origin_ = origin; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Size of the printable area of the document. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {!print_preview.Size} 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.size_ = size; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrintableArea.prototype = { 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return {!print_preview.Coordinate2d} Top left corner of the printable 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * area of the document. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) get origin() { 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return this.origin_; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return {!print_preview.Size} Size of the printable area of the document. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) get size() { 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return this.size_; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {print_preview.PrintableArea} other Other printable area to check 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * for equality. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return {boolean} Whether another printable area is equal to this one. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) equals: function(other) { 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return other != null && 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.origin_.equals(other.origin_) && 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.size_.equals(other.size_); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Export 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrintableArea: PrintableArea 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 65