blob: 76e1e7cccc66175e1b2cf763165accaf2cd2eae4 [file] [log] [blame]
Chris Craikbeca7ae2015-04-07 13:29:55 -07001<!DOCTYPE html>
2<!--
3Copyright (c) 2015 The Chromium Authors. All rights reserved.
4Use of this source code is governed by a BSD-style license that can be
5found in the LICENSE file.
6-->
7
8<link rel="import" href="/base/ui.html">
9<link rel="import" href="/core/event_presenter.html">
10<link rel="import" href="/core/tracks/letter_dot_track.html">
11<link rel="import" href="/base/ui/color_scheme.html">
12
13<script>
14'use strict';
15
16tv.exportTo('tv.c.tracks', function() {
17 var palette = tv.b.ui.getColorPalette();
18
19 var startCompare = function(x, y) { return x.start - y.start; }
20
21 /**
22 * Track enabling quick selection of frame slices/events.
23 * @constructor
24 */
25 var FrameTrack = tv.b.ui.define(
26 'frame-track', tv.c.tracks.LetterDotTrack);
27
28 FrameTrack.prototype = {
29 __proto__: tv.c.tracks.LetterDotTrack.prototype,
30
31 decorate: function(viewport) {
32 tv.c.tracks.LetterDotTrack.prototype.decorate.call(this, viewport);
33 this.heading = 'Frames';
34
35 this.frames_ = undefined;
36 this.items = undefined;
37 },
38
39 get frames() {
40 return this.frames_;
41 },
42
43 set frames(frames) {
44 this.frames_ = frames;
45 if (frames === undefined)
46 return;
47
48 this.frames_ = this.frames_.slice();
49 this.frames_.sort(startCompare);
50
51 // letter dots
52 this.items = this.frames_.map(function(frame) {
Chris Craik19832152015-04-16 15:43:38 -070053 return new FrameDot(frame);
Chris Craikbeca7ae2015-04-07 13:29:55 -070054 });
Chris Craikbeca7ae2015-04-07 13:29:55 -070055 }
Chris Craik19832152015-04-16 15:43:38 -070056 };
Chris Craikbeca7ae2015-04-07 13:29:55 -070057
Chris Craik19832152015-04-16 15:43:38 -070058 /**
59 * @constructor
60 * @extends {LetterDot}
61 */
62 function FrameDot(frame) {
63 tv.c.tracks.LetterDot.call(this, frame, 'F', frame.colorId, frame.start);
64 }
65
66 FrameDot.prototype = {
Chris Craik44c28202015-05-12 17:25:16 -070067 __proto__: tv.c.tracks.LetterDot.prototype
Chris Craikbeca7ae2015-04-07 13:29:55 -070068 };
69
70 return {
71 FrameTrack: FrameTrack
72 };
73});
74</script>