All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.sciss.mellite.gui.TimelineView.scala Maven / Gradle / Ivy

/*
 *  TimelineView.scala
 *  (Mellite)
 *
 *  Copyright (c) 2012-2016 Hanns Holger Rutz. All rights reserved.
 *
 *  This software is published under the GNU General Public License v3+
 *
 *
 *  For further information, please contact Hanns Holger Rutz at
 *  [email protected]
 */

package de.sciss.mellite
package gui

import de.sciss.audiowidgets.TimelineModel
import de.sciss.desktop.UndoManager
import de.sciss.lucre.stm
import de.sciss.lucre.swing.View
import de.sciss.lucre.synth.Sys
import de.sciss.mellite.gui.impl.timeline.{TimelineViewImpl => Impl}
import de.sciss.synth.proc.Timeline
import de.sciss.synth.proc.gui.TransportView

import scala.swing.Action

object TimelineView {
  def apply[S <: Sys[S]](group: Timeline[S])
                        (implicit tx: S#Tx, workspace: Workspace[S], cursor: stm.Cursor[S],
                         undoManager: UndoManager): TimelineView[S] =
    Impl[S](group)

  /** Number of pixels for one unit of track height (convention). */
  final val TrackScale  = 16
  /** Minimum duration in sample-frames for some cases where it should be greater than zero. */
  final val MinDur      = 32
}
trait TimelineView[S <: stm.Sys[S]] extends ViewHasWorkspace[S] with View.Editable[S] {
  def timelineModel   : TimelineModel
  def selectionModel  : TimelineObjView.SelectionModel[S]

  def timelineH: stm.Source[S#Tx, Timeline[S]]
  def timeline(implicit tx: S#Tx): Timeline[S]

  def canvas        : TimelineProcCanvas[S]

  def globalView    : GlobalProcsView[S]
  def transportView : TransportView  [S]

  // ---- GUI actions ----
  def actionBounce              : Action
  def actionDelete              : Action
  def actionSplitObjects        : Action
  def actionStopAllSound        : Action
  def actionClearSpan           : Action
  def actionRemoveSpan          : Action
  def actionAlignObjectsToCursor: Action
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy