blob: d49f3aa0327d8ccae55bd7265fb82f9aebd9d441 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2015 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.
-->
<link rel="import" href="/ui/base/event_presenter.html">
<link rel="import" href="/ui/tracks/letter_dot_track.html">
<link rel="import" href="/ui/base/color_scheme.html">
<link rel="import" href="/ui/base/ui.html">
<script>
'use strict';
tr.exportTo('tr.ui.tracks', function() {
var palette = tr.ui.b.getColorPalette();
var startCompare = function(x, y) { return x.start - y.start; }
/**
* Track enabling quick selection of frame slices/events.
* @constructor
*/
var FrameTrack = tr.ui.b.define(
'frame-track', tr.ui.tracks.LetterDotTrack);
FrameTrack.prototype = {
__proto__: tr.ui.tracks.LetterDotTrack.prototype,
decorate: function(viewport) {
tr.ui.tracks.LetterDotTrack.prototype.decorate.call(this, viewport);
this.heading = 'Frames';
this.frames_ = undefined;
this.items = undefined;
},
get frames() {
return this.frames_;
},
set frames(frames) {
this.frames_ = frames;
if (frames === undefined)
return;
this.frames_ = this.frames_.slice();
this.frames_.sort(startCompare);
// letter dots
this.items = this.frames_.map(function(frame) {
return new FrameDot(frame);
});
}
};
/**
* @constructor
* @extends {LetterDot}
*/
function FrameDot(frame) {
tr.ui.tracks.LetterDot.call(this, frame, 'F', frame.colorId, frame.start);
}
FrameDot.prototype = {
__proto__: tr.ui.tracks.LetterDot.prototype
};
return {
FrameTrack: FrameTrack
};
});
</script>