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

de.sciss.mellite.Application.scala Maven / Gradle / Ivy

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

package de.sciss.mellite

import de.sciss.desktop.{SwingApplication, SwingApplicationProxy}
import de.sciss.synth.proc.Universe

import scala.collection.immutable.{Seq => ISeq}

/** A proxy for a swing application. */
object Application extends SwingApplicationProxy[Universe[_], Application] { me =>

//  type Document = Workspace[_ <: Sys[_]]
//  type Document = Workspace[_ <: Sys[_]]
  type Document = Universe[_] // [_ <: Sys[_]]

  def topLevelObjects : ISeq[String]      = peer.topLevelObjects
  def objectFilter    : String => Boolean = peer.objectFilter
}
trait Application extends SwingApplication[Application.Document] {
  type Document = Application.Document

  /** A list of object view factories to appear
    * in the top level menu of the GUI.
    *
    * The string indicates the `prefix` of the type
    * (e.g. `"Proc"` or `"Folder"`).
    */
  def topLevelObjects: ISeq[String]

  /** A predicate that tests object view factories for
    * inclusion in the GUI. A `true` value indicates
    * inclusion, a `false` value indicates exclusion.
    *
    * The string indicates the `prefix` of the type
    * (e.g. `"Proc"` or `"Folder"`).
    */
  def objectFilter: String => Boolean
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy