Indeed, one of the more beautiful bits of Etoys...
Regards, Gary
Sent from my iPad
On 27 Aug 2010, at 10:29, stephane ducasse stephane.duca...@free.fr wrote:
gary?
Do you have surgeon knife?
Because I do not see why slider need to depend on that wonderfully designed
code.
use: cachedSelector orMakeModelSelectorFor: selectorBody in: selectorBlock
| selector |
model ifNil: [^ nil].
cachedSelector ifNil:
[Make up selector from slotname if any
selector := (slotName ifNil: [selectorBody]
ifNotNil:
[slotName , selectorBody]) asSymbol.
(model class canUnderstand: selector) ifFalse:
[(self confirm: 'Shall I compile a null
response for'
, Character cr asString
, model class name ,
'' , selector)
ifFalse: [self halt].
model class compile: (String streamContents:
[:s | selector
keywords doWithIndex:
[:k :i | s nextPutAll: k , ' arg' , i printString].
s cr;
nextPutAll: 'Automatically generated null response.'.
s cr;
nextPutAll: 'Add code below for appropriate behavior...'.])
classified: 'input
events'
notifying: nil]]
ifNotNil:
[selector := cachedSelector].
^ selectorBlock value: selector
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project