Imports
-
../utils/eprint, ../config/config, ../config/conftypes, ../encoding/charset, ../encoding/decoder, ../encoding/encoder, ../encoding/encodercore, ../io/dynstream, ../io/poll, ../server/loaderiface, ../types/bitmap, ../types/blob, ../types/cell, ../types/color, ../types/opt, ../types/winattrs, ../utils/myposix, ../utils/strwidth, ../utils/twtstr
Types
CanvasImage = ref object bmp*: NetworkBitmap dims*: CanvasImageDimensions damaged*: bool
CanvasImageDimensions = object y*: int width*: int height*: int offx*: int dispw*: int erry*: int erry2*: int
InputEvent = object case t*: InputEventType of ietKey: c*: char of ietKeyEnd: nil of ietPaste: nil of ietWindowChange: nil of ietRedraw: nil of ietMouse: m*: MouseInput
InputEventType = enum ietKey = "key", ietKeyEnd = "keyEnd", ietPaste = "paste", ietMouse = "mouse", ietWindowChange = "windowChange", ietRedraw = "redraw"
MouseButton = enum mibLeft = (1, "left"), mibMiddle = (2, "middle"), mibRight = (3, "right"), mibWheelUp = (4, "wheelUp"), mibWheelDown = (5, "wheelDown"), mibWheelLeft = (6, "wheelLeft"), mibWheelRight = (7, "wheelRight"), mibThumbInner = (8, "thumbInner"), mibThumbTip = (9, "thumbTip"), mibButton10 = (10, "button10"), mibButton11 = (11, "button11")
MouseInput = object t*: MouseInputType button*: MouseButton mods*: set[MouseInputMod] pos*: MouseInputPosition
MouseInputMod = enum mimShift = "shift", mimCtrl = "ctrl", mimMeta = "meta"
MouseInputPosition = tuple[x, y: int32]
MouseInputType = enum mitPress = "press", mitRelease = "release", mitMove = "move"
Terminal = ref object cs*: Charset istream*: PosixStream ostream*: PosixStream attrs*: WindowAttributes imageMode*: ImageMode osc52Primary*: bool registeredFlag*: bool sixelRegisterNum*: uint16
Vars
acceptSigint {.global.} = false
sigintCaught {.global.} = false
Consts
BracketedPasteEnd = "\e[201~"
BracketedPasteStart = "\e[200~"
Procs
proc addImage(term: Terminal; image: CanvasImage) {....raises: [], tags: [], forbids: [].}
proc ahandleRead(term: Terminal): Opt[bool] {....raises: [], tags: [], forbids: [].}
proc areadEvent(term: Terminal): Opt[InputEvent] {....raises: [], tags: [RootEffect], forbids: [].}
proc catchSigint(term: Terminal) {....raises: [], tags: [], forbids: [].}
proc clearCanvas(term: Terminal) {....raises: [], tags: [], forbids: [].}
proc clearImages(term: Terminal; maxh: int) {....raises: [], tags: [], forbids: [].}
proc cursorNextLine(term: Terminal): Opt[void] {....raises: [], tags: [], forbids: [].}
proc getCurrentBgcolor(term: Terminal): CellColor {....raises: [], tags: [], forbids: [].}
proc hasBracketedPaste(term: Terminal): bool {....raises: [], tags: [], forbids: [].}
proc newCanvasImage(data: Blob; pid, preludeLen: int; bmp: NetworkBitmap; dims: CanvasImageDimensions; transparent: bool): CanvasImage {. ...raises: [], tags: [], forbids: [].}
proc newTerminal(ostream: PosixStream; config: Config; loader: FileLoader): Terminal {. ...raises: [], tags: [], forbids: [].}
proc onScreen(dims: CanvasImageDimensions): bool {....raises: [], tags: [], forbids: [].}
proc positionImage(term: Terminal; rx, ry, x, y, offx2, offy2, width, height, maxwpx, maxhpx: int): CanvasImageDimensions {. ...raises: [], tags: [], forbids: [].}
proc processFormat(term: Terminal; cellf: Format): Opt[void] {....raises: [], tags: [], forbids: [].}
proc processOutputString(term: Terminal; s: openArray[char]; trackCursor = true): Opt[ void] {....raises: [], tags: [], forbids: [].}
proc queryWindowSize(term: Terminal): Opt[void] {....raises: [], tags: [ReadEnvEffect], forbids: [].}
proc queueTitle(term: Terminal; title: string) {....raises: [], tags: [], forbids: [].}
proc reduceFormat(term: Terminal; format: Format): Format {....raises: [], tags: [], forbids: [].}
proc respectSigint(term: Terminal) {....raises: [], tags: [], forbids: [].}
proc scrollDown(term: Terminal; n, scrollBottom: int) {....raises: [], tags: [], forbids: [].}
proc start(term: Terminal; istream: PosixStream): Opt[void] {....raises: [], tags: [ReadEnvEffect], forbids: [].}
proc takeImage(term: Terminal; pid, imageId, bufHeight: int; dims: CanvasImageDimensions): CanvasImage {....raises: [], tags: [RootEffect], forbids: [].}
proc unsetScroll(term: Terminal) {....raises: [], tags: [], forbids: [].}
proc updateImage(image: CanvasImage; data: Blob; preludeLen: int) {....raises: [], tags: [], forbids: [].}
proc updateScroll(term: Terminal; pid, x, y: int): int {....raises: [], tags: [], forbids: [].}
Iterators
iterator updateImages(term: Terminal; bufWidth, bufHeight: int): CanvasImage {. ...raises: [], tags: [], forbids: [].}