Files

14 lines
1.5 KiB
Plaintext

external interface WebStudioCanvasPlacement revision "interface:org.quixos.web-studio.canvas-placement@1";
external interface WebStudioPlaceable revision "interface:org.quixos.web-studio.placeable@1";
external atom WebStudioCanvas id "atom:org.quixos.web-studio:canvas";
external atom WebStudioCanvasPlacement id "atom:org.quixos.web-studio:canvas-placement";
type Layout = record { x:double; y:double; width:double; height:double; z:int32; };
interface WebStudioCanvas id "interface:org.quixos.web-studio.canvas" revision "interface:org.quixos.web-studio.canvas@1" {
static operation create id "canvas:create" : string -> atom-ref<WebStudioCanvas> {call id "canvas:create:call" execution transaction;}
static operation root id "canvas:root" : unit -> atom-ref<WebStudioCanvas> {call id "canvas:root:call" execution transaction;}
queryable value name id "canvas:name" : string {get id "canvas:name:get" execution snapshot;set id "canvas:name:set" execution transaction;}
queryable relation placements id "canvas:placements" : many-unique interface WebStudioCanvasPlacement {resolve id "canvas:placements:resolve" execution snapshot;}
operation createAndPlace id "canvas:create-and-place" : record {name:string;presentation:string;layout:Layout;} -> atom-ref<WebStudioCanvasPlacement> {call id "canvas:create-and-place:call" execution transaction;}
operation place id "canvas:place" : record {subject:interface-ref<WebStudioPlaceable>; presentation:string; layout:Layout;} -> atom-ref<WebStudioCanvasPlacement> {call id "canvas:place:call" execution transaction;}
}