@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?