14 lines
1.5 KiB
Plaintext
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;}
|
|
}
|