Hey all,

I'm obviously using Shoes in a way it wasn't intended because by app isn't
acting like I'm expecting!

So, I have a loop that does some computation on each iteration and updates a
progress bar as it goes. Once the loop is done, the window closes.

The problem is, the progress bar doesn't update inside my loop, it only
updates once my code has finished, and because I'm closing the window right
after, I don't really see much.

So what's the right thing to do in this situation? Do I somehow instruct the
progress bar to draw immediately, or is there a way to let execution return
to the main internal loop (whatever you call it) which will yield my next
iteration as a callback? I feel like I should be using something like
times(n) {}, or each([1, 2, 3]) {} that allows the UI to be drawn after each
iteration, but I don't see anything in the manual that does this...

Many thanks!

Example code:

Shoes.app do
  stack do
    @p = progress(:width => 1.0, :margin => 0.1)
    start do
      10.times do |i|
        sleep 0.5
        @p.fraction = (i + 1.0) / 10.0
      end
      close
    end
  end
end

Reply via email to