--- 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'!