// Copyright (c) 2013 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. 'use strict'; /** * @fileoverview A text widget for monitoring ValueBar value and previewValue. */ base.require('ui'); base.require('base.properties'); base.require('ui.mouse_tracker'); base.exportTo('ui', function() { /** * @constructor */ var ValueDisplay = ui.define('value-display'); ValueDisplay.prototype = { __proto__: HTMLDivElement.prototype, decorate: function() { this.className = 'value-display'; this.currentValueDisplay_ = ui.createDiv({ className: 'value-value', parent: this }); this.previewValueDisplay_ = ui.createDiv({ className: 'value-set-to', parent: this }); this.setValueText_ = this.setValueText_.bind(this); this.setPreviewValueText_ = this.setPreviewValueText_.bind(this); }, get valueBar() { return this.valueBar_; }, set valueBar(newValue) { if (this.valueBar_) this.detach_(); this.valueBar_ = newValue; if (this.valueBar_) this.attach_(); }, attach_: function() { this.valueBar_.addEventListener('valueChange', this.setValueText_); this.valueBar_.addEventListener('previewValueChange', this.setPreviewValueText_); }, dettach_: function() { this.valueBar_.removeEventListener('valueChange', this.setValueText_); this.valueBar_.removeEventListener('previewValueChange', this.setPreviewValueText_); }, setValueText_: function(event) { if (typeof event.newValue === undefined) return; this.currentValueDisplay_.textContent = event.newValue.toFixed(2); this.setPreviewValueText_(event); }, setPreviewValueText_: function(event) { this.previewValueDisplay_.textContent = ' (\u2192 ' + event.newValue.toFixed(2) + ')'; } }; return { ValueDisplay: ValueDisplay }; });