Thanks a lot for that! You saved me an hour or more of working on an ugly hack
around this.
I am in fact creating objects dynamically, and the code wasn't working, like
you implied. However, I checked the manual, and it seems like you should use
the start block inside the stack/flow block, and you hand it the stack object
in the start block. Then it works. Here's the example code, which does what I
wanted (the rectangle is drawn to fit in the stack), click to see it work:
Shoes.app do
def omg
stack( :height => 70, :width => 200 ) do
border black
start do |stacky|
stacky.append do
nostroke
fill( rgb( rand, rand, 1.0, 0.5 ) )
rect 0, 0, stacky.width, 25, 10
para "This slot has some height and width, surely?"
end
end
end
end
click { |button,left,top| omg }
end
> Subject: Re: Problem with slot width() and height() methods - Bug?
> From: [email protected]
> To: [email protected]
> Date: Sat, 4 Jul 2009 10:21:39 -0700
>
> Yes, that has come up before. If you are not creating the objects
> dynamically, you can put the height/width detection inside a 'start'
> block:
>
> Shoes.app do
> @s = stack( :height => 75, :width => 200 ) do
> border black
> para "This slot has some height and width, surely?"
> end
> start do
> stack do
> [ "@s.width = #[email protected]}", "@s.style[:width] =
> #[email protected][:width]}",
> "@s.height = #[email protected]}",
> "@s.style[:height] = #[email protected][:height]}" ].each { |x| para x }
> end
> end
> end
>
> On Fri, Jul 3, 2009 at 2:45 PM, Ehsanul Hoque<[email protected]> wrote:
> > I can't seem to retrieve the height or width of a slot. GIves me 0 as the
> > pixel height/width. Not sure if this is a bug in shoes (someone else must've
> > noticed this by now) or just something with my system. Here's the code I've
> > used to test it anyways, both on raisins and policeman, feel free to try it
> > out and see if it gives you the expected result:
> >
> > Shoes.app do
> > @s = stack( :height => 75, :width => 200 ) do
> > border black
> > para "This slot has some height and width, surely?"
> > end
> > stack do
> > [ "@s.width = #[email protected]}", "@s.style[:width] =
> > #[email protected][:width]}",
> > "@s.height = #[email protected]}",
> > "@s.style[:height] = #[email protected][:height]}" ].each { |x| para x }
> > end
> > end
> >
> > ________________________________
> > Insert movie times and more without leaving Hotmail®. See how.
>
>
>
> --
> ~devyn
_________________________________________________________________
Hotmail® has ever-growing storage! Don’t worry about storage limits.
http://windowslive.com/Tutorial/Hotmail/Storage?ocid=TXT_TAGLM_WL_HM_Tutorial_Storage_062009