@eryx/gui Module

Summary

Functions

gui.App() → App
gui.Window(title: string, width: number, height: number) → Window
gui.Dialog(title: string, width: number, height: number) → Dialog
gui.Grid(columns: number?) → Layout
gui.Spacer(size: number?) → Spacer
gui.Label(text: string?) → Label
gui.Button(text: string?) → Button
gui.ToggleButton(text: string?) → ToggleButton
gui.TextBox(text: string?) → TextBox
gui.TextArea(text: string?) → TextArea
gui.SearchBox(text: string?) → SearchBox
gui.CheckBox(text: string?) → CheckBox
gui.RadioButton(text: string?) → RadioButton
gui.DatePicker(value: string?) → DatePicker
gui.Hyperlink(text: string?, url: string?) → Hyperlink
gui.Choice(text: string?) → Choice
gui.ComboBox(text: string?) → ComboBox
gui.Slider(value: number?) → Slider
gui.SpinBox(value: number?) → SpinBox
gui.ProgressBar(range: number?) → ProgressBar
gui.GroupBox(text: string?) → GroupBox
gui.HSplitter(position: number?) → Splitter
gui.VSplitter(position: number?) → Splitter
gui.StatusBar(text: string?) → StatusBar
gui.Menu(title: string) → Menu
gui.MenuBar(children: { Menu }?) → MenuBar
gui.Action(label: string, callback: ((() → ()))?) → Action
gui.bitmap(image: any) → Bitmap
gui.colourDialog() → string?
gui.fontDialog() → { face: string, size: number, bold: boolean, italic: boolean }?
gui.setClipboardText(text: string) → ()

API Reference

Functions

gui.App

gui.App() → App

gui.Window

gui.Window(title: string, width: number, height: number) → Window

gui.Dialog

gui.Dialog(title: string, width: number, height: number) → Dialog

gui.VBox

gui.VBox() → Layout

gui.HBox

gui.HBox() → Layout

gui.Grid

gui.Grid(columns: number?) → Layout

gui.Form

gui.Form() → Layout

gui.Spacer

gui.Spacer(size: number?) → Spacer

gui.Label

gui.Label(text: string?) → Label

gui.Button

gui.Button(text: string?) → Button

gui.ToggleButton

gui.ToggleButton(text: string?) → ToggleButton

gui.ToolBar

gui.ToolBar() → ToolBar

gui.TextBox

gui.TextBox(text: string?) → TextBox

gui.TextArea

gui.TextArea(text: string?) → TextArea

gui.SearchBox

gui.SearchBox(text: string?) → SearchBox

gui.CheckBox

gui.CheckBox(text: string?) → CheckBox

gui.RadioButton

gui.RadioButton(text: string?) → RadioButton

gui.DatePicker

gui.DatePicker(value: string?) → DatePicker

gui.Hyperlink

gui.Hyperlink(text: string?, url: string?) → Hyperlink

gui.Choice

gui.Choice(text: string?) → Choice

gui.ComboBox

gui.ComboBox(text: string?) → ComboBox

gui.ListBox

gui.ListBox() → ListBox

gui.TreeView

gui.TreeView() → TreeView

gui.Slider

gui.Slider(value: number?) → Slider

gui.SpinBox

gui.SpinBox(value: number?) → SpinBox

gui.ProgressBar

gui.ProgressBar(range: number?) → ProgressBar

gui.Tabs

gui.Tabs() → Tabs

gui.TableView

gui.TableView() → TableView

gui.ListView

gui.ListView() → ListView

gui.Panel

gui.Panel() → Panel

gui.ScrollArea

gui.ScrollArea() → ScrollArea

gui.GroupBox

gui.GroupBox(text: string?) → GroupBox

gui.StaticLine

gui.StaticLine() → StaticLine

gui.InfoBar

gui.InfoBar() → InfoBar

gui.HSplitter

gui.HSplitter(position: number?) → Splitter

gui.VSplitter

gui.VSplitter(position: number?) → Splitter

gui.StatusBar

gui.StatusBar(text: string?) → StatusBar

gui.Menu

gui.Menu(title: string) → Menu

gui.MenuBar

gui.MenuBar(children: { Menu }?) → MenuBar

gui.Action

gui.Action(label: string, callback: ((() → ()))?) → Action

gui.bitmap

gui.bitmap(image: any) → Bitmap

gui.openFileDialog

gui.openFileDialog(options: FileDialogOptions) → string?

gui.saveFileDialog

gui.saveFileDialog(options: FileDialogOptions) → string?

gui.openDirectoryDialog

gui.openDirectoryDialog(options: DirectoryDialogOptions) → string?

gui.messageBox

gui.messageBox(options: MessageBoxOptions) → ()

gui.textEntryDialog

gui.textEntryDialog(options: TextEntryDialogOptions) → string?

gui.numberEntryDialog

gui.numberEntryDialog(options: NumberEntryDialogOptions) → number?

gui.choiceDialog

gui.choiceDialog(options: ChoiceDialogOptions) → string?

gui.colourDialog

gui.colourDialog() → string?

gui.fontDialog

gui.fontDialog() → { face: string, size: number, bold: boolean, italic: boolean }?

gui.aboutDialog

gui.aboutDialog(options: AboutDialogOptions) → ()

gui.progressDialog

gui.progressDialog(options: ProgressDialogOptions) → boolean

gui.setClipboardText

gui.setClipboardText(text: string) → ()

gui.getClipboardText

gui.getClipboardText() → string

Types

App

type App = { run: ((self: App) → ()), quit: ((self: App) → ()) }
App:run() → ()
App:quit() → ()

Window

type Window = { minimumSize: ((self: Window, width: number, height: number) → ()), setTitle: ((self: Window, title: string) → ()), setLayout: ((self: Window, layout: Layout) → ()), setStatusBar: ((self: Window, statusBar: StatusBar) → ()), setMenuBar: ((self: Window, menuBar: MenuBar) → ()), onClose: ( self: Window, callback: ((event: { canVeto: boolean, closed: boolean }) → ()) ) → (), show: ((self: Window) → ()), close: ((self: Window) → ()) }
Window:minimumSize(width: number, height: number) → ()
Window:setTitle(title: string) → ()
Window:setLayout(layout: Layout) → ()
Window:setStatusBar(statusBar: StatusBar) → ()
Window:setMenuBar(menuBar: MenuBar) → ()
Window:onClose(callback: ((event: { canVeto: boolean, closed: boolean }) → ())) → ()
Window:show() → ()
Window:close() → ()

Dialog

type Dialog = { minimumSize: ((self: Dialog, width: number, height: number) → ()), setTitle: ((self: Dialog, title: string) → ()), setLayout: ((self: Dialog, layout: Layout) → ()), onClose: ( self: Dialog, callback: ((event: { canVeto: boolean, closed: boolean }) → ()) ) → (), show: ((self: Dialog) → ()), showModal: ((self: Dialog) → number?), close: ((self: Dialog) → ()) }
Dialog:minimumSize(width: number, height: number) → ()
Dialog:setTitle(title: string) → ()
Dialog:setLayout(layout: Layout) → ()
Dialog:onClose(callback: ((event: { canVeto: boolean, closed: boolean }) → ())) → ()
Dialog:show() → ()
Dialog:showModal() → number?
Dialog:close() → ()

LayoutChildOptions

type LayoutChildOptions = { expand: boolean? }
expand: boolean?

Layout

type Layout = { add: ( self: Layout, child: Layout | Spacer | Widget, options: LayoutChildOptions? ) → (), padding: ((self: Layout, value: number) → ()), gap: ((self: Layout, value: number) → ()) }
Layout:add(child: Layout | Spacer | Widget, options: LayoutChildOptions?) → ()
Layout:padding(value: number) → ()
Layout:gap(value: number) → ()

Spacer

type Spacer = {}

Widget

type Widget = { enabled: ((self: Widget, value: boolean?) → boolean?), text: ((self: Widget, value: string?) → string?) }
Widget:enabled(value: boolean?) → boolean?
Widget:text(value: string?) → string?

Label

type Label = Widget
Implements: Widget

Button

type Button = Widget & { onClick: ((self: Button, callback: (() → ())) → ()), setIcon: ((self: Button, bitmap: Bitmap) → ()) }
Implements: Widget
Button:onClick(callback: (() → ())) → ()
Button:setIcon(bitmap: Bitmap) → ()

ToggleButton

type ToggleButton = Widget & { checked: ((self: ToggleButton, value: boolean?) → boolean?), onClick: ((self: ToggleButton, callback: (() → ())) → ()), onChange: ((self: ToggleButton, callback: ((checked: boolean) → ())) → ()) }
Implements: Widget
ToggleButton:checked(value: boolean?) → boolean?
ToggleButton:onClick(callback: (() → ())) → ()
ToggleButton:onChange(callback: ((checked: boolean) → ())) → ()

ToolBar

type ToolBar = Widget & { add: ((self: ToolBar, item: Action?) → ()) }
Implements: Widget
ToolBar:add(item: Action?) → ()

TextBox

type TextBox = Widget & { placeholder: ((self: TextBox, value: string) → ()), readOnly: ((self: TextBox, value: boolean?) → boolean?), password: ((self: TextBox, value: boolean?) → boolean?), append: ((self: TextBox, value: string) → ()), onChange: ((self: TextBox, callback: ((text: string) → ())) → ()), onSubmit: ((self: TextBox, callback: ((text: string) → ())) → ()) }
Implements: Widget
TextBox:placeholder(value: string) → ()
TextBox:readOnly(value: boolean?) → boolean?
TextBox:password(value: boolean?) → boolean?
TextBox:append(value: string) → ()
TextBox:onChange(callback: ((text: string) → ())) → ()
TextBox:onSubmit(callback: ((text: string) → ())) → ()

TextArea

type TextArea = Widget & { placeholder: ((self: TextArea, value: string) → ()), readOnly: ((self: TextArea, value: boolean?) → boolean?), append: ((self: TextArea, value: string) → ()), onChange: ((self: TextArea, callback: ((text: string) → ())) → ()) }
Implements: Widget
TextArea:placeholder(value: string) → ()
TextArea:readOnly(value: boolean?) → boolean?
TextArea:append(value: string) → ()
TextArea:onChange(callback: ((text: string) → ())) → ()

SearchBox

type SearchBox = Widget & { placeholder: ((self: SearchBox, value: string) → ()), onChange: ((self: SearchBox, callback: ((text: string) → ())) → ()), onSubmit: ((self: SearchBox, callback: ((text: string) → ())) → ()) }
Implements: Widget
SearchBox:placeholder(value: string) → ()
SearchBox:onChange(callback: ((text: string) → ())) → ()
SearchBox:onSubmit(callback: ((text: string) → ())) → ()

CheckBox

type CheckBox = Widget & { checked: ((self: CheckBox, value: boolean?) → boolean?), onChange: ((self: CheckBox, callback: ((checked: boolean) → ())) → ()) }
Implements: Widget
CheckBox:checked(value: boolean?) → boolean?
CheckBox:onChange(callback: ((checked: boolean) → ())) → ()

RadioButton

type RadioButton = Widget & { checked: ((self: RadioButton, value: boolean?) → boolean?), onChange: ((self: RadioButton, callback: ((checked: boolean) → ())) → ()) }
Implements: Widget
RadioButton:checked(value: boolean?) → boolean?
RadioButton:onChange(callback: ((checked: boolean) → ())) → ()

DatePicker

type DatePicker = Widget & { onChange: ((self: DatePicker, callback: ((value: string) → ())) → ()) }
Implements: Widget
DatePicker:onChange(callback: ((value: string) → ())) → ()

Hyperlink

type Hyperlink = Widget & { url: ((self: Hyperlink, value: string?) → string?), onClick: ((self: Hyperlink, callback: (() → ())) → ()) }
Implements: Widget
Hyperlink:url(value: string?) → string?
Hyperlink:onClick(callback: (() → ())) → ()

Choice

type Choice = Widget & { setItems: ((self: Choice, items: { string }) → ()), selected: ((self: Choice, index: number?) → number?), onChange: ((self: Choice, callback: ((value: string) → ())) → ()) }
Implements: Widget
Choice:setItems(items: { string }) → ()
Choice:selected(index: number?) → number?
Choice:onChange(callback: ((value: string) → ())) → ()

ComboBox

type ComboBox = Widget & { setItems: ((self: ComboBox, items: { string }) → ()), selected: ((self: ComboBox, index: number?) → number?), onChange: ((self: ComboBox, callback: ((value: string) → ())) → ()) }
Implements: Widget
ComboBox:setItems(items: { string }) → ()
ComboBox:selected(index: number?) → number?
ComboBox:onChange(callback: ((value: string) → ())) → ()

ListBox

type ListBox = Widget & { setItems: ((self: ListBox, items: { string }) → ()), selected: ((self: ListBox, index: number?) → number?), onChange: ((self: ListBox, callback: ((value: string) → ())) → ()) }
Implements: Widget
ListBox:setItems(items: { string }) → ()
ListBox:selected(index: number?) → number?
ListBox:onChange(callback: ((value: string) → ())) → ()

TreeNode

type TreeNode = { label: string, children: { TreeNode }? }
label: string
children: { TreeNode }?

TreeView

type TreeView = Widget & { setNodes: ((self: TreeView, nodes: { TreeNode }) → ()), onSelect: ((self: TreeView, callback: ((label: string) → ())) → ()) }
Implements: Widget
TreeView:setNodes(nodes: { TreeNode }) → ()
TreeView:onSelect(callback: ((label: string) → ())) → ()

ProgressBar

type ProgressBar = Widget & { range: ((self: ProgressBar, value: number) → ()), value: ((self: ProgressBar, value: number?) → number?), pulse: ((self: ProgressBar) → ()) }
Implements: Widget
ProgressBar:range(value: number) → ()
ProgressBar:value(value: number?) → number?
ProgressBar:pulse() → ()

Slider

type Slider = Widget & { limits: ((self: Slider, min: number, max: number) → ()), value: ((self: Slider, value: number?) → number?), onChange: ((self: Slider, callback: ((value: number) → ())) → ()) }
Implements: Widget
Slider:limits(min: number, max: number) → ()
Slider:value(value: number?) → number?
Slider:onChange(callback: ((value: number) → ())) → ()

SpinBox

type SpinBox = Widget & { limits: ((self: SpinBox, min: number, max: number) → ()), value: ((self: SpinBox, value: number?) → number?), onChange: ((self: SpinBox, callback: ((value: number) → ())) → ()) }
Implements: Widget
SpinBox:limits(min: number, max: number) → ()
SpinBox:value(value: number?) → number?
SpinBox:onChange(callback: ((value: number) → ())) → ()

Tabs

type Tabs = Widget & { add: ( self: Tabs, title: string, child: Layout | Spacer | Widget ) → (), selected: ((self: Tabs, index: number?) → number?), onSelect: ((self: Tabs, callback: ((index: number) → ())) → ()) }
Implements: Widget
Tabs:add(title: string, child: Layout | Spacer | Widget) → ()
Tabs:selected(index: number?) → number?
Tabs:onSelect(callback: ((index: number) → ())) → ()

TableColumn

type TableColumn = { key: string, title: string, width: number?, expand: boolean? }
key: string
title: string
width: number?
expand: boolean?

TableRow

type TableRow = { [string]: string | number | boolean }

TableView

type TableView = Widget & { setColumns: ((self: TableView, columns: { TableColumn }) → ()), setRows: ((self: TableView, rows: { TableRow }) → ()), setFilter: ((self: TableView, filter: string) → ()) }
Implements: Widget
TableView:setColumns(columns: { TableColumn }) → ()
TableView:setRows(rows: { TableRow }) → ()
TableView:setFilter(filter: string) → ()

ListView

type ListView = Widget & { setColumns: ((self: ListView, columns: { TableColumn }) → ()), setRows: ((self: ListView, rows: { TableRow }) → ()), setFilter: ((self: ListView, filter: string) → ()), selected: ((self: ListView, index: number?) → number?), onSelect: ((self: ListView, callback: ((index: number) → ())) → ()) }
Implements: Widget
ListView:setColumns(columns: { TableColumn }) → ()
ListView:setRows(rows: { TableRow }) → ()
ListView:setFilter(filter: string) → ()
ListView:selected(index: number?) → number?
ListView:onSelect(callback: ((index: number) → ())) → ()

Panel

type Panel = Widget & { add: ((self: Panel, child: Layout | Spacer | Widget) → ()) }
Implements: Widget
Panel:add(child: Layout | Spacer | Widget) → ()

ScrollArea

type ScrollArea = Widget & { add: ((self: ScrollArea, child: Layout | Spacer | Widget) → ()) }
Implements: Widget
ScrollArea:add(child: Layout | Spacer | Widget) → ()

GroupBox

type GroupBox = Widget & { add: ((self: GroupBox, child: Layout | Spacer | Widget) → ()) }
Implements: Widget
GroupBox:add(child: Layout | Spacer | Widget) → ()

StaticLine

Implements: Widget

InfoBar

type InfoBar = Widget & { showMessage: ( self: InfoBar, message: string, kind: "info" | "warning" | "error"? ) → (), dismiss: ((self: InfoBar) → ()) }
Implements: Widget
InfoBar:showMessage(message: string, kind: "info" | "warning" | "error"?) → ()
InfoBar:dismiss() → ()

Splitter

type Splitter = Widget & { setPanes: ( self: Splitter, first: Layout | Spacer | Widget, second: Layout | Spacer | Widget ) → (), position: ((self: Splitter, value: number?) → number?) }
Implements: Widget
Splitter:setPanes(first: Layout | Spacer | Widget, second: Layout | Spacer | Widget) → ()
Splitter:position(value: number?) → number?

StatusBar

type StatusBar = { setText: ((self: StatusBar, text: string, field: number?) → ()), setFields: ((self: StatusBar, widths: { number }) → ()) }
StatusBar:setText(text: string, field: number?) → ()
StatusBar:setFields(widths: { number }) → ()

Menu

type Menu = { add: ((self: Menu, action: Action?) → ()), addSeparator: ((self: Menu) → ()) }
Menu:add(action: Action?) → ()
Menu:addSeparator() → ()

MenuBar

type MenuBar = { add: ((self: MenuBar, menu: Menu) → ()) }
MenuBar:add(menu: Menu) → ()

Action

type Action = {}

Bitmap

type Bitmap = {}

FileDialogOptions

type FileDialogOptions = { title: string?, filter: string? }
title: string?
filter: string?

DirectoryDialogOptions

type DirectoryDialogOptions = { title: string? }
title: string?

MessageBoxOptions

type MessageBoxOptions = { title: string?, message: string?, kind: "info" | "warning" | "error"? }
title: string?
message: string?
kind: "info" | "warning" | "error"?

TextEntryDialogOptions

type TextEntryDialogOptions = { title: string?, message: string?, value: string? }
title: string?
message: string?
value: string?

NumberEntryDialogOptions

type NumberEntryDialogOptions = { title: string?, message: string?, value: number?, min: number?, max: number? }
title: string?
message: string?
value: number?
min: number?
max: number?

ChoiceDialogOptions

type ChoiceDialogOptions = { title: string?, message: string?, choices: { string } }
title: string?
message: string?
choices: { string }

AboutDialogOptions

type AboutDialogOptions = { name: string?, version: string?, description: string? }
name: string?
version: string?
description: string?

ProgressDialogOptions

type ProgressDialogOptions = { title: string?, message: string?, value: number?, max: number? }
title: string?
message: string?
value: number?
max: number?