UIObjectView.st
changeset 1451 f7c591a04f00
parent 1438 9255d2e6226b
child 1500 36c0b4b268b8
equal deleted inserted replaced
1450:a113274a03bf 1451:f7c591a04f00
   657     "invert outline of an object or collection of objects
   657     "invert outline of an object or collection of objects
   658     "
   658     "
   659     |wasClipped|
   659     |wasClipped|
   660 
   660 
   661     (wasClipped := clipChildren) ifTrue:[
   661     (wasClipped := clipChildren) ifTrue:[
   662 	self clippedByChildren:(clipChildren := false).
   662         self clippedByChildren:(clipChildren := false).
   663     ].
   663     ].
   664 
   664 
   665     self xoring:[
   665     self xoring:[
   666 	|p|
   666         |p|
   667 
   667 
   668 	something isCollection ifTrue:[
   668         something isCollection ifTrue:[
   669 	    something do:[:v |
   669             something do:[:v |
   670 		|p|
   670                 |p|
   671 
   671 
   672 		p := v originRelativeTo:self.
   672                 p := v originRelativeTo:self.
   673 		self displayRectangle:(p extent:v extent).
   673                 self displayRectangle:(p extent:v extent).
   674 	    ].
   674             ].
   675 	] ifFalse:[
   675         ] ifFalse:[
   676 	    |p|
   676             |p|
   677 
   677 
   678 	    p := something originRelativeTo:self.
   678             p := something originRelativeTo:self.
   679 	    self displayRectangle:(p extent:something extent).
   679             self displayRectangle:(p extent:something extent).
   680 	]
   680         ]
   681     ].
   681     ].
   682 
   682 
   683     wasClipped ifTrue:[
   683     wasClipped ifTrue:[
   684 	self clippedByChildren:(clipChildren := true).
   684         self clippedByChildren:(clipChildren := true).
   685     ].
   685     ].
   686 
       
   687 !
   686 !
   688 
   687 
   689 minSetOfSuperViews:setOfViews
   688 minSetOfSuperViews:setOfViews
   690 
   689 
   691     setOfViews isCollection ifFalse:[
   690     setOfViews isCollection ifFalse:[
   774     "
   773     "
   775     self startObjectMove:(self selection) at:aPoint.
   774     self startObjectMove:(self selection) at:aPoint.
   776     movedObject := self selection.
   775     movedObject := self selection.
   777 
   776 
   778     movedObject isCollection ifFalse:[
   777     movedObject isCollection ifFalse:[
   779 	movedObject := Array with:movedObject
   778         movedObject := Array with:movedObject
   780     ].
   779     ].
   781     self setSelection:nil withRedraw:true.
   780     self setSelection:nil withRedraw:true.
   782 
   781 
   783     moveDelta := movedObject collect:[:aView|
   782     moveDelta := movedObject collect:[:aView|
   784 	aPoint - aView computeOrigin
   783         aPoint - aView computeOrigin
   785     ].
   784     ].
   786     self transaction:#move objects:movedObject do:[:v|self createUndoLayout:v].
   785     self transaction:#move objects:movedObject do:[:v|self createUndoLayout:v].
   787     self invertOutlineOf:movedObject.
   786     self invertOutlineOf:movedObject.
   788 !
   787 !
   789 
   788 
   892 
   891 
   893     self invertOutlineOf:object.
   892     self invertOutlineOf:object.
   894     p := (self alignToGrid:aPoint) - (resizeData delta).
   893     p := (self alignToGrid:aPoint) - (resizeData delta).
   895 
   894 
   896     self perform:(resizeData selector) with:object with:p.
   895     self perform:(resizeData selector) with:object with:p.
       
   896     Delay waitForSeconds:0.05.
       
   897     [self sensor hasExposeEventFor:nil] whileTrue:[
       
   898         self windowGroup processExposeEvents
       
   899     ].
       
   900 
   897    "/ object geometryLayout:(object geometryLayout).
   901    "/ object geometryLayout:(object geometryLayout).
   898     self invertOutlineOf:object
   902     self invertOutlineOf:object
   899 
       
   900 !
   903 !
   901 
   904 
   902 endResize
   905 endResize
   903     "cleanup after object resize
   906     "cleanup after object resize
   904     "
   907     "
   913 
   916 
   914     "/ handle any expose events (for subcomponents) before
   917     "/ handle any expose events (for subcomponents) before
   915     "/ redrawing the handles.
   918     "/ redrawing the handles.
   916     Delay waitForSeconds:0.05.
   919     Delay waitForSeconds:0.05.
   917     [self sensor hasExposeEventFor:nil] whileTrue:[
   920     [self sensor hasExposeEventFor:nil] whileTrue:[
   918 	self windowGroup processExposeEvents
   921         self windowGroup processExposeEvents
   919     ].
   922     ].
   920 
   923 
   921     self setSelection:object withRedraw:true.
   924     self setSelection:object withRedraw:true.
   922     self layoutChanged.
   925     self layoutChanged.
   923 !
   926 !
   929 
   932 
   930     object := self singleSelection.
   933     object := self singleSelection.
   931     self actionResize:object selector:b.
   934     self actionResize:object selector:b.
   932 
   935 
   933     self transaction:#resize selectionDo:[:aView|
   936     self transaction:#resize selectionDo:[:aView|
   934 	self createUndoLayout:aView
   937         self createUndoLayout:aView
   935     ].
   938     ].
   936     self setSelection:nil withRedraw:true.
   939     self setSelection:nil withRedraw:true.
   937 
   940 
   938     motionAction  := [:movePoint | self doDragResize:movePoint].
   941     motionAction  := [:movePoint | self doDragResize:movePoint].
   939     releaseAction := [self endResize].
   942     releaseAction := [self endResize].
   946     "perform action on each handle of a component
   949     "perform action on each handle of a component
   947     "
   950     "
   948     |dlt ext|
   951     |dlt ext|
   949 
   952 
   950     dlt := (aComponent originRelativeTo:self) - aComponent origin.
   953     dlt := (aComponent originRelativeTo:self) - aComponent origin.
   951     dlt := dlt - (3@3).
   954     dlt := dlt - (4@4).
   952     ext := 6@6.
   955     ext := 8@8.
   953 
   956 
   954     self class handlesOf:aComponent do:[:pnt :wht |
   957     self class handlesOf:aComponent do:[:pnt :wht |
   955         aTwoArgAction value:(pnt + dlt extent:ext) value:wht
   958         aTwoArgAction value:(pnt + dlt extent:ext) value:wht
   956     ]
   959     ]
   957 !
   960 !
  1417         ^ self
  1420         ^ self
  1418     ].
  1421     ].
  1419 
  1422 
  1420     damages := OrderedCollection new.
  1423     damages := OrderedCollection new.
  1421 
  1424 
  1422 
       
  1423     self forEach:something do:[:v|
  1425     self forEach:something do:[:v|
  1424         self handlesOf:v do:[:aDamage :wht|
  1426         self handlesOf:v do:[:aDamage :wht|
  1425             damages reverseDo:[:el|
  1427             damages reverseDo:[:el|
  1426                 (el intersects:aDamage) ifTrue:[
  1428                 (el intersects:aDamage) ifTrue:[
  1427                     damages removeIdentical:el.
  1429                     damages removeIdentical:el.
  1439     damages do:[:el| self clearRectangle:el ].
  1441     damages do:[:el| self clearRectangle:el ].
  1440 
  1442 
  1441     (oldClipped := clipChildren) ifFalse:[
  1443     (oldClipped := clipChildren) ifFalse:[
  1442         self clippedByChildren:(clipChildren := true)
  1444         self clippedByChildren:(clipChildren := true)
  1443     ].
  1445     ].
  1444     self subViews do:[:v| self recursiveRepair:damages startIn:v].
  1446     self subViews reverseDo:[:v| self recursiveRepair:damages startIn:v].
  1445 
  1447 
  1446     oldClipped ~~ clipChildren ifTrue:[
  1448     oldClipped ~~ clipChildren ifTrue:[
  1447         self clippedByChildren:(clipChildren := oldClipped).
  1449         self clippedByChildren:(clipChildren := oldClipped).
  1448     ].
  1450     ].
  1449     device sync.
  1451     device sync.