How to integrate Connectors with User Scripting/Etoys?

Karl Ramberg karl.ramberg at chello.se
Wed Aug 8 18:47:34 UTC 2001


Ned Konz wrote:
> 
> I had the idea that my users could benefit by using User Scripting with my
> Connectors. I'd like to allow the connection of user scripts to the following
> events:
> 
> (any Morph)
> connection added
> connection removed
> 
> (ConnectorMorphs)
> one end disconnected
> one end connected
> 
> There are also some connection-related attributes that I'd like to make
> available to scripts:
> 
> (any Morph)
> connections
> (possibly incomingConnections, outgoingConnections if connections are viewed
> as being directed in some way)
> 
> (ConnectorMorphs)
> fromMorph
> toMorph
> 
> I have some questions (note that I'm still kinda vague on the connection
> between EToys and user scripting in general):
> 
> * First, the events that are able to activate a script seem to be limited in
> ScriptInstantiation, both in the menu provided in presentScriptStatusPopup
> and in status: . There appears to be no way to extend these other than
> editing ScriptInstantiation.
> 
> * There is no way (apparent to me) to use a different (extended) version of
> ScriptInstantiation, because its name is hard-wired in
> Player>>scriptInstantiationForSelector: . I don't know enough about the
> scripting system to know whether subclasses of Player would make any sense
> here (the class name Player is also hard-coded in several places). How would
> one go about extending the events that could trigger a script?

I added a keyDown trigger a while back but then the whole system changed
and I never
got around to make it work all the way. Let's hope it helps :-)
http://swiki.gsug.org:8080/sqfixes/1476.html

> 
> * Collections seem to be awkward in the eToy world. I've only found the
> Playfield 'collection' protocol so far, which uses a (single?) cursor for
> access to a collection. Doesn't the existence of a single cursor get in the
> way if there are multiple clients of a collection? How should I present the
> collection of connections to a Morph? I could see a user script wanting to
> enumerate over all the connections to a Morph.

I think stuff will change a little here. The etoy is foremost a kids
environment, 
the extended omni-user tools are slowly integrated into the 3.1a image
and are 
not complete yet.
Karl
> 
> Or would this be done best in the textual mode? I suppose methods could be
> added to Player to allow enumeration of connections.
> 
> * It doesn't appear that arguments are sent to scripts on events. This makes
> sense when there are queries for the attributes of the events (like mouse
> position, etc.). But what would be the best way to find out inside a script
> what connection was just connected (assuming an event of connectionAdded)? I
> suppose I could have an attribute called lastConnectionAdded.
> 
> Sorry if this doesn't seem too coherent. I'm trying to put together a system
> where the standard Smalltalk programming tools aren't available (I can't
> imagine having to do tech support on them), but is still programmable in some
> sense.
> 
> --
> Ned Konz
> currently: Stanwood, WA
> email:     ned at bike-nomad.com
> homepage:  http://bike-nomad.com




More information about the Squeak-dev mailing list