A view's x and y position are always relative to its parent view,
whether you are setting or getting them. Only a view on the canvas
is relative to the canvas. See getAttributeRelative and
setAttributeRelative. They can be used to translate x and y to
another coordinate system (such as the canvas). Once you get your
head wrapped around it, relative coordinate systems are easier to
deal with [they must be -- the display hardware has to deal in
absolute coordinates, so why else would graphics systems have a layer
of abstraction to create relative coordinate systems? They would be
much faster without them. :)]
On 2006-04-06 07:33 PDT, William Krick wrote:
> I was wondering if anyone had any thoughts on "x" vs "absolutex"...
>>>> -----Original Message-----
> From: William Krick [mailto:wkrick at eio-online.com]
> Sent: Thursday, February 09, 2006 3:05 PM
> To: laszlo-user at openlaszlo.org> Subject: RE: [Laszlo-user] syntax problem using variables in a
> view's x
> and y
>>> Ok, that makes sense now.
>> It *is* a little strange though in that it isn't symmetrical...
>> When I query a view for its x or y, it gives me its position
> relative to the canvas, but when I set a view's x or y, I'm setting
> the its position relative to its parent.
>> I think it would make more sense if there were two types of x
> positions..
>> view.x and view.absolutex
>> view.x is always the x relative to the view's parent.
>> view.absolutex is always the x relative to the canvas.
>> Obviously, this all applies to y as well.
>>>>>> -----Original Message-----
> From: Dan Stowell [mailto:dstowell at laszlosystems.com]
> Sent: Thursday, February 09, 2006 2:47 PM
> To: William Krick; laszlo-user at openlaszlo.org> Subject: RE: [Laszlo-user] syntax problem using variables in a
> view's x
> and y
>>>> But shouldn't it still work with parent.x+5 anyway?
>> Not quite. parent.x refers to the parent's x position relative to the
> canvas. In your example, the first red view has an x of 0 in the
> canvas.
> The interior view is constrained to have an x of parent.x + 5, which
> works out to 5 in this case. The second red view has an x of 100
> relative to the canvas. The interior view therefore has an x of 105.
> Since it is being place 105 pixels from the left of the second red
> view,
> the views are not working as desired. Here's a modified version:
>> <canvas width="600" height="400">
>> <simplelayout axis="x"/>
>> <view name="first"
> bgcolor="red" width="100" height="100">
> <view bgcolor="black"
> width="${ parent.width - 10 }" height="$
> { parent.height -
> 10 }"
> x="5" y="5"/>
> </view>
>> <view name="second"
> bgcolor="red" width="100" height="100">
> <view bgcolor="black"
> width="${ parent.width - 10 }" height="$
> { parent.height -
> 10 }"
> x="5" y="5"/>
> </view>
>> </canvas>
>>>> <canvas width="600" height="400">
>>> <simplelayout axis="x"/>
>>>>>> <view bgcolor="red" width="100" height="100">
>>> <view bgcolor="black"
>>> width="${parent.width-10}"
>>> height="${parent.height-10}"
>>> x="${parent.x+5}"
>>> y="${parent.y+5}"/>
>>> </view>
>>>>>> <view bgcolor="red" width="100" height="100">
>>> <view bgcolor="black"
>>> width="${parent.width-10}"
>>> height="${parent.height-10}"
>>> x="${parent.x+5}"
>>> y="${parent.y+5}"/>
>>> </view>
>>>>>> </canvas>
>>> _______________________________________________
>>> Laszlo-user mailing list
>>>Laszlo-user at openlaszlo.org>>>http://www.openlaszlo.org/mailman/listinfo/laszlo-user>>>>>> Dan Stowell
>> Software Engineer
>> Laszlo Studios
>>>>>>>>> Dan Stowell
> Software Engineer
> Laszlo Studios
>>>>> _______________________________________________
> Laszlo-user mailing list
>Laszlo-user at openlaszlo.org>http://www.openlaszlo.org/mailman/listinfo/laszlo-user>>>> _______________________________________________
> Laszlo-user mailing list
>Laszlo-user at openlaszlo.org>http://www.openlaszlo.org/mailman/listinfo/laszlo-user