diff -r 0ead717f3e35 -r 1df0525eeec9 UIPainterView.st --- a/UIPainterView.st Tue Apr 14 13:33:49 1998 +0200 +++ b/UIPainterView.st Tue Apr 14 13:34:55 1998 +0200 @@ -187,10 +187,10 @@ coll := self minSetOfSuperViews:(self selection). coll notNil ifTrue:[ - self select:nil. +"/ self select:nil. specs := coll collect:[:aView| self fullSpecFor:aView ]. self setSelection:specs. - treeView selection: sel +"/ treeView selection: sel ]. @@ -284,71 +284,69 @@ ^ nil ]. - treeView cvsSetupListDo:[ - aSpecificationOrList isCollection ifTrue:[ - paste := aSpecificationOrList + aSpecificationOrList isCollection ifTrue:[ + paste := aSpecificationOrList + ] ifFalse:[ + paste := Array with:aSpecificationOrList + ]. + (frame := self singleSelection) isNil ifTrue:[ + frame := self + ]. + self selection:nil. + + newSel := OrderedCollection new. + builder := UIBuilder new isEditing:true. + + className notNil ifTrue:[ + builder applicationClass:(self resolveName:className) + ]. + + keepLayout ifFalse:[ + pasteOffset := 0@0. + + aPointOrNil isNil ifTrue:[ + pasteOrigin := self sensor mousePoint. + pasteOrigin := device translatePoint:pasteOrigin + from:device rootView id + to:frame id. ] ifFalse:[ - paste := Array with:aSpecificationOrList - ]. - (frame := self singleSelection) isNil ifTrue:[ - frame := self - ]. - self setSelection:nil withRedraw:true. + pasteOrigin := device translatePoint:aPointOrNil + from:self id + to:frame id. + ] + ]. + keepLayout ifFalse:[ + bounds := Rectangle origin:0@0 extent:(frame bounds extent) + ]. - newSel := OrderedCollection new. - builder := UIBuilder new isEditing:true. + paste do:[:aSpec| + |view| - className notNil ifTrue:[ - builder applicationClass:(self resolveName:className) - ]. + view := self addSpec:aSpec builder:builder in:frame. keepLayout ifFalse:[ - pasteOffset := 0@0. - - aPointOrNil isNil ifTrue:[ - pasteOrigin := self sensor mousePoint. - pasteOrigin := device translatePoint:pasteOrigin - from:device rootView id - to:frame id. - ] ifFalse:[ - pasteOrigin := device translatePoint:aPointOrNil - from:self id - to:frame id. - ] + (bounds containsPoint:pasteOrigin) ifFalse:[ + self moveObject:view to:pasteOffset. + ] ifTrue:[ + self moveObject:view to:pasteOrigin + pasteOffset. + ]. + pasteOffset := pasteOffset + 4 ]. - keepLayout ifFalse:[ - bounds := Rectangle origin:0@0 extent:(frame bounds extent) - ]. - - paste do:[:aSpec| - |view| - - view := self addSpec:aSpec builder:builder in:frame. + view realize. + newSel add:view. + ]. - keepLayout ifFalse:[ - (bounds containsPoint:pasteOrigin) ifFalse:[ - self moveObject:view to:pasteOffset. - ] ifTrue:[ - self moveObject:view to:pasteOrigin + pasteOffset. - ]. - pasteOffset := pasteOffset + 4 - ]. - view realize. - newSel add:view. - ]. + self withinTransaction:#paste objects:newSel do:[ + undoHistory addUndoSelector:#undoCreate: + withArgs:(newSel collect:[:v|(self propertyOfView:v) identifier]) + ]. - self withinTransaction:#paste objects:newSel do:[ - undoHistory addUndoSelector:#undoCreate: - withArgs:(newSel collect:[:v|(self propertyOfView:v) identifier]) - ]. + self realizeAllSubViews. + newSel do:[:v| v raise]. + inputView raise. + self elementChangedSize:frame. - self realizeAllSubViews. - newSel do:[:v| v raise]. - inputView raise. - self elementChangedSize:frame. - - newSel size == 1 ifTrue:[newSel := newSel at:1]. - ]. + newSel size == 1 ifTrue:[newSel := newSel at:1]. ^ newSel ! @@ -956,22 +954,18 @@ setupFromSpec:specOrSpecArray |spec builder| - treeView cvsSetupListDo:[ - self removeAll. - spec := UISpecification from:specOrSpecArray. - builder := UIBuilder new isEditing:true. - "set applicationClass, in order that subspecifications may be resolved" - className notNil ifTrue:[ - builder applicationClass:(self resolveName:className). - ]. - spec window setupView:self topView for:builder. - self addSpec:(spec component) builder:builder in:self. - self realizeAllSubViews. - inputView raise. - treeView setAttributesFromWindowSpec:(spec window). - ] - - "Modified: / 5.2.1998 / 11:42:39 / stefan" + self removeAll. + spec := UISpecification from:specOrSpecArray. + builder := UIBuilder new isEditing:true. + "set applicationClass, in order that subspecifications may be resolved" + className notNil ifTrue:[ + builder applicationClass:(self resolveName:className). + ]. + spec window setupView:self topView for:builder. + self addSpec:(spec component) builder:builder in:self. + self realizeAllSubViews. + inputView raise. + treeView setAttributesFromWindowSpec:(spec window). ! treeView:aTreeView @@ -1064,11 +1058,9 @@ removeAll "remove all objects and properties " - treeView cvsEventsDisabledDo:[ - self select:nil. - treeView removeAll. - self removeUndoHistory. - ] + self select:nil. + treeView removeAll. + self removeUndoHistory. ! ! !UIPainterView methodsFor:'searching'!