Screen

Undocumented in source.

Members

Functions

beep
void beep()

Emit a beep or bell. This is done immediately.

clear
void clear()

Clears the screen. This doesn't take effect until the show function is called.

colors
int colors()

If the terminal supports color, this returns the the number of colors.

disableMouse
void disableMouse()

Disable all mouse handling/capture.

enableMouse
void enableMouse(MouseEnable en)

Enable mouse mode. This can cause terminals/emulators to behave differently -- for example affecting the ability to scroll or use copy/paste.

enableMouse
void enableMouse()

Enable typical mouse features. This enables tracking, but leaves drag events disabled. Enabling mouse drag will impair use of copy-paste at the OS level, which many users tend to find frustrating.

enablePaste
void enablePaste(bool b)

Enable backeted paste mode mode. Bracketed paste mode will pasted content in a single event, and is therefore distinguishable from individually typed characters.

fill
void fill(string s, Style style)

Fill the entire screen with the given content and style. Content is not drawn until the show() or sync() functions are called.

fill
void fill(string s)

Fill the entire screen with the given content, but preserve the style.

hasKey
bool hasKey(Key )

It would be nice to know if a given key is supported by a terminal. Note that this is best-effort, and some terminals may present the ability to support a key, without actually having such a physical key and some combinations may be suppressed by the emulator or the environment the emulator runs in.

hasMouse
bool hasMouse()

Do we have a mouse? This may be overly optimitistic for some terminals, but it is a good first guess.

opDollar
size_t opDollar()

Support $ operation in indices.

opIndex
Cell opIndex(size_t x, size_t y)

Retrive the contents for a given address. This is taken from the backing draw buffer, and won't necessarily reflect what is displayed to the user until show is called.

opIndex
Cell opIndex(Coord pos)

Convenience for indexing

opIndexAssign
void opIndexAssign(Cell , size_t x, size_t y)

Set the content for for a given location. This won't necessarily take effect until the show function is called.

opIndexAssign
void opIndexAssign(Cell c, Coord pos)

Convenience for indexing.

receiveEvent
Event receiveEvent(Duration dur)

If start was called without a Tid to send to, then events are delivered into a queue that can be polled via this API. This function is thread safe.

receiveEvent
Event receiveEvent()

Receive events, withotu a timeout. This only works if start was called without a tid.

resize
void resize()

Applications should call this in response to receiving a resize event. (This can't be done automatically to avoid thread safety issues.)

setSize
void setSize(Coord )

Attempt to resize the terminal. YMMV.

setStyle
void setStyle(Style )

Set the default style used when clearning the screen, etc.

show
void show()

Show content on the screen, doing so efficiently.

showCursor
void showCursor(Cursor )

Show the cursor at its current location.

showCursor
void showCursor(Coord pos, Cursor cur)

Move the cursor to the given location, and show it using the appropriate style.

size
Coord size()

Obtain the terminal window size. The x, y represent the number of columns and rows. The highest valid address will be coord.x-1, coord.y-1.

start
void start()

Start should be called to start processing. Once this begins, events (see event.d) will be delivered to the caller via std.concurrency.send(). Additioanlly, this may change terminal settings to put the input stream into raw mode, etc.

start
void start(Tid )
Undocumented in source.
stop
void stop()

Stop is called to stop processing on teh screen. The terminal settings will be restored, and the screen may be cleared. Input events will no longer be delivered. This should be called when the program is exited, or if suspending (to run a subshell process interactively for example).

sync
void sync()

Update the screen, writing every cell. This should be done to repair screen damage, for example.

Meta