'From Squeak 2.3 of January 14, 1999 on 18 June 2003 at 11:39:32 pm'! !Object methodsFor: 'ThingLab showing' stamp: 'sumim 6/18/2003 17:42'! showDeleted: window | rect | rect _ self enclosingFrame. window fill: rect fillColor: Color white. self showPicture: window. window reverse: rect! ! !DisplayRegionHack methodsFor: 'display medium protocol' stamp: 'sumim 6/18/2003 17:48'! highLight ^ Color quickHighLight: Display depth! ! !ThingLabObject methodsFor: 'fields' stamp: 'sumim 6/18/2003 23:38'! storeOn: aStream "like Object.storeOn: but doesn't save state for trailing spare fields" self class isVariable ifTrue: [^super storeOn: aStream]. aStream nextPut: $(. aStream nextPutAll: self class name, ' basicNew'. 1 to: self realFieldDescriptions size do: [:i | aStream nextPutAll: ' instVarAt: '; store: i; nextPutAll: ' put: ('; store: (self instVarAt: i); nextPutAll: ');']. aStream nextPutAll: ' yourself)'! ! !Expression methodsFor: 'moving' stamp: 'sumim 6/18/2003 21:27'! instancePaths: cl "override default behavior to allow for changing classes of holes. Also, make the extent and interior centers invisible to pointing. Assume no merges within expressions." | strm subPaths prefix | cl==Point ifTrue: [^Array with: #(center) asPath]. (self isMemberOf: cl) ifTrue: [^Array with: EmptyPath]. strm _ WriteStream on: (Array new: 10). self fieldDescriptions do: [:f | f isPart ifTrue: [subPaths _ (self perform: f name) instancePaths: cl. prefix _ f asPath. subPaths do: [:p | strm nextPut: (prefix concat: p)]]]. ^strm contents! !