# cp.apple.finalcutpro.timeline.Timeline

Timeline Module. The timeline module provides an interface to the Final Cut Pro timeline. It delegates to the contents property, so any functions which can be called on the contents property can be called on the Timeline module.


# API Overview

Functions - API calls offered directly by the extension

  • matches
  • matchesMain

Constructors - API calls which return an object, typically one that offers API methods

  • Timeline

Fields - Variables which can only be accessed from an object returned by a constructor

  • contents
  • effects
  • index
  • isFocused
  • isOnPrimary
  • isOnSecondary
  • isPlaying
  • isShowing
  • mainUI
  • rangeSelected
  • speedPopover
  • title
  • toolbar
  • transitions

Methods - API calls which can only be made on an object returned by a constructor

  • app
  • doHide
  • doOpenProject
  • doShowOnPrimary
  • doShowOnSecondary
  • hide
  • show
  • showOnPrimary
  • showOnSecondary

# API Documentation

# Functions

# matches

Signature cp.apple.finalcutpro.timeline.Timeline.matches(element) -> boolean
Type Function
Description Checks to see if an element matches what we think it should be.
Parameters
  • element - An axuielementObject to check.
Returns
  • true if matches otherwise false.
Notes
  • element should be an AXGroup, which contains an AXSplitGroup with an
  • AXIdentifier of _NS:237 (as of Final Cut Pro 10.4)
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 42

# matchesMain

Signature cp.apple.finalcutpro.timeline.Timeline.matchesMain(element) -> boolean
Type Function
Description Checks to see if an element matches what we think it should be.
Parameters
  • element - An axuielementObject to check.
Returns
  • true if matches otherwise false
Notes
  • element should be an AXSplitGroup with an AXIdentifier of _NS:237
  • (as of Final Cut Pro 10.4)
  • Because the timeline contents is hard to detect, we look for the timeline
  • toolbar instead.
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 62

# Constructors

# Timeline

Signature cp.apple.finalcutpro.timeline.Timeline(app) -> Timeline
Type Constructor
Description Creates a new Timeline instance.
Parameters
  • app - The cp.apple.finalcutpro object.
Returns
  • A new Timeline object.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 107

# Fields

# contents

Signature cp.apple.finalcutpro.timeline.Timeline.contents <cp.apple.finalcutpro.timeline.Contents>
Type Field
Description The Timeline Contents. The Content is the main body of the timeline,
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 380

# effects

Signature cp.apple.finalcutpro.timeline.Timeline.effects <cp.apple.finalcutpro.main.EffectsBrowser>
Type Field
Description The (sometimes hidden) Effect Browser.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 388

# index

Signature cp.apple.finalcutpro.timeline.Timeline.index <cp.apple.finalcutpro.timeline.Index>
Type Field
Description The Index.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 427

# isFocused

Signature cp.apple.finalcutpro.timeline.Timeline.isFocused <cp.prop: boolean>
Type Field
Description Is the timeline focused?
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 179

# isOnPrimary

Signature cp.apple.finalcutpro.timeline.Timeline.isOnPrimary <cp.prop: boolean; read-only>
Type Field
Description Checks if the Timeline is on the Primary Display.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 138

# isOnSecondary

Signature cp.apple.finalcutpro.timeline.Timeline.isOnSecondary <cp.prop: boolean; read-only>
Type Field
Description Checks if the Timeline is on the Secondary Display.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 128

# isPlaying

Signature cp.apple.finalcutpro.timeline.Timeline.isPlaying <cp.prop: boolean>
Type Field
Description Is the timeline playing?
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 172

# isShowing

Signature cp.apple.finalcutpro.timeline.Timeline.isShowing <cp.prop: boolean; read-only>
Type Field
Description Checks if the Timeline is showing on either the Primary or Secondary display.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 148

# mainUI

Signature cp.apple.finalcutpro.timeline.Timeline.mainUI <cp.prop: hs.axuielement; read-only>
Type Field
Description Returns the axuielement representing the 'timeline', or nil if not available.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 158

# rangeSelected

Signature cp.apple.finalcutpro.timeline.Timeline.rangeSelected <cp.prop: boolean; read-only>
Type Field
Description Checks if a range is selected in the timeline.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 416

# speedPopover

Signature cp.apple.finalcutpro.timeline.Timeline.speedPopover <cp.apple.finalcutpro.timeline.SpeedPopover>
Type Field
Description The SpeedPopover.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 472

# title

Signature cp.apple.finalcutpro.timeline.Timeline.title <cp.ui.StaticText>
Type Field
Description The StaticText containing the title.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 409

# toolbar

Signature cp.apple.finalcutpro.timeline.Timeline.toolbar <Toolbar>
Type Field
Description The bar at the top of the timeline.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 402

# transitions

Signature cp.apple.finalcutpro.timeline.Timeline.transitions <cp.apple.finalcutpro.main.EffectsBrowser>
Type Field
Description The (sometimes hidden) Transitions Browser.
Notes None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 395

# Methods

# app

Signature cp.apple.finalcutpro.timeline.Timeline:app() -> App
Type Method
Description Returns the app instance representing Final Cut Pro.
Parameters
  • None
Returns
  • App
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 186

# doHide

Signature cp.apple.finalcutpro.timeline.Timeline:doHide() -> cp.rx.go.Statement
Type Method
Description Returns a Statement that will hide the Timeline (regardless of whether it was on the Primary or Secondary window).
Parameters
  • None
Returns
  • A Statement ready to run.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 342

# doOpenProject

Signature cp.apple.finalcutpro.timeline.Timeline:doOpenProject(title) -> cp.rx.go.Statement
Type Method
Description Opens a project from the timeline navigation popups.
Parameters
  • title - The title of the project you want to open.
Returns
  • The Statement to run.
Notes
  • The title supports patterns, so you can do things like:
  • require("cp.apple.finalcutpro").timeline:doOpenProject("Audio.*"):Now()
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 448

# doShowOnPrimary

Signature cp.apple.finalcutpro.timeline.Timeline:doShowOnPrimary() -> cp.rx.go.Statement <boolean>
Type Method
Description Returns a Statement that will ensure the timeline is in the primary window.
Parameters
  • timeout - The timeout period for the operation.
Returns
  • A Statement which will send true if it successful, or false otherwise.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 252

# doShowOnSecondary

Signature cp.apple.finalcutpro.timeline.Timeline:doShowOnSecondary() -> cp.rx.go.Statement <boolean>
Type Method
Description Returns a Statement that will ensure the timeline is in the secondary window.
Parameters
  • timeout - The timeout period for the operation.
Returns
  • A Statement which will send true if it successful, or false otherwise.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 300

# hide

Signature cp.apple.finalcutpro.timeline.Timeline:hide() -> Timeline
Type Method
Description Hide's the Timeline (regardless of whether it was on the Primary or Secondary display).
Parameters
  • None
Returns
  • Timeline object.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 321

# show

Signature cp.apple.finalcutpro.timeline.Timeline:show() -> Timeline
Type Method
Description Show's the Timeline on the Primary Display.
Parameters
  • None
Returns
  • Timeline object.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 205

# showOnPrimary

Signature cp.apple.finalcutpro.timeline.Timeline:showOnPrimary() -> Timeline
Type Method
Description Show's the Timeline on the Primary Display.
Parameters
  • None
Returns
  • Timeline object.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 228

# showOnSecondary

Signature cp.apple.finalcutpro.timeline.Timeline:showOnSecondary() -> Timeline
Type Method
Description Show's the Timeline on the Secondary Display.
Parameters
  • None
Returns
  • Timeline object.
Notes None
Examples None
Source src/extensions/cp/apple/finalcutpro/timeline/Timeline.lua line 280