[Ur] UR/Web SVG (ffi) question
Jonas Mellin
jonas.mellin at his.se
Tue Apr 17 05:53:32 EDT 2018
Thx.
One trial, that I believe should work, is:
open SVG
(*con intPair = int*int*)
fun fst (x: int*int) = x.1
fun snd (x: int*int) = x.2
fun circleDraw(x: int*int): xsvg =
<xml>
<circle cx={show ((fst x)-60)} cy={show ((snd x)-100)} r="10" stroke="red" fill="blue"/>
</xml>
fun proc (x: int*int): transaction page =
x <- source x;
return
<xml>
<body onmousemove={fn ev => set x (ev.ScreenX,ev.SceenY)}>
<div style="width:800; heigth:800">
<dyn signal={x<-signal x;
return
<xml>
<svg width="800" height="800">
{circleDraw x}
</svg>
</xml>}/>
</div>
</body>
</xml>
fun main(): transaction page =
let
val a = (0,0)
in
xml <- proc a;
return
<xml>
<head>
Banzai
</head>
{xml}
</xml>
end
But I get:
Can't unify record constructors
Have:
[ScreenX = int, ScreenY = int, ClientX = int, ClientY = int,
CtrlKey = bool, ShiftKey = bool, AltKey = bool, MetaKey = bool,
Button = mouseButton]
Need: <UNIF:U140::{Type}> ++ [ScreenX = int, SceenY = int]
On " <body onmousemove={fn ev => set x (ev.ScreenX,ev.SceenY)}>"
From: Ur [mailto:ur-bounces at impredicative.com] On Behalf Of Adam Chlipala
Sent: den 16 april 2018 13:29
To: ur at impredicative.com
Subject: Re: [Ur] UR/Web SVG (ffi) question
I have not read all of your code, but I did spot the problem behind the first compiler error message, which I think all web developers would agree is problematic. (I.e., it isn't just a question of a fussy Ur/Web type system.)
On 04/16/2018 04:58 AM, Jonas Mellin wrote:
[Jonas Mellin] <<< collapsed answer >>>
Notice that your [proc] code includes a <body> tag, but then you nest it within another <body> tag!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20180417/c5b217db/attachment.html>
More information about the Ur
mailing list