package ocelot.desktop.util

/**
  * Collection of keybind handles.
  * Each represents some action you may want to execute in Ocelot by pressing a key (or key combination).
  */

object Keybind extends Enumeration {
  type Keybind = KeybindVal

  // OpenComputers
  val Insert: Keybind = KeybindVal("Insert text")

  // Workspace
  val Center: Keybind = KeybindVal("Center camera")
  val QuickSave: Keybind = KeybindVal("Quick save")
  val QuickLoad: Keybind = KeybindVal("Quick load")
  val Screenshot: Keybind = KeybindVal("Save screenshot")
  val PauseEmulation: Keybind = KeybindVal("Pause/Resume emulation")

  // Ocelot
  val UIDebug: Keybind = KeybindVal("UI Debug Mode")
  val FPSCounter: Keybind = KeybindVal("FPS counter")
  val ReloadWorkspace: Keybind = KeybindVal("Reload workspace")
  val Profiler: Keybind = KeybindVal("Ocelot profiler")
  val Fullscreen: Keybind = KeybindVal("Toggle fullscreen mode")

  protected class KeybindVal(val description: String) extends super.Val
  private object KeybindVal {
    def apply(description: String): KeybindVal = new KeybindVal(description)
  }
}
