Synit is an experiment in applying pervasive reactivity and object capabilities to the System Layer of an operating system for personal computers. https://synit.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

63 lines
1.5 KiB

version 1 .
; Assertion. Creates a space for Widget/Parent/Attribute assertions etc.
Window = <window @id WidgetId @space #!any> .
; Assertions, within the space created as part of a Window assertion.
Widget = <widget @id WidgetId @type WidgetType> .
Parent = <parent @id WidgetId @parentId WidgetId @order SortKey> .
Root = <root @id WidgetId @order SortKey> .
Attribute = <attribute @id WidgetId @key symbol @value any> .
; Assertion
WidgetInstance = <widget-instance @id WidgetId @instance #!any> .
; Assertion
Touch = <touch @widget WidgetId @touchId any> .
; Message
Click = <click @widget WidgetId> .
; Assertion
State = <state @widget WidgetId @key any @value any> .
; Assertion. Marks the window as closeable.
WindowCloseable = <window-closeable> .
; Assertion.
WindowTitle = <window-title @title string> .
; Data types
WidgetId = any .
SortKey = @double double / @string string .
WidgetType = NodeType / LeafType .
NodeType =
/ =column
/ =row
.
LeafType =
/ =blank
/ =text
/ =slider
/ =image
/ =icon
.
Color = <rgba @red double @green double @blue double @alpha double> .
; Box-and-glue layout
Fill = @fixed double / <fill @weight int @rank int> .
Sizing = <sizing @ideal double @stretch Fill @shrink Fill> .
BoxSize = <box-size @horizontal Sizing @vertical Sizing> .
; Scrollable panels
VisibleScrollRange =
/ =none
/ @visibleScrollRange <visible-scroll-range
<min @minId WidgetId @minSortKey SortKey>
<max @maxId WidgetId @maxSortKey SortKey>>
.