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)   * Immutable two-dimensional size.
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param {number} width Width of the size.
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param {number} height Height of the size.
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @constructor
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  function Size(width, height) {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Width of the size.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {number}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.width_ = width;
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Height of the size.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @type {number}
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this.height_ = height;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Size.prototype = {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /** @return {number} Width of the size. */
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    get width() {
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return this.width_;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /** @return {number} Height of the size. */
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    get height() {
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return this.height_;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @param {print_preview.Size} other Other size object to compare against.
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @return {boolean} Whether this size object is equal to another.
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    equals: function(other) {
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return other != null &&
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.width_ == other.width_ &&
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          this.height_ == other.height_;
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Export
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return {
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Size: Size
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)});
57