blob: 2daa9193c68e985f966fe6dd4a3b709839cd9afb [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
cr.define('print_preview.ticket_items', function() {
'use strict';
/**
* Margins type ticket item whose value is a
* {@link print_preview.ticket_items.MarginsType.Value} that indicates what
* predefined margins type to use.
* @param {!print_preview.AppState} appState App state persistence object to
* save the state of the margins type selection.
* @param {!print_preview.DocumentInfo} documentInfo Information about the
* document to print.
* @param {!print_preview.ticket_items.CustomMargins} customMargins Custom
* margins ticket item, used to write when margins type changes.
* @constructor
* @extends {print_preview.ticket_items.TicketItem}
*/
function MarginsType(appState, documentInfo, customMargins) {
print_preview.ticket_items.TicketItem.call(
this,
appState,
print_preview.AppState.Field.MARGINS_TYPE,
null /*destinationStore*/,
documentInfo);
/**
* Custom margins ticket item, used to write when margins type changes.
* @type {!print_preview.ticket_items.CustomMargins}
* @private
*/
this.customMargins_ = customMargins;
};
/**
* Enumeration of margin types. Matches enum MarginType in
* printing/print_job_constants.h.
* @enum {number}
*/
MarginsType.Value = {
DEFAULT: 0,
NO_MARGINS: 1,
MINIMUM: 2,
CUSTOM: 3
};
MarginsType.prototype = {
__proto__: print_preview.ticket_items.TicketItem.prototype,
/** @override */
wouldValueBeValid: function(value) {
return true;
},
/** @override */
isCapabilityAvailable: function() {
return this.getDocumentInfoInternal().isModifiable;
},
/** @override */
getDefaultValueInternal: function() {
return MarginsType.Value.DEFAULT;
},
/** @override */
getCapabilityNotAvailableValueInternal: function() {
return MarginsType.Value.DEFAULT;
},
/** @override */
updateValueInternal: function(value) {
print_preview.ticket_items.TicketItem.prototype.updateValueInternal.call(
this, value);
if (this.isValueEqual(
print_preview.ticket_items.MarginsType.Value.CUSTOM)) {
// If CUSTOM, set the value of the custom margins so that it won't be
// overridden by the default value.
this.customMargins_.updateValue(this.customMargins_.getValue());
}
}
};
// Export
return {
MarginsType: MarginsType
};
});