On Sat, 2002-07-20 at 13:26, Rich Kilmer wrote:
> Apologize in advance...this is a LONG response...

no no that's great!
 
> Well I have not looked at this in a bit.  I wrote this in an evening as
> more of a proof of concept than anything else.  Sean Russell had ideas
> that appear to follow yours more closely than mine.  BTW:  I have
> uploaded the source that enabled this to:
> http://www.infoether.com/ruby/utopia.zip

great, i'll check it out.
 
> First, execution control is not necessarily passed off by starting the
> controller.  It does not have to be, but since Ruby's threading is
> non-native, most UI toolkits kind of take over. This could be addressed
> (without adding native threads to Ruby)...such as having another process
> that presents and controls the UI and communicates to the Ruby process
> via a socket...like X.

that occured to me too. are there other means to this, or is socket
communication the only way. probably the best way anyway, though.

> Second, I have no problem with binding an object-attribute in as a
> binding to a widget.  Like:
> 
> class MyClass
>   attr_accessor :avar
>   def initialize
>     @avar = ""
>   end
> end
> myobj = MyClass.new
> 
> myLabel(:label).text(bind_object(myobj, :avar))
> 
> and when the method bind_object is called it aliases the original avar=
> method with one that updates the Label's 'text' attribute (and vice
> versa).

that's great. i didn't see this in utopia. i was able to manage the same
thing with my miterbox (my rouge like project). but that's a one way
street. the difficulty here is going back the other way: when the bound
variable changes the gui gets automagically updated. i found this to be,
as of yet, an insurmountable problem.
 
> Or to more align with your example below:
> 
> myobj.extend Utopia::WidgetBinder
> myobj.bind_widget(mainWindow.myLabel, :avar)

this notation really works? cool!
 
> Well, in amrita, the hierarchy of the data has to match the hierarchy of
> the (HTML) UI.
...
> OK, now give me syntax for the example I presented on the the rubyide
> site.  Your idea of mixing the widget capability into the object is
> cool, but how the widgets get organized on the screen needs to be
> defined somewhere.
...
> I am not hung up on anything done so far (it was a quick hack), but we
> need to see semi-realistic examples with windows, menus, events, etc.

i apologize, my example was not a good one for as showing off the amrita
concepts as applied to guis. i will work on doing so and post it.
 
also keep in mind, i don't have all this fully flushed out. i have just
been spending a lot of time on the gui abstraction problem, because i
have a big bad old gui forntend to write. given its breadth i have been
trying to create an abstraction to facilitate this and make my life
easier in the long run. hence the source of these concepts. hopefully i
can work it out rather then having to hand code all of it.

in that light, just how far a long is utopia? is there any development
activty going on with it or related to the Rouge project? what's the
status there?

thanks for the in depth reponse!


~transami

  _(")_  dobee dobee do...
   \v/  
   ^ ^