nimterm/app
This page is generated from the module’s exported API and ## documentation comments.
Small, deterministic application shell for widgets and event sources.
EventSource
Section titled “EventSource”EventSource = ref object of RootObj id*: stringApp = object backend*: TerminalBackend root*: Widget queue*: EventQueue size*: Size frame*: Canvas running*: bool dirty*: bool focus*: Widget mouseCapture*: Widget onEvent*: proc (app: var App; event: UiEvent): EventResponse {.closure.} onAction*: proc (app: var App; action: UiAction) {.closure.} pollIntervalMs*: int minFrameIntervalMs*: int sources*: seq[EventSource]Methods
Section titled “Methods”method poll(source: EventSource): seq[UiEvent] {.base, raises: [], tags: [], forbids: [].}Returns: seq[UiEvent].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
source |
EventSource |
method close(source: EventSource) {.base, raises: [], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
source |
EventSource |
needsPolling
Section titled “needsPolling”method needsPolling(source: EventSource): bool {.base, raises: [], tags: [], forbids: [].}Returns: bool.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
source |
EventSource |
Procedures
Section titled “Procedures”newApp
Section titled “newApp”proc newApp(backend: TerminalBackend; root: Widget = nil): App {.raises: [], tags: [ReadEnvEffect, TimeEffect], forbids: [].}Returns: App.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
backend |
TerminalBackend |
|
root |
Widget |
nil |
addSource
Section titled “addSource”proc addSource(app: var App; source: EventSource) {.raises: [], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
source |
EventSource |
schedule
Section titled “schedule”proc schedule(app: var App; id: string; delayMs: int; intervalMs = 0) {. raises: [], tags: [TimeEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
id |
string |
|
delayMs |
int |
|
intervalMs |
inferred |
0 |
cancelTimer
Section titled “cancelTimer”proc cancelTimer(app: var App; id: string) {.raises: [], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
id |
string |
invalidate
Section titled “invalidate”proc invalidate(app: var App) {.raises: [], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
proc post(app: var App; event: UiEvent) {.raises: [], tags: [], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
event |
UiEvent |
proc focus(app: var App; widget: Widget) {.raises: [Exception], tags: [RootEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
widget |
Widget |
dispatch
Section titled “dispatch”proc dispatch(app: var App; event: UiEvent) {.raises: [Exception], tags: [RootEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
event |
UiEvent |
render
Section titled “render”proc render(app: var App) {.raises: [Exception, IOError], tags: [TimeEffect, RootEffect, WriteIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
proc flush(app: var App; force = false) {.raises: [Exception, IOError], tags: [TimeEffect, RootEffect, WriteIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
force |
inferred |
false |
Process one queued/backend event and render if invalidated.
proc step(app: var App; timeoutMs = 0): bool {. raises: [Exception, Exception, IOError], tags: [RootEffect, TimeEffect, WriteIOEffect], forbids: [].}Returns: bool.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
timeoutMs |
inferred |
0 |
proc pump(app: var App; timeoutMs = 0): bool {.raises: [Exception, IOError], tags: [RootEffect, TimeEffect, WriteIOEffect], forbids: [].}Returns: bool.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |
|
timeoutMs |
inferred |
0 |
proc run(app: var App) {.raises: [ValueError, Exception, IOError], tags: [RootEffect, TimeEffect, WriteIOEffect], forbids: [].}Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
app |
var App |