But if you change 0.5 to 10, it works, strangely enough.

But still, start does not work for the dynamic creation of objects.

On Sat, May 23, 2009 at 3:24 PM, Devyn Cairns <[email protected]> wrote:
> First of all, you have to change the "50%" to 0.50. Otherwise it doesn't work.
> After that, it still reports 0,0. On Linux GTK.
>
> On Fri, May 22, 2009 at 11:06 PM, Satoshi Asakawa <[email protected]> wrote:
>> Hi Devyn,
>>
>> Thanks for the reply. :)
>>
>> Does the following snippet work well on your pc/mac?
>>
>> Shoes.app do
>>   o = oval :top => "50%", :left => "50%"
>>   start do
>>     para "oval is at (#{o.top}, #{o.left})"
>>   end
>> end
>>
>> -- ashbb
>>
>> On Sat, May 23, 2009 at 2:10 PM, Devyn Cairns <[email protected]>
>> wrote:
>>>
>>> Oh, well read the manual: Shoes thinks of percentages in decimals from
>>> 0.0 to 1.0 (0% to 100%). 50% = 0.5 in Shoes.
>>>
>>> On Fri, May 22, 2009 at 10:10 AM, Satoshi Asakawa <[email protected]>
>>> wrote:
>>> > Hi _why,
>>> >
>>> > Thank you for the explanation.
>>> > I understood to need `start` block!
>>> >
>>> > But still a bit confusing for the following behavior. :(
>>> >
>>> > Shoes.app do
>>> >   o = oval :top => "50%", :left => "50%"
>>> >   start do
>>> >     para "oval is at (#{o.top}, #{o.left})"
>>> >   end
>>> > end
>>> >
>>> > Run the above snippet, it didn't work and I got the error
>>> > on Shoes console window:
>>> >
>>> > Error in C:/Program Files/Common Files/Shoes/0.r1134/lib/shoes.rb line
>>> > 394 :
>>> > can't convert String into Integer
>>> >
>>> > Then replaced "50%" to 0.5.
>>> > It works but displayed `oval is at(0, 0)`.
>>> >
>>> > Then again replaced "50%" to 100.
>>> > It works and displayed `oval is at(100, 100)`.
>>> >
>>> > Umm... I'm using Windows XP and Shoes 2 (0.r1134).
>>> >
>>> > Regards,
>>> > ashbb
>>> >
>>> >
>>> > On Sat, May 23, 2009 at 12:50 AM, _why <[email protected]> wrote:
>>> >>
>>> >> On Fri, May 22, 2009 at 12:04:35PM +0000, Ehsanul Hoque wrote:
>>> >> > Ahh, well I did expect it to work like that, hmmm... It still
>>> >> > could be justified I suppose, it's really upto _why whether
>>> >> > it's a bug, or just a "feature", just how it works.
>>> >>
>>> >> Until the image is drawn, you can't really know `top` and `left`.
>>> >>
>>> >> For instance, let's say you're using percentages:
>>> >>
>>> >>  Shoes.app do
>>> >>    o = oval :top => "50%", :left => "50%", :radius => 20
>>> >>    para "Oval is at (#{oval.top}, #{oval.left})"
>>> >>  end
>>> >>
>>> >> Until we compute the window size, the coordinates can't be shown.
>>> >> So, what you do is get the coordinates in the `start` block:
>>> >>
>>> >>  Shoes.app do
>>> >>    o = oval :top => "50%", :left => "50%", :radius => 20
>>> >>    start do
>>> >>      para "Oval is at (#{oval.top}, #{oval.left})"
>>> >>    end
>>> >>  end
>>> >>
>>> >> Because the start block runs after the first paint.
>>> >>
>>> >> It still feels like a bug, but I'm not sure if I want to recompute
>>> >> every slot each time a new element is added. I will probably have
>>> >> `top` and `left` and `width` and so on return exceptions if you
>>> >> try to use them before the window is painted... I don't know.
>>> >>
>>> >> _why
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>>    ~devyn
>>
>>
>
>
>
> --
>    ~devyn
>



-- 
    ~devyn

Reply via email to