From: Tom Sawyer Date: 2002-07-21T05:01:24+09:00 Subject: RE: GUI's and the Rouge, Part II 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/ ^ ^