diff options
Diffstat (limited to 'javascript/videojs/src/js/control-bar/text-track-controls/chapters-track-menu-item.js')
| -rw-r--r-- | javascript/videojs/src/js/control-bar/text-track-controls/chapters-track-menu-item.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/javascript/videojs/src/js/control-bar/text-track-controls/chapters-track-menu-item.js b/javascript/videojs/src/js/control-bar/text-track-controls/chapters-track-menu-item.js new file mode 100644 index 0000000..2463564 --- /dev/null +++ b/javascript/videojs/src/js/control-bar/text-track-controls/chapters-track-menu-item.js @@ -0,0 +1,60 @@ +/** + * @file chapters-track-menu-item.js + */ +import MenuItem from '../../menu/menu-item.js'; +import Component from '../../component.js'; + +/** @import Player from '../../player' */ + +/** + * The chapter track menu item + * + * @extends MenuItem + */ +class ChaptersTrackMenuItem extends MenuItem { + + /** + * Creates an instance of this class. + * + * @param {Player} player + * The `Player` that this class should be attached to. + * + * @param {Object} [options] + * The key/value store of player options. + */ + constructor(player, options) { + const track = options.track; + const cue = options.cue; + const currentTime = player.currentTime(); + + // Modify options for parent MenuItem class's init. + options.selectable = true; + options.multiSelectable = false; + options.label = cue.text; + options.selected = (cue.startTime <= currentTime && currentTime < cue.endTime); + super(player, options); + + this.track = track; + this.cue = cue; + } + + /** + * This gets called when an `ChaptersTrackMenuItem` is "clicked". See + * {@link ClickableComponent} for more detailed information on what a click can be. + * + * @param {Event} [event] + * The `keydown`, `tap`, or `click` event that caused this function to be + * called. + * + * @listens tap + * @listens click + */ + handleClick(event) { + super.handleClick(); + this.player_.currentTime(this.cue.startTime); + } + +} + +Component.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem); +export default ChaptersTrackMenuItem; |
