--- a/DevWorkst.st Mon Jan 13 22:43:42 1997 +0100
+++ b/DevWorkst.st Mon Jan 13 22:57:22 1997 +0100
@@ -3684,6 +3684,8 @@
!DeviceWorkstation methodsFor:'interactive queries'!
originFromUser:extent
+ "{ Pragma: +optSpace }"
+
"let user specify a rectangles origin on the screen, return the rectangle.
Start with initialRectangle.
Can be used for dragging operations."
@@ -3705,45 +3707,45 @@
origin := self pointerPosition.
root noClipByChildren.
- root foreground:Color black background:Color white.
+ root foreground:blackColor background:whiteColor.
root xoring:[
- |left right top bottom newOrigin newCorner p|
-
- rect := origin extent:extent.
- root displayRectangle:rect.
-
- self
- grabPointerIn:root id
- withCursor:curs id
- pointerMode:#async
- keyboardMode:#sync
- confineTo:nil.
-
- [self leftButtonPressed] whileTrue:[
- newOrigin := self pointerPosition.
-
- (newOrigin ~= origin) ifTrue:[
- root displayRectangle:rect.
-
- self
- grabPointerIn:root id
- withCursor:curs id
- pointerMode:#async
- keyboardMode:#sync
- confineTo:nil.
-
- rect := newOrigin extent:extent.
- root displayRectangle:rect.
- self disposeButtonEventsFor:nil.
- self flush.
- origin := newOrigin.
- ] ifFalse:[
- Processor yield
- ]
- ].
- root displayRectangle:rect.
- self ungrabPointer.
+ |left right top bottom newOrigin newCorner p|
+
+ rect := origin extent:extent.
+ root displayRectangle:rect.
+
+ self
+ grabPointerIn:root id
+ withCursor:curs id
+ pointerMode:#async
+ keyboardMode:#sync
+ confineTo:nil.
+
+ [self leftButtonPressed] whileTrue:[
+ newOrigin := self pointerPosition.
+
+ (newOrigin ~= origin) ifTrue:[
+ root displayRectangle:rect.
+
+ self
+ grabPointerIn:root id
+ withCursor:curs id
+ pointerMode:#async
+ keyboardMode:#sync
+ confineTo:nil.
+
+ rect := newOrigin extent:extent.
+ root displayRectangle:rect.
+ self disposeButtonEventsFor:nil.
+ self flush.
+ origin := newOrigin.
+ ] ifFalse:[
+ Processor yield
+ ]
+ ].
+ root displayRectangle:rect.
+ self ungrabPointer.
].
self ungrabPointer.
@@ -3760,9 +3762,13 @@
"
Display originFromUser:200@200
"
+
+ "Modified: 13.1.1997 / 22:53:01 / cg"
!
pointFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a point on the screen (by pressing the left button)"
^ self pointFromUserShowing:(Cursor crossHair).
@@ -3770,9 +3776,13 @@
"
Display pointFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:05 / cg"
!
pointFromUserShowing:aCursor
+ "{ Pragma: +optSpace }"
+
"let user specify a point on the screen (by pressing leftButton).
Show aCursor while waiting."
@@ -3780,7 +3790,7 @@
self ungrabPointer.
self grabPointerIn:(self rootWindowId) withCursor:((aCursor on:self) id)
- pointerMode:#async keyboardMode:#sync confineTo:nil.
+ pointerMode:#async keyboardMode:#sync confineTo:nil.
activePointerGrab := rootView.
"
@@ -3802,9 +3812,13 @@
Display pointFromUserShowing:(Cursor origin)
Display pointFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:07 / cg"
!
rectangleFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a rectangle in the screen, return the rectangle"
|origin|
@@ -3822,9 +3836,13 @@
"
Display rectangleFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:10 / cg"
!
rectangleFromUser:initialRectangle
+ "{ Pragma: +optSpace }"
+
"let user specify a rectangle on the screen, return the rectangle.
Start with initialRectangle.
A helper for rectangleFromUser; can also be used for resizing operations."
@@ -3841,77 +3859,77 @@
origin := initialRectangle origin.
root noClipByChildren.
- root foreground:Color black background:Color white.
+ root foreground:blackColor background:whiteColor.
root xoring:[
- |left right top bottom newOrigin newCorner p curs|
-
- corner := origin.
- rect := origin corner:corner.
- root displayRectangle:rect.
-
- self
- grabPointerIn:root id
- withCursor:curs1 id
- pointerMode:#async
- keyboardMode:#sync
- confineTo:nil.
-
- "
- just in case; wait for button to be down ...
- "
- [self leftButtonPressed] whileFalse:[Processor yield].
-
- [self leftButtonPressed] whileTrue:[
- left := initialRectangle origin x.
- top := initialRectangle origin y.
- right := initialRectangle corner x.
- bottom := initialRectangle corner y.
-
- p := self pointerPosition.
- p x < initialRectangle left ifTrue:[
- p y < initialRectangle top ifTrue:[
- curs := Cursor topLeft.
- left := p x.
- top := p y.
- ] ifFalse:[
- curs := Cursor bottomLeft.
- left := p x.
- bottom := p y
- ]
- ] ifFalse:[
- p y < initialRectangle top ifTrue:[
- curs := Cursor topRight.
- right := p x.
- top := p y
- ] ifFalse:[
- curs := Cursor bottomRight.
- right := p x.
- bottom := p y
- ]
- ].
-
- newOrigin := left @ top.
- newCorner := right @ bottom.
-
- ((newOrigin ~= origin) or:[newCorner ~= corner]) ifTrue:[
- root displayRectangle:rect.
-
- self grabPointerIn:root id withCursor:curs id
- pointerMode:#async keyboardMode:#sync confineTo:nil.
-
- origin := newOrigin.
- corner := newCorner.
- rect := origin corner:corner.
- root displayRectangle:rect.
- self disposeButtonEventsFor:nil.
- self flush.
- ] ifFalse:[
- Processor yield
- ]
- ].
- root displayRectangle:rect.
- self ungrabPointer.
+ |left right top bottom newOrigin newCorner p curs|
+
+ corner := origin.
+ rect := origin corner:corner.
+ root displayRectangle:rect.
+
+ self
+ grabPointerIn:root id
+ withCursor:curs1 id
+ pointerMode:#async
+ keyboardMode:#sync
+ confineTo:nil.
+
+ "
+ just in case; wait for button to be down ...
+ "
+ [self leftButtonPressed] whileFalse:[Processor yield].
+
+ [self leftButtonPressed] whileTrue:[
+ left := initialRectangle origin x.
+ top := initialRectangle origin y.
+ right := initialRectangle corner x.
+ bottom := initialRectangle corner y.
+
+ p := self pointerPosition.
+ p x < initialRectangle left ifTrue:[
+ p y < initialRectangle top ifTrue:[
+ curs := Cursor topLeft.
+ left := p x.
+ top := p y.
+ ] ifFalse:[
+ curs := Cursor bottomLeft.
+ left := p x.
+ bottom := p y
+ ]
+ ] ifFalse:[
+ p y < initialRectangle top ifTrue:[
+ curs := Cursor topRight.
+ right := p x.
+ top := p y
+ ] ifFalse:[
+ curs := Cursor bottomRight.
+ right := p x.
+ bottom := p y
+ ]
+ ].
+
+ newOrigin := left @ top.
+ newCorner := right @ bottom.
+
+ ((newOrigin ~= origin) or:[newCorner ~= corner]) ifTrue:[
+ root displayRectangle:rect.
+
+ self grabPointerIn:root id withCursor:curs id
+ pointerMode:#async keyboardMode:#sync confineTo:nil.
+
+ origin := newOrigin.
+ corner := newCorner.
+ rect := origin corner:corner.
+ root displayRectangle:rect.
+ self disposeButtonEventsFor:nil.
+ self flush.
+ ] ifFalse:[
+ Processor yield
+ ]
+ ].
+ root displayRectangle:rect.
+ self ungrabPointer.
].
self ungrabPointer.
@@ -3928,9 +3946,13 @@
"
Display rectangleFromUser:(100@100 corner:300@300)
"
+
+ "Modified: 13.1.1997 / 22:53:12 / cg"
!
topviewFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a view on the screen; if the selected view is
not an ST/X view, nil is returned.
Otherwise, the topview is returned."
@@ -3939,16 +3961,20 @@
v := self viewFromUser.
v notNil ifTrue:[
- v := v topView
+ v := v topView
].
^ v
"
Display topviewFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:15 / cg"
!
viewFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a view on the screen; if the selected view is
not an ST/X view, nil is returned.
This returns the view being clicked in, which is not always a topView.
@@ -3965,9 +3991,13 @@
v := Display viewFromUser.
v notNil ifTrue:[v topView] ifFalse:[nil]
"
+
+ "Modified: 13.1.1997 / 22:53:17 / cg"
!
viewIdFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a view on the screen, return its window id.
This works even for non smalltalk views.
This returns the id of the view being clicked in,
@@ -3980,6 +4010,7 @@
"
"Created: 18.9.1995 / 23:07:20 / claus"
+ "Modified: 13.1.1997 / 22:53:20 / cg"
! !
!DeviceWorkstation methodsFor:'keyboard mapping'!
@@ -4224,9 +4255,13 @@
!DeviceWorkstation methodsFor:'misc'!
beep
+ "{ Pragma: +optSpace }"
+
"output an audible beep or bell"
Stdout nextPut:(Character bell)
+
+ "Modified: 13.1.1997 / 22:56:13 / cg"
!
buffered
@@ -4252,9 +4287,13 @@
!
ringBell
+ "{ Pragma: +optSpace }"
+
"alias for beep; for ST-80 compatibility"
self beep
+
+ "Modified: 13.1.1997 / 22:56:02 / cg"
!
setInputFocusTo:aWindowId
@@ -4262,18 +4301,27 @@
!
sync
- "send all buffered drawing to the display.
- OBSOLETE: please use #flush for ST-80 compatibility"
+ "{ Pragma: +optSpace }"
+
+ "send all buffered drawing to the display and wait until its processed/drawn.
+ See also #flush, which does not wait.
+ ST-80 seems to only support flush."
self flush
+
+ "Modified: 13.1.1997 / 22:55:44 / cg"
!
synchronizeOutput
+ "{ Pragma: +optSpace }"
+
"send all buffered drawing to the display.
OBSOLETE: please use #flush for ST-80 compatibility."
self obsoleteMethodWarning:'use #flush'.
^ self flush
+
+ "Modified: 13.1.1997 / 22:53:44 / cg"
!
unBuffered
@@ -4838,6 +4886,6 @@
!DeviceWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/Attic/DevWorkst.st,v 1.155 1997-01-13 21:43:42 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/Attic/DevWorkst.st,v 1.156 1997-01-13 21:57:22 cg Exp $'
! !
DeviceWorkstation initialize!
--- a/DeviceWorkstation.st Mon Jan 13 22:43:42 1997 +0100
+++ b/DeviceWorkstation.st Mon Jan 13 22:57:22 1997 +0100
@@ -3684,6 +3684,8 @@
!DeviceWorkstation methodsFor:'interactive queries'!
originFromUser:extent
+ "{ Pragma: +optSpace }"
+
"let user specify a rectangles origin on the screen, return the rectangle.
Start with initialRectangle.
Can be used for dragging operations."
@@ -3705,45 +3707,45 @@
origin := self pointerPosition.
root noClipByChildren.
- root foreground:Color black background:Color white.
+ root foreground:blackColor background:whiteColor.
root xoring:[
- |left right top bottom newOrigin newCorner p|
-
- rect := origin extent:extent.
- root displayRectangle:rect.
-
- self
- grabPointerIn:root id
- withCursor:curs id
- pointerMode:#async
- keyboardMode:#sync
- confineTo:nil.
-
- [self leftButtonPressed] whileTrue:[
- newOrigin := self pointerPosition.
-
- (newOrigin ~= origin) ifTrue:[
- root displayRectangle:rect.
-
- self
- grabPointerIn:root id
- withCursor:curs id
- pointerMode:#async
- keyboardMode:#sync
- confineTo:nil.
-
- rect := newOrigin extent:extent.
- root displayRectangle:rect.
- self disposeButtonEventsFor:nil.
- self flush.
- origin := newOrigin.
- ] ifFalse:[
- Processor yield
- ]
- ].
- root displayRectangle:rect.
- self ungrabPointer.
+ |left right top bottom newOrigin newCorner p|
+
+ rect := origin extent:extent.
+ root displayRectangle:rect.
+
+ self
+ grabPointerIn:root id
+ withCursor:curs id
+ pointerMode:#async
+ keyboardMode:#sync
+ confineTo:nil.
+
+ [self leftButtonPressed] whileTrue:[
+ newOrigin := self pointerPosition.
+
+ (newOrigin ~= origin) ifTrue:[
+ root displayRectangle:rect.
+
+ self
+ grabPointerIn:root id
+ withCursor:curs id
+ pointerMode:#async
+ keyboardMode:#sync
+ confineTo:nil.
+
+ rect := newOrigin extent:extent.
+ root displayRectangle:rect.
+ self disposeButtonEventsFor:nil.
+ self flush.
+ origin := newOrigin.
+ ] ifFalse:[
+ Processor yield
+ ]
+ ].
+ root displayRectangle:rect.
+ self ungrabPointer.
].
self ungrabPointer.
@@ -3760,9 +3762,13 @@
"
Display originFromUser:200@200
"
+
+ "Modified: 13.1.1997 / 22:53:01 / cg"
!
pointFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a point on the screen (by pressing the left button)"
^ self pointFromUserShowing:(Cursor crossHair).
@@ -3770,9 +3776,13 @@
"
Display pointFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:05 / cg"
!
pointFromUserShowing:aCursor
+ "{ Pragma: +optSpace }"
+
"let user specify a point on the screen (by pressing leftButton).
Show aCursor while waiting."
@@ -3780,7 +3790,7 @@
self ungrabPointer.
self grabPointerIn:(self rootWindowId) withCursor:((aCursor on:self) id)
- pointerMode:#async keyboardMode:#sync confineTo:nil.
+ pointerMode:#async keyboardMode:#sync confineTo:nil.
activePointerGrab := rootView.
"
@@ -3802,9 +3812,13 @@
Display pointFromUserShowing:(Cursor origin)
Display pointFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:07 / cg"
!
rectangleFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a rectangle in the screen, return the rectangle"
|origin|
@@ -3822,9 +3836,13 @@
"
Display rectangleFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:10 / cg"
!
rectangleFromUser:initialRectangle
+ "{ Pragma: +optSpace }"
+
"let user specify a rectangle on the screen, return the rectangle.
Start with initialRectangle.
A helper for rectangleFromUser; can also be used for resizing operations."
@@ -3841,77 +3859,77 @@
origin := initialRectangle origin.
root noClipByChildren.
- root foreground:Color black background:Color white.
+ root foreground:blackColor background:whiteColor.
root xoring:[
- |left right top bottom newOrigin newCorner p curs|
-
- corner := origin.
- rect := origin corner:corner.
- root displayRectangle:rect.
-
- self
- grabPointerIn:root id
- withCursor:curs1 id
- pointerMode:#async
- keyboardMode:#sync
- confineTo:nil.
-
- "
- just in case; wait for button to be down ...
- "
- [self leftButtonPressed] whileFalse:[Processor yield].
-
- [self leftButtonPressed] whileTrue:[
- left := initialRectangle origin x.
- top := initialRectangle origin y.
- right := initialRectangle corner x.
- bottom := initialRectangle corner y.
-
- p := self pointerPosition.
- p x < initialRectangle left ifTrue:[
- p y < initialRectangle top ifTrue:[
- curs := Cursor topLeft.
- left := p x.
- top := p y.
- ] ifFalse:[
- curs := Cursor bottomLeft.
- left := p x.
- bottom := p y
- ]
- ] ifFalse:[
- p y < initialRectangle top ifTrue:[
- curs := Cursor topRight.
- right := p x.
- top := p y
- ] ifFalse:[
- curs := Cursor bottomRight.
- right := p x.
- bottom := p y
- ]
- ].
-
- newOrigin := left @ top.
- newCorner := right @ bottom.
-
- ((newOrigin ~= origin) or:[newCorner ~= corner]) ifTrue:[
- root displayRectangle:rect.
-
- self grabPointerIn:root id withCursor:curs id
- pointerMode:#async keyboardMode:#sync confineTo:nil.
-
- origin := newOrigin.
- corner := newCorner.
- rect := origin corner:corner.
- root displayRectangle:rect.
- self disposeButtonEventsFor:nil.
- self flush.
- ] ifFalse:[
- Processor yield
- ]
- ].
- root displayRectangle:rect.
- self ungrabPointer.
+ |left right top bottom newOrigin newCorner p curs|
+
+ corner := origin.
+ rect := origin corner:corner.
+ root displayRectangle:rect.
+
+ self
+ grabPointerIn:root id
+ withCursor:curs1 id
+ pointerMode:#async
+ keyboardMode:#sync
+ confineTo:nil.
+
+ "
+ just in case; wait for button to be down ...
+ "
+ [self leftButtonPressed] whileFalse:[Processor yield].
+
+ [self leftButtonPressed] whileTrue:[
+ left := initialRectangle origin x.
+ top := initialRectangle origin y.
+ right := initialRectangle corner x.
+ bottom := initialRectangle corner y.
+
+ p := self pointerPosition.
+ p x < initialRectangle left ifTrue:[
+ p y < initialRectangle top ifTrue:[
+ curs := Cursor topLeft.
+ left := p x.
+ top := p y.
+ ] ifFalse:[
+ curs := Cursor bottomLeft.
+ left := p x.
+ bottom := p y
+ ]
+ ] ifFalse:[
+ p y < initialRectangle top ifTrue:[
+ curs := Cursor topRight.
+ right := p x.
+ top := p y
+ ] ifFalse:[
+ curs := Cursor bottomRight.
+ right := p x.
+ bottom := p y
+ ]
+ ].
+
+ newOrigin := left @ top.
+ newCorner := right @ bottom.
+
+ ((newOrigin ~= origin) or:[newCorner ~= corner]) ifTrue:[
+ root displayRectangle:rect.
+
+ self grabPointerIn:root id withCursor:curs id
+ pointerMode:#async keyboardMode:#sync confineTo:nil.
+
+ origin := newOrigin.
+ corner := newCorner.
+ rect := origin corner:corner.
+ root displayRectangle:rect.
+ self disposeButtonEventsFor:nil.
+ self flush.
+ ] ifFalse:[
+ Processor yield
+ ]
+ ].
+ root displayRectangle:rect.
+ self ungrabPointer.
].
self ungrabPointer.
@@ -3928,9 +3946,13 @@
"
Display rectangleFromUser:(100@100 corner:300@300)
"
+
+ "Modified: 13.1.1997 / 22:53:12 / cg"
!
topviewFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a view on the screen; if the selected view is
not an ST/X view, nil is returned.
Otherwise, the topview is returned."
@@ -3939,16 +3961,20 @@
v := self viewFromUser.
v notNil ifTrue:[
- v := v topView
+ v := v topView
].
^ v
"
Display topviewFromUser
"
+
+ "Modified: 13.1.1997 / 22:53:15 / cg"
!
viewFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a view on the screen; if the selected view is
not an ST/X view, nil is returned.
This returns the view being clicked in, which is not always a topView.
@@ -3965,9 +3991,13 @@
v := Display viewFromUser.
v notNil ifTrue:[v topView] ifFalse:[nil]
"
+
+ "Modified: 13.1.1997 / 22:53:17 / cg"
!
viewIdFromUser
+ "{ Pragma: +optSpace }"
+
"let user specify a view on the screen, return its window id.
This works even for non smalltalk views.
This returns the id of the view being clicked in,
@@ -3980,6 +4010,7 @@
"
"Created: 18.9.1995 / 23:07:20 / claus"
+ "Modified: 13.1.1997 / 22:53:20 / cg"
! !
!DeviceWorkstation methodsFor:'keyboard mapping'!
@@ -4224,9 +4255,13 @@
!DeviceWorkstation methodsFor:'misc'!
beep
+ "{ Pragma: +optSpace }"
+
"output an audible beep or bell"
Stdout nextPut:(Character bell)
+
+ "Modified: 13.1.1997 / 22:56:13 / cg"
!
buffered
@@ -4252,9 +4287,13 @@
!
ringBell
+ "{ Pragma: +optSpace }"
+
"alias for beep; for ST-80 compatibility"
self beep
+
+ "Modified: 13.1.1997 / 22:56:02 / cg"
!
setInputFocusTo:aWindowId
@@ -4262,18 +4301,27 @@
!
sync
- "send all buffered drawing to the display.
- OBSOLETE: please use #flush for ST-80 compatibility"
+ "{ Pragma: +optSpace }"
+
+ "send all buffered drawing to the display and wait until its processed/drawn.
+ See also #flush, which does not wait.
+ ST-80 seems to only support flush."
self flush
+
+ "Modified: 13.1.1997 / 22:55:44 / cg"
!
synchronizeOutput
+ "{ Pragma: +optSpace }"
+
"send all buffered drawing to the display.
OBSOLETE: please use #flush for ST-80 compatibility."
self obsoleteMethodWarning:'use #flush'.
^ self flush
+
+ "Modified: 13.1.1997 / 22:53:44 / cg"
!
unBuffered
@@ -4838,6 +4886,6 @@
!DeviceWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.155 1997-01-13 21:43:42 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.156 1997-01-13 21:57:22 cg Exp $'
! !
DeviceWorkstation initialize!