.
--- a/Color.st Thu Aug 31 06:43:20 1995 +0200
+++ b/Color.st Thu Sep 07 14:31:44 1995 +0200
@@ -26,7 +26,7 @@
COPYRIGHT (c) 1992 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Color.st,v 1.32 1995-08-31 04:42:24 claus Exp $
+$Header: /cvs/stx/stx/libview/Color.st,v 1.33 1995-09-07 12:28:41 claus Exp $
'!
!Color class methodsFor:'documentation'!
@@ -47,7 +47,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Color.st,v 1.32 1995-08-31 04:42:24 claus Exp $
+$Header: /cvs/stx/stx/libview/Color.st,v 1.33 1995-09-07 12:28:41 claus Exp $
"
!
@@ -1129,6 +1129,41 @@
]
! !
+!Color methodsFor:'converting'!
+
+literalArrayEncoding
+ "encode myself as an array.
+ The encoding is:
+ (#Color redPart greenPart bluePart)
+ "
+
+ ^ Array
+ with:self class name asSymbol
+ with:redVal
+ with:greenVal
+ with:blueVal
+
+ "
+ Color new fromLiteralArrayEncoding:#(#Color 50 25 25)
+ (Color red:25 green:30 blue:70) literalArrayEncoding
+ "
+!
+
+fromLiteralArrayEncoding:encoding
+ "read my values from an encoding.
+ The encoding is supposed to be of the form:
+ (#Color redPart greenPart bluePart)
+ This is the reverse operation to #literalArrayEncoding."
+
+ redVal := encoding at:2.
+ greenVal := encoding at:3.
+ blueVal := encoding at:4.
+
+ "
+ Color new fromLiteralArrayEncoding:#(#Color 50 25 25)
+ "
+! !
+
!Color methodsFor:'copying'!
postCopy
--- a/DMedium.st Thu Aug 31 06:43:20 1995 +0200
+++ b/DMedium.st Thu Sep 07 14:31:44 1995 +0200
@@ -22,7 +22,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/DMedium.st,v 1.11 1995-08-24 20:38:01 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DMedium.st,v 1.12 1995-09-07 12:28:50 claus Exp $
'!
!DisplayMedium class methodsFor:'documentation'!
@@ -43,7 +43,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/DMedium.st,v 1.11 1995-08-24 20:38:01 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DMedium.st,v 1.12 1995-09-07 12:28:50 claus Exp $
"
!
@@ -239,6 +239,13 @@
!DisplayMedium methodsFor:'GC access'!
+gc
+ "ST-80 compatibility;
+ in STX a displayMedium is its own graphicsContext"
+
+ ^ self
+!
+
clipRect:aRectangle
"set the drawing clip-rectangle"
--- a/DRootView.st Thu Aug 31 06:43:20 1995 +0200
+++ b/DRootView.st Thu Sep 07 14:31:44 1995 +0200
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1988 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/DRootView.st,v 1.11 1995-05-03 00:01:39 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DRootView.st,v 1.12 1995-09-07 12:28:53 claus Exp $
'!
!DisplayRootView class methodsFor:'documentation'!
@@ -42,18 +42,24 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/DRootView.st,v 1.11 1995-05-03 00:01:39 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DRootView.st,v 1.12 1995-09-07 12:28:53 claus Exp $
"
!
documentation
"
this class describes Xs rootWindow (which is the background window and
- must be used for drawing outside of Views i.e. for dragging between Views).
+ can be used for drawing outside of Views i.e. for dragging between Views).
There is one global variable (RootView) which is the Displays rootview.
(this is the default displays rootView; to access other devices' rootView,
- use aDisplay rootView),
+ use someDisplay rootView),
+
+ Instances of myself (i.e. these rootViews) are light-weight views;
+ they do not support events, models etc.
+ They are pure drawing canvases and should be only used for special
+ applications. There may be display systems in which rootViews are not
+ supported/allowed implemented. So be VERY careful when using them.
To draw in the (Displays) root window:
@@ -125,10 +131,20 @@
!
controller
+ "I have no controller"
+
^ nil
!
sensor
+ "I have no sensor"
+
+ ^ nil
+!
+
+windowGroup
+ "I have no windowGroup"
+
^ nil
! !
@@ -164,7 +180,7 @@
ex return
] do:[
self enableButtonEvents.
- device synchronizeOutput.
+ device flush.
].
^ errorOccured
--- a/Depth8Image.st Thu Aug 31 06:43:20 1995 +0200
+++ b/Depth8Image.st Thu Sep 07 14:31:44 1995 +0200
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.27 1995-07-27 23:52:29 claus Exp $
+$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.28 1995-09-07 12:29:01 claus Exp $
'!
!Depth8Image class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.27 1995-07-27 23:52:29 claus Exp $
+$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.28 1995-09-07 12:29:01 claus Exp $
"
!
@@ -982,8 +982,9 @@
"(could use bytes asBag)"
maxIndex := usedColors max + 1.
- ('D8IMAGE: allocating ' , usedColors size printString , ' colors ...') infoPrintNL.
-
+ usedColors size > 20 ifTrue:[
+ ('D8IMAGE: allocating ' , usedColors size printString , ' colors ...') infoPrintNL.
+ ].
"sort by usage"
usageCounts := bytes usageCounts.
--- a/DevDraw.st Thu Aug 31 06:43:20 1995 +0200
+++ b/DevDraw.st Thu Sep 07 14:31:44 1995 +0200
@@ -23,7 +23,7 @@
COPYRIGHT (c) 1992 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/DevDraw.st,v 1.26 1995-08-08 01:23:26 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DevDraw.st,v 1.27 1995-09-07 12:29:07 claus Exp $
'!
!DeviceDrawable class methodsFor:'documentation'!
@@ -44,7 +44,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/DevDraw.st,v 1.26 1995-08-08 01:23:26 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DevDraw.st,v 1.27 1995-09-07 12:29:07 claus Exp $
"
!
@@ -744,16 +744,20 @@
mask:aForm
"set the mask form for drawing"
+ |id|
+
(aForm ~~ mask) ifTrue:[
mask := aForm.
gcId notNil ifTrue:[
(mask == nil) ifTrue:[
device setBitmapMask:nil in:gcId
] ifFalse:[
+ mask := mask on:device.
+ id := mask id.
(mask depth == 1) ifTrue:[
- device setBitmapMask:(aForm id) in:gcId
+ device setBitmapMask:id in:gcId
] ifFalse:[
- device setPixmapMask:(aForm id) in:gcId
+ device setPixmapMask:id in:gcId
]
]
]
--- a/DevWorkst.st Thu Aug 31 06:43:20 1995 +0200
+++ b/DevWorkst.st Thu Sep 07 14:31:44 1995 +0200
@@ -36,7 +36,7 @@
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/DevWorkst.st,v 1.41 1995-08-08 01:23:36 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DevWorkst.st,v 1.42 1995-09-07 12:29:17 claus Exp $
'!
!DeviceWorkstation class methodsFor:'documentation'!
@@ -57,7 +57,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/DevWorkst.st,v 1.41 1995-08-08 01:23:36 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DevWorkst.st,v 1.42 1995-09-07 12:29:17 claus Exp $
"
!
@@ -414,7 +414,9 @@
default
"ST-80 compatibility.
- Return the default screen"
+ Return the default screen. This is typically the first opened
+ Display screen in a session. Use of the global variable Display
+ should vanish over time - replace it by Screen default."
^ DefaultScreen
@@ -426,11 +428,24 @@
default:aDevice
"Set the default screen. This is sent very early during startup,
and assigns the first opened screenDevice to both Display and the default
- screen. Use of the global Display should vanish over time."
+ screen."
DefaultScreen := aDevice
!
+allScreens
+ "EXPERIMENTAL: return a collection of active display devices.
+ Typically, there is only one, Display or Screen current."
+
+ ^ AllScreens
+
+ "
+ Screen allScreens
+ "
+
+ "Modified: 1.9.1995 / 13:38:35 / claus"
+!
+
current
"EXPERIMENTAL: this should return the currently active screen,
that is, the device of the currently executing windowGroup.
@@ -440,7 +455,12 @@
|wg tops v dev|
+ AllScreens size == 1 ifTrue:[
+ ^ AllScreens anElement
+ ].
+
"
+ mhmh - multiple screens are active.
be careful, to not run into an error in case
the current windowGroup got corrupted somehow ...
"
@@ -467,8 +487,10 @@
^ Display
"
- Screen current
+ Screen current
"
+
+ "Modified: 1.9.1995 / 13:40:05 / claus"
! !
!DeviceWorkstation class methodsFor:'error handling'!
--- a/DeviceWorkstation.st Thu Aug 31 06:43:20 1995 +0200
+++ b/DeviceWorkstation.st Thu Sep 07 14:31:44 1995 +0200
@@ -36,7 +36,7 @@
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.41 1995-08-08 01:23:36 claus Exp $
+$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.42 1995-09-07 12:29:17 claus Exp $
'!
!DeviceWorkstation class methodsFor:'documentation'!
@@ -57,7 +57,7 @@
version
"
-$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.41 1995-08-08 01:23:36 claus Exp $
+$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.42 1995-09-07 12:29:17 claus Exp $
"
!
@@ -414,7 +414,9 @@
default
"ST-80 compatibility.
- Return the default screen"
+ Return the default screen. This is typically the first opened
+ Display screen in a session. Use of the global variable Display
+ should vanish over time - replace it by Screen default."
^ DefaultScreen
@@ -426,11 +428,24 @@
default:aDevice
"Set the default screen. This is sent very early during startup,
and assigns the first opened screenDevice to both Display and the default
- screen. Use of the global Display should vanish over time."
+ screen."
DefaultScreen := aDevice
!
+allScreens
+ "EXPERIMENTAL: return a collection of active display devices.
+ Typically, there is only one, Display or Screen current."
+
+ ^ AllScreens
+
+ "
+ Screen allScreens
+ "
+
+ "Modified: 1.9.1995 / 13:38:35 / claus"
+!
+
current
"EXPERIMENTAL: this should return the currently active screen,
that is, the device of the currently executing windowGroup.
@@ -440,7 +455,12 @@
|wg tops v dev|
+ AllScreens size == 1 ifTrue:[
+ ^ AllScreens anElement
+ ].
+
"
+ mhmh - multiple screens are active.
be careful, to not run into an error in case
the current windowGroup got corrupted somehow ...
"
@@ -467,8 +487,10 @@
^ Display
"
- Screen current
+ Screen current
"
+
+ "Modified: 1.9.1995 / 13:40:05 / claus"
! !
!DeviceWorkstation class methodsFor:'error handling'!
--- a/DisplayMedium.st Thu Aug 31 06:43:20 1995 +0200
+++ b/DisplayMedium.st Thu Sep 07 14:31:44 1995 +0200
@@ -22,7 +22,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/DisplayMedium.st,v 1.11 1995-08-24 20:38:01 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DisplayMedium.st,v 1.12 1995-09-07 12:28:50 claus Exp $
'!
!DisplayMedium class methodsFor:'documentation'!
@@ -43,7 +43,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/DisplayMedium.st,v 1.11 1995-08-24 20:38:01 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/DisplayMedium.st,v 1.12 1995-09-07 12:28:50 claus Exp $
"
!
@@ -239,6 +239,13 @@
!DisplayMedium methodsFor:'GC access'!
+gc
+ "ST-80 compatibility;
+ in STX a displayMedium is its own graphicsContext"
+
+ ^ self
+!
+
clipRect:aRectangle
"set the drawing clip-rectangle"
--- a/DisplayRootView.st Thu Aug 31 06:43:20 1995 +0200
+++ b/DisplayRootView.st Thu Sep 07 14:31:44 1995 +0200
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1988 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/DisplayRootView.st,v 1.11 1995-05-03 00:01:39 claus Exp $
+$Header: /cvs/stx/stx/libview/DisplayRootView.st,v 1.12 1995-09-07 12:28:53 claus Exp $
'!
!DisplayRootView class methodsFor:'documentation'!
@@ -42,18 +42,24 @@
version
"
-$Header: /cvs/stx/stx/libview/DisplayRootView.st,v 1.11 1995-05-03 00:01:39 claus Exp $
+$Header: /cvs/stx/stx/libview/DisplayRootView.st,v 1.12 1995-09-07 12:28:53 claus Exp $
"
!
documentation
"
this class describes Xs rootWindow (which is the background window and
- must be used for drawing outside of Views i.e. for dragging between Views).
+ can be used for drawing outside of Views i.e. for dragging between Views).
There is one global variable (RootView) which is the Displays rootview.
(this is the default displays rootView; to access other devices' rootView,
- use aDisplay rootView),
+ use someDisplay rootView),
+
+ Instances of myself (i.e. these rootViews) are light-weight views;
+ they do not support events, models etc.
+ They are pure drawing canvases and should be only used for special
+ applications. There may be display systems in which rootViews are not
+ supported/allowed implemented. So be VERY careful when using them.
To draw in the (Displays) root window:
@@ -125,10 +131,20 @@
!
controller
+ "I have no controller"
+
^ nil
!
sensor
+ "I have no sensor"
+
+ ^ nil
+!
+
+windowGroup
+ "I have no windowGroup"
+
^ nil
! !
@@ -164,7 +180,7 @@
ex return
] do:[
self enableButtonEvents.
- device synchronizeOutput.
+ device flush.
].
^ errorOccured
--- a/GC.st Thu Aug 31 06:43:20 1995 +0200
+++ b/GC.st Thu Sep 07 14:31:44 1995 +0200
@@ -25,7 +25,7 @@
COPYRIGHT (c) 1992 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/GC.st,v 1.18 1995-08-23 17:54:54 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/GC.st,v 1.19 1995-09-07 12:29:28 claus Exp $
'!
!GraphicsContext class methodsFor:'documentation'!
@@ -46,7 +46,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/GC.st,v 1.18 1995-08-23 17:54:54 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/GC.st,v 1.19 1995-09-07 12:29:28 claus Exp $
"
!
@@ -211,7 +211,7 @@
flush
"st-80 compatibility"
- self device synchronizeOutput
+ self device flush
! !
!GraphicsContext methodsFor:'accessing'!
--- a/GraphicsContext.st Thu Aug 31 06:43:20 1995 +0200
+++ b/GraphicsContext.st Thu Sep 07 14:31:44 1995 +0200
@@ -25,7 +25,7 @@
COPYRIGHT (c) 1992 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/GraphicsContext.st,v 1.18 1995-08-23 17:54:54 claus Exp $
+$Header: /cvs/stx/stx/libview/GraphicsContext.st,v 1.19 1995-09-07 12:29:28 claus Exp $
'!
!GraphicsContext class methodsFor:'documentation'!
@@ -46,7 +46,7 @@
version
"
-$Header: /cvs/stx/stx/libview/GraphicsContext.st,v 1.18 1995-08-23 17:54:54 claus Exp $
+$Header: /cvs/stx/stx/libview/GraphicsContext.st,v 1.19 1995-09-07 12:29:28 claus Exp $
"
!
@@ -211,7 +211,7 @@
flush
"st-80 compatibility"
- self device synchronizeOutput
+ self device flush
! !
!GraphicsContext methodsFor:'accessing'!
--- a/ModalBox.st Thu Aug 31 06:43:20 1995 +0200
+++ b/ModalBox.st Thu Sep 07 14:31:44 1995 +0200
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1990 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/ModalBox.st,v 1.26 1995-07-23 02:27:44 claus Exp $
+$Header: /cvs/stx/stx/libview/ModalBox.st,v 1.27 1995-09-07 12:29:39 claus Exp $
'!
!ModalBox class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libview/ModalBox.st,v 1.26 1995-07-23 02:27:44 claus Exp $
+$Header: /cvs/stx/stx/libview/ModalBox.st,v 1.27 1995-09-07 12:29:39 claus Exp $
"
!
@@ -223,6 +223,42 @@
] ifFalse:[
self extent:newExtent.
].
+!
+
+resizeUnderPointer
+ "resize myself to make everything visible, AND possibly change the origin
+ to have the mouse pointer stay within my bounds.
+ This is used for self-resizing enterBoxes, to avoid moving
+ the box away from the cursor."
+
+ |newExtent newLeft delta|
+
+ newExtent := self preferredExtent.
+ newExtent = self extent ifTrue:[^ self].
+
+ shown ifTrue:[
+ delta := width - newExtent x.
+ newLeft := left + delta.
+ (((newLeft @ top) extent:newExtent)
+ containsPoint:device pointerPosition)
+ ifFalse:[newLeft := left].
+ newLeft < 0 ifTrue:[newLeft := 0].
+ newLeft + newExtent x > device width ifTrue:[
+ newLeft := device width - newExtent x
+ ].
+ shadowView notNil ifTrue:[
+ shadowView unrealize.
+ ].
+ self origin:(newLeft @ top) extent:newExtent.
+ shadowView notNil ifTrue:[
+ shadowView realize.
+ self raise.
+ ].
+ ] ifFalse:[
+ self extent:newExtent.
+ ].
+
+ "Modified: 6.9.1995 / 15:31:21 / claus"
! !
!ModalBox methodsFor:'queries'!
--- a/SimpleView.st Thu Aug 31 06:43:20 1995 +0200
+++ b/SimpleView.st Thu Sep 07 14:31:44 1995 +0200
@@ -44,7 +44,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.17 1995-08-29 23:41:32 claus Exp $
+$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.18 1995-09-07 12:29:55 claus Exp $
'!
!SimpleView class methodsFor:'documentation'!
@@ -65,7 +65,7 @@
version
"
-$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.17 1995-08-29 23:41:32 claus Exp $
+$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.18 1995-09-07 12:29:55 claus Exp $
"
!
@@ -757,10 +757,10 @@
defaultStyle:aStyle
"set the view style for new views"
- aStyle ~~ DefaultStyle ifTrue:[
+"/ aStyle ~~ DefaultStyle ifTrue:[
DefaultStyle := aStyle.
self updateAllStyleCaches.
- ]
+"/ ]
"
View defaultStyle:#next. SystemBrowser start
@@ -1482,10 +1482,20 @@
configureX:x y:y width:newWidth height:newHeight
"my size has changed by window manager action"
- |how anyEdge mustRedrawBottomEdge mustRedrawRightEdge|
-
- left := x.
- top := y.
+ |how anyEdge mustRedrawBottomEdge mustRedrawRightEdge p|
+
+ (superView isNil
+ and:[drawableId notNil]) ifTrue:[
+ "/ have to be careful - some window managers (motif) wrap another
+ "/ view around and the reported origin is relative to that.
+ "/ not relative to the screen.
+ p := device translatePoint:0@0 from:drawableId to:device rootWindowId.
+ left := p x.
+ top := p y.
+ ] ifFalse:[
+ left := x.
+ top := y.
+ ].
((width ~~ newWidth) or:[height ~~ newHeight]) ifTrue:[
realized ifFalse:[
width := newWidth.
@@ -2207,9 +2217,11 @@
|w h|
- w := corner x - left.
- h := corner y - top.
+ w := corner x - left + 1.
+ h := corner y - top + 1.
self pixelOrigin:(left @ top) extent:(w @ h)
+
+ "Modified: 31.8.1995 / 18:20:22 / claus"
!
extentFromRelativeExtent:aPoint
@@ -2273,13 +2285,15 @@
!
pixelOrigin:origin corner:corner
- "set the views origin and extent in pixels"
+ "set the views origin and corner in pixels"
|w h|
- w := corner x - origin x.
- h := corner y - origin y.
+ w := corner x - origin x + 1.
+ h := corner y - origin y + 1.
self pixelOrigin:origin extent:(w @ h)
+
+ "Modified: 31.8.1995 / 18:24:16 / claus"
!
setBorderColor
@@ -2387,7 +2401,8 @@
incrementally changed to use this new geometry management."
layout := aLayoutObject.
- originChanged := cornerChanged := extentChanged := true
+"/ originChanged := cornerChanged := extentChanged := true
+ self superViewChangedSize.
!
computeOrigin
@@ -2744,11 +2759,11 @@
insets atAllPut:aNumber.
"force recomputation"
- drawableId isNil ifTrue:[
- originChanged := true
- ] ifFalse:[
- self superViewChangedSize
- ]
+"/ drawableId isNil ifTrue:[
+"/ originChanged := true
+"/ ] ifFalse:[
+ self superViewChangedSize.
+"/ ]
!
horizontalInset:aNumber
@@ -2762,11 +2777,11 @@
insets at:3 put:aNumber.
"force recomputation"
- drawableId isNil ifTrue:[
- originChanged := true
- ] ifFalse:[
- self superViewChangedSize
- ]
+"/ drawableId isNil ifTrue:[
+"/ originChanged := true
+"/ ] ifFalse:[
+ self superViewChangedSize.
+"/ ]
!
verticalInset:aNumber
@@ -2780,11 +2795,11 @@
insets at:4 put:aNumber.
"force recomputation"
- drawableId isNil ifTrue:[
- originChanged := true
- ] ifFalse:[
- self superViewChangedSize
- ]
+"/ drawableId isNil ifTrue:[
+"/ originChanged := true
+"/ ] ifFalse:[
+ self superViewChangedSize.
+"/ ]
!
rightInset:aNumber
@@ -2798,11 +2813,11 @@
insets at:3 put:aNumber.
"force recomputation"
- drawableId isNil ifTrue:[
- originChanged := true
- ] ifFalse:[
- self superViewChangedSize
- ]
+"/ drawableId isNil ifTrue:[
+"/ originChanged := true
+"/ ] ifFalse:[
+ self superViewChangedSize.
+"/ ]
!
leftInset:aNumber
@@ -2816,11 +2831,11 @@
insets at:1 put:aNumber.
"force recomputation"
- drawableId isNil ifTrue:[
- originChanged := true
- ] ifFalse:[
- self superViewChangedSize
- ]
+"/ drawableId isNil ifTrue:[
+"/ originChanged := true
+"/ ] ifFalse:[
+ self superViewChangedSize.
+"/ ]
!
topInset:aNumber
@@ -2834,11 +2849,11 @@
insets at:2 put:aNumber.
"force recomputation"
- drawableId isNil ifTrue:[
- originChanged := true
- ] ifFalse:[
- self superViewChangedSize
- ]
+"/ drawableId isNil ifTrue:[
+"/ originChanged := true
+"/ ] ifFalse:[
+ self superViewChangedSize.
+"/ ]
!
bottomInset:aNumber
@@ -2852,11 +2867,11 @@
insets at:4 put:aNumber.
"force recomputation"
- drawableId isNil ifTrue:[
- originChanged := true
- ] ifFalse:[
+"/ drawableId isNil ifTrue:[
+"/ originChanged := true
+"/ ] ifFalse:[
self superViewChangedSize
- ]
+"/ ]
!
left:aNumber
@@ -2998,7 +3013,10 @@
corner
"return the lower right corner-point (in pixels)"
- ^ (left + width "- 1") @ (top + height "- 1")
+"/ ^ (left + width "- 1") @ (top + height "- 1")
+ ^ (left + width - 1) @ (top + height - 1)
+
+ "Modified: 31.8.1995 / 16:51:40 / claus"
!
bottomInset
@@ -3024,13 +3042,15 @@
right
"return the x position of the right edge (in pixels)"
- ^ left + width "- 1"
+ ^ left + width - 1
+
+ "Modified: 31.8.1995 / 19:31:10 / claus"
!
bottom
"return the y position of the actual bottom edge (in pixels)"
- ^ top + height "- 1"
+ ^ top + height - 1
!
relativeExtent
@@ -3352,9 +3372,7 @@
(realized not or:[groupChange]) ifTrue:[
subViews notNil ifTrue:[
- subViews do:[:subView |
- subView realize
- ]
+ self realizeAllSubViews.
].
].
self setInnerClip.
@@ -3506,13 +3524,23 @@
drawableId notNil ifTrue:[
realized := true.
subViews notNil ifTrue:[
- subViews do:[:aView |
- aView realize
- ]
+ self realizeAllSubViews.
].
device mapView:self id:drawableId iconified:false
atX:left y:top width:width height:height
]
+!
+
+realizeAllSubViews
+ "realize all my subviews"
+
+ subViews notNil ifTrue:[
+ subViews do:[:subView |
+ subView realize
+ ]
+ ].
+
+ "Modified: 5.9.1995 / 23:30:47 / claus"
! !
!SimpleView methodsFor:'startup'!
@@ -4739,6 +4767,18 @@
self addSubView:aView.
aView window:aWindowRectangle viewport:aViewportRectangle
+!
+
+destroySubViews
+ "remove all subviews"
+
+ subViews notNil ifTrue:[
+ subViews copy do:[:aSubView |
+ aSubView destroy.
+ ]
+ ]
+
+ "Modified: 5.9.1995 / 22:35:36 / claus"
! !
!SimpleView methodsFor:'queries'!
--- a/StandardSystemView.st Thu Aug 31 06:43:20 1995 +0200
+++ b/StandardSystemView.st Thu Sep 07 14:31:44 1995 +0200
@@ -14,7 +14,7 @@
instanceVariableNames:'label icon iconView iconLabel
minExtent maxExtent sizeFixed
application windowEventsForApplication'
- classVariableNames: 'DefaultIcon TakeFocusWhenMapped'
+ classVariableNames: 'DefaultIcon TakeFocusWhenMapped IncludeHostNameInLabel'
poolDictionaries:''
category:'Views-Basic'
!
@@ -23,7 +23,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/StandardSystemView.st,v 1.30 1995-07-23 02:28:37 claus Exp $
+$Header: /cvs/stx/stx/libview/StandardSystemView.st,v 1.31 1995-09-07 12:30:15 claus Exp $
'!
!StandardSystemView class methodsFor:'documentation'!
@@ -44,7 +44,7 @@
version
"
-$Header: /cvs/stx/stx/libview/StandardSystemView.st,v 1.30 1995-07-23 02:28:37 claus Exp $
+$Header: /cvs/stx/stx/libview/StandardSystemView.st,v 1.31 1995-09-07 12:30:15 claus Exp $
"
!
@@ -58,6 +58,16 @@
!StandardSystemView class methodsFor:'defaults'!
+includeHostNameInLabel:aBoolean
+ "set/clear the flag which controls if a views label should
+ include the hostname - this is highly useful if you have
+ multiple smalltalks open simultaniously ...
+ This flag is usually set/cleared in your private.rc file;
+ the default is false."
+
+ IncludeHostNameInLabel := aBoolean
+!
+
defaultLabel
"return the default label for views of my kind.
This can be redefined in subclasses or overwritten in
@@ -581,11 +591,21 @@
!
label:aString
- "define the views name in the windows title area"
+ "define the views name in the windows title area.
+ If IncludeHostNameInLabel is true, prepend the hostname
+ (you will appreciate this, if you are working on multiple
+ machines simultanously - as I do ...)"
+
+ |l|
label := aString.
drawableId notNil ifTrue: [
- device setWindowName:aString in:drawableId.
+ IncludeHostNameInLabel == true ifTrue:[
+ l := OperatingSystem getHostName , ': ' , aString.
+ ] ifFalse:[
+ l := aString
+ ].
+ device setWindowName:l in:drawableId.
"
unbuffered - to make it visible right NOW
"
--- a/StdSysV.st Thu Aug 31 06:43:20 1995 +0200
+++ b/StdSysV.st Thu Sep 07 14:31:44 1995 +0200
@@ -14,7 +14,7 @@
instanceVariableNames:'label icon iconView iconLabel
minExtent maxExtent sizeFixed
application windowEventsForApplication'
- classVariableNames: 'DefaultIcon TakeFocusWhenMapped'
+ classVariableNames: 'DefaultIcon TakeFocusWhenMapped IncludeHostNameInLabel'
poolDictionaries:''
category:'Views-Basic'
!
@@ -23,7 +23,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/StdSysV.st,v 1.30 1995-07-23 02:28:37 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/StdSysV.st,v 1.31 1995-09-07 12:30:15 claus Exp $
'!
!StandardSystemView class methodsFor:'documentation'!
@@ -44,7 +44,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/StdSysV.st,v 1.30 1995-07-23 02:28:37 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/StdSysV.st,v 1.31 1995-09-07 12:30:15 claus Exp $
"
!
@@ -58,6 +58,16 @@
!StandardSystemView class methodsFor:'defaults'!
+includeHostNameInLabel:aBoolean
+ "set/clear the flag which controls if a views label should
+ include the hostname - this is highly useful if you have
+ multiple smalltalks open simultaniously ...
+ This flag is usually set/cleared in your private.rc file;
+ the default is false."
+
+ IncludeHostNameInLabel := aBoolean
+!
+
defaultLabel
"return the default label for views of my kind.
This can be redefined in subclasses or overwritten in
@@ -581,11 +591,21 @@
!
label:aString
- "define the views name in the windows title area"
+ "define the views name in the windows title area.
+ If IncludeHostNameInLabel is true, prepend the hostname
+ (you will appreciate this, if you are working on multiple
+ machines simultanously - as I do ...)"
+
+ |l|
label := aString.
drawableId notNil ifTrue: [
- device setWindowName:aString in:drawableId.
+ IncludeHostNameInLabel == true ifTrue:[
+ l := OperatingSystem getHostName , ': ' , aString.
+ ] ifFalse:[
+ l := aString
+ ].
+ device setWindowName:l in:drawableId.
"
unbuffered - to make it visible right NOW
"
--- a/WGroup.st Thu Aug 31 06:43:20 1995 +0200
+++ b/WGroup.st Thu Sep 07 14:31:44 1995 +0200
@@ -13,7 +13,7 @@
Object subclass:#WindowGroup
instanceVariableNames:'views topViews myProcess mySensor isModal previousGroup
focusView focusSequence preEventHook postEventHook'
- classVariableNames:'ActiveGroup ScheduledWindowGroups LeaveSignal'
+ classVariableNames:'LastActiveGroup LastActiveProcess LeaveSignal'
poolDictionaries:''
category:'Interface-Support'
!
@@ -22,7 +22,7 @@
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/WGroup.st,v 1.32 1995-08-24 20:39:10 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/WGroup.st,v 1.33 1995-09-07 12:30:22 claus Exp $
'!
!WindowGroup class methodsFor:'documentation'!
@@ -43,7 +43,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/WGroup.st,v 1.32 1995-08-24 20:39:10 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/WGroup.st,v 1.33 1995-09-07 12:30:22 claus Exp $
"
!
@@ -117,10 +117,6 @@
clas variables:
LeaveSignal if raised, a modal box leaves (closes)
- ActiveGroup the currently active windowGroup
-
- ScheduledWindowGroups -- not currently implemented / used --
-
(*)
due to historic reasons, many views have the controller functionality
@@ -149,7 +145,6 @@
LeaveSignal := (Signal new) mayProceed:true.
LeaveSignal nameClass:self message:#leaveSignal.
LeaveSignal notifierString:'unhandled leave signal'.
- "/ ScheduledWindowGroups := IdentitySet new.
].
"WindowGroup initialize"
@@ -177,22 +172,92 @@
!WindowGroup class methodsFor:'accessing'!
activeGroup
- "return the currently active windowGroup"
+ "return the currently active windowGroup.
+ The returned value may not be fully correct, in case the current process
+ handles multiple windowGroups simulaniously. In this case,
+ the first group is returned (prefering a modal if there is one).
+ (maybe we should return a collection of windowGroups here).
+
+ This method is required to simulate the historic ST-80 single display
+ behavior for Cursor>>show / Cursor>>showWhile and some others (raising the
+ activeGroups topView when modalBoxes appear) on multiple display screens.
+ These methods should change the cursor for the currently
+ active windowGroup ONLY, instead of globally affecting the display or
+ all views
+ (since, depending on the priority, other views could be unaffacted by this
+ and an overall cursor change does not make sense.)"
+
+ |activeProcess groups wg|
+
+ Processor isNil ifTrue:[^ nil]. "/ only during very early init phase
- ^ ActiveGroup
+ activeProcess := Processor activeProcess.
+ " caching the last value ..."
+ activeProcess == LastActive ifTrue:[
+ LastActiveGroup process == LastActive ifTrue:[
+ ^ LastActiveGroup
+ ]
+ ].
+ groups := self scheduledWindowGroups
+ select:[:wg | wg process == activeProcess].
+ groups size == 1 ifTrue:[
+ wg := groups anElement
+ ] ifFalse:[
+ wg := groups detect:[:wg | wg isModal] ifNone:nil.
+ wg isNil ifTrue:[
+ wg := groups anElement
+ ]
+ ].
+ wg notNil ifTrue:[
+ LastActiveProcess := activeProcess.
+ LastActiveGroup := wg.
+ ].
+ ^ wg
+
+ "
+ WindowGroup activeGroup
+ "
+
+ "Modified: 3.9.1995 / 14:49:53 / claus"
!
setActiveGroup:aGroup
"set the currently active windowGroup.
Temporary; do not use this interface, it will vanish."
- ActiveGroup := aGroup
+ LastActiveProcess := Processor activeProcess.
+ LastActiveGroup := aGroup
!
scheduledWindowGroups
- "this is not yet implemented"
+ "return a collection of all windowGroups (possibly for different
+ display devices) which are scheduled (i.e. which have a process
+ running, handling events)."
+
+ |set screens|
+
+ screens := Screen allScreens.
+ screens isNil ifTrue:[^ #()].
+
+ set := IdentitySet new.
+ screens do:[:aDevice |
+ aDevice allViewsDo:[:aView |
+ |wg|
- ^ ScheduledWindowGroups
+ (wg := aView windowGroup) notNil ifTrue:[
+ wg process notNil ifTrue:[
+ set add:wg
+ ]
+ ].
+ ].
+ ].
+ ^ set asArray
+
+ "
+ WindowGroup scheduledWindowGroups
+ "
+
+ "Modified: 1.9.1995 / 13:43:09 / claus"
! !
!WindowGroup methodsFor:'accessing'!
@@ -279,16 +344,20 @@
!
mainGroup
- "return the main windowgroup (that is the top one,
- which is not modal)"
+ "return the main windowgroup
+ (that is the top one, which is not modal).
+ There is one exception to this: the debugger (which is sort of modal)
+ returns itself as mainGroup (not its debuggee)."
- |g|
+ |g prev|
g := self.
- [g notNil and:[g isModal]] whileTrue:[
- g := g previousGroup
+ [g notNil and:[g isModal and:[(prev := g previousGroup) notNil]]] whileTrue:[
+ g := prev
].
^ g
+
+ "Modified: 3.9.1995 / 14:57:20 / claus"
!
sensor:aSensor
@@ -314,6 +383,36 @@
postEventHook := anObject
! !
+!WindowGroup methodsFor:'special accessing'!
+
+setPreviousGroup:aGroup
+ "special entry for debugger:
+ set the windowgroup that started this group (for modal groups only).
+ This is not a public interface."
+
+ previousGroup := aGroup
+
+ "Modified: 3.9.1995 / 14:55:40 / claus"
+!
+
+setModal:aBoolean
+ "special entry for debugger: set the modal flag.
+ Not for public use"
+
+ isModal := aBoolean
+
+ "Modified: 3.9.1995 / 14:51:04 / claus"
+!
+
+setProcess:aProcess
+ "special entry for debugger: set the windowGroups process.
+ Not for public use."
+
+ myProcess := aProcess
+
+ "Modified: 3.9.1995 / 14:25:38 / claus"
+! !
+
!WindowGroup methodsFor:'enumerating'!
allViewsDo:aBlock
@@ -425,6 +524,7 @@
|event ignore|
self processExposeEvents.
+
[mySensor hasEvents] whileTrue:[
event := mySensor nextEvent.
event notNil ifTrue:[
@@ -461,7 +561,8 @@
"/
"/ let the event forward itself
"/
- ActiveGroup := self.
+ LastActiveGroup := self.
+ LastActiveProcess := Processor activeProcess.
event sendEventWithFocusOn:focusView.
]
].
@@ -476,55 +577,55 @@
processExposeEvents
"process only expose events from the damage queue"
- |event view rect oldActive x y w h sensor|
+ |event view rect x y w h sensor thisProcess|
(sensor := mySensor) isNil ifTrue:[^ self].
- oldActive := ActiveGroup.
- [
- [sensor hasDamage] whileTrue:[
- ActiveGroup := self.
- event := sensor nextDamage.
- event notNil ifTrue:[
- (views notNil or:[topViews notNil]) ifTrue:[
- (preEventHook notNil
- and:[preEventHook processEvent:event]) ifFalse:[
- event isDamage ifTrue:[
- view := event view.
- "/
- "/ if the view is no longer shown (iconified or closed),
- "/ this is a leftover event and ignored.
- "/
- view shown ifTrue:[
- rect := event rectangle.
- x := rect left.
- y := rect top.
- w := rect width.
- h := rect height.
- ActiveGroup := self.
- view transformation notNil ifTrue:[
- view deviceExposeX:x y:y width:w height:h
- ] ifFalse:[
- view exposeX:x y:y width:w height:h
- ]
+ thisProcess := Processor activeProcess.
+
+ [sensor hasDamage] whileTrue:[
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
+
+ event := sensor nextDamage.
+ event notNil ifTrue:[
+ (views notNil or:[topViews notNil]) ifTrue:[
+ (preEventHook notNil
+ and:[preEventHook processEvent:event]) ifFalse:[
+ event isDamage ifTrue:[
+ view := event view.
+ "/
+ "/ if the view is no longer shown (iconified or closed),
+ "/ this is a leftover event and ignored.
+ "/
+ view shown ifTrue:[
+ rect := event rectangle.
+ x := rect left.
+ y := rect top.
+ w := rect width.
+ h := rect height.
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
+ view transformation notNil ifTrue:[
+ view deviceExposeX:x y:y width:w height:h
+ ] ifFalse:[
+ view exposeX:x y:y width:w height:h
]
- ] ifFalse:[
- "
- mhmh - could we possibly arrive here ?
- "
- ActiveGroup := self.
- event sendEvent.
]
- ].
- postEventHook notNil ifTrue:[
- postEventHook processEvent:event
+ ] ifFalse:[
+ "
+ mhmh - could we possibly arrive here ?
+ "
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
+ event sendEvent.
]
+ ].
+ postEventHook notNil ifTrue:[
+ postEventHook processEvent:event
]
]
]
- ] valueNowOrOnUnwindDo:[
- ActiveGroup := oldActive.
- oldActive := nil
]
!
@@ -540,28 +641,27 @@
Stay in this loop while there are still any views to dispatch for,
and aBlock evaluates to true."
- |oldActive|
+ |thisProcess|
- oldActive := ActiveGroup.
+ thisProcess := Processor activeProcess.
+
[
-"/ ScheduledWindowGroups add:self.
-
"/
"/ on leave, exit the event loop
"/
LeaveSignal handle:[:ex |
ex return
] do:[
- |p g mainGroup thisProcess|
+ |p g mainGroup|
isModal ifTrue:[
mainGroup := self mainGroup.
].
- thisProcess := Processor activeProcess.
+ aBlock whileTrue:[
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
- aBlock whileTrue:[
- ActiveGroup := self.
(views isNil and:[topViews isNil]) ifTrue:[
myProcess notNil ifTrue:[
p := myProcess.
@@ -593,9 +693,9 @@
] ifFalse:[
mySensor eventSemaphore wait.
].
- ActiveGroup := self.
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
self processEvents.
- ActiveGroup := oldActive.
].
"
@@ -605,14 +705,10 @@
"
mainGroup notNil ifTrue:[
mainGroup processExposeEvents.
- ActiveGroup := oldActive.
]
].
].
] valueNowOrOnUnwindDo:[
-"/ ScheduledWindowGroups remove:self ifAbsent:[].
- ActiveGroup := oldActive.
- oldActive := nil.
cleanupActions notNil ifTrue:[cleanupActions value]
]
!
@@ -755,7 +851,6 @@
views := nil.
topViews := nil.
mySensor := nil.
-"/ ScheduledWindowGroups remove:self ifAbsent:[].
!
shutdown
@@ -768,7 +863,6 @@
myProcess notNil ifTrue:[
p := myProcess.
myProcess := nil.
-"/ ScheduledWindowGroups remove:self ifAbsent:[].
p terminate.
]
! !
--- a/WSensor.st Thu Aug 31 06:43:20 1995 +0200
+++ b/WSensor.st Thu Sep 07 14:31:44 1995 +0200
@@ -28,7 +28,7 @@
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/WSensor.st,v 1.30 1995-08-24 20:39:15 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/WSensor.st,v 1.31 1995-09-07 12:30:27 claus Exp $
'!
!WindowSensor class methodsFor:'documentation'!
@@ -49,7 +49,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/WSensor.st,v 1.30 1995-08-24 20:39:15 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/WSensor.st,v 1.31 1995-09-07 12:30:27 claus Exp $
"
!
@@ -213,7 +213,8 @@
($+ $- 16rB1) "/ plus-minus
($^ $2 16rB2) "/ superscript-2
($^ $3 16rB3) "/ superscript-3
- ($. $^ 16rB7) "/ middle dot
+"/ ($. $^ 16rB7) "/ middle dot
+ ($^ $. 16rB7) "/ middle dot
($^ $1 16rB9) "/ superscript-1
($1 $4 16rBC) "/ 1/4
($1 $2 16rBD) "/ 1/2
--- a/WindowGroup.st Thu Aug 31 06:43:20 1995 +0200
+++ b/WindowGroup.st Thu Sep 07 14:31:44 1995 +0200
@@ -13,7 +13,7 @@
Object subclass:#WindowGroup
instanceVariableNames:'views topViews myProcess mySensor isModal previousGroup
focusView focusSequence preEventHook postEventHook'
- classVariableNames:'ActiveGroup ScheduledWindowGroups LeaveSignal'
+ classVariableNames:'LastActiveGroup LastActiveProcess LeaveSignal'
poolDictionaries:''
category:'Interface-Support'
!
@@ -22,7 +22,7 @@
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.32 1995-08-24 20:39:10 claus Exp $
+$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.33 1995-09-07 12:30:22 claus Exp $
'!
!WindowGroup class methodsFor:'documentation'!
@@ -43,7 +43,7 @@
version
"
-$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.32 1995-08-24 20:39:10 claus Exp $
+$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.33 1995-09-07 12:30:22 claus Exp $
"
!
@@ -117,10 +117,6 @@
clas variables:
LeaveSignal if raised, a modal box leaves (closes)
- ActiveGroup the currently active windowGroup
-
- ScheduledWindowGroups -- not currently implemented / used --
-
(*)
due to historic reasons, many views have the controller functionality
@@ -149,7 +145,6 @@
LeaveSignal := (Signal new) mayProceed:true.
LeaveSignal nameClass:self message:#leaveSignal.
LeaveSignal notifierString:'unhandled leave signal'.
- "/ ScheduledWindowGroups := IdentitySet new.
].
"WindowGroup initialize"
@@ -177,22 +172,92 @@
!WindowGroup class methodsFor:'accessing'!
activeGroup
- "return the currently active windowGroup"
+ "return the currently active windowGroup.
+ The returned value may not be fully correct, in case the current process
+ handles multiple windowGroups simulaniously. In this case,
+ the first group is returned (prefering a modal if there is one).
+ (maybe we should return a collection of windowGroups here).
+
+ This method is required to simulate the historic ST-80 single display
+ behavior for Cursor>>show / Cursor>>showWhile and some others (raising the
+ activeGroups topView when modalBoxes appear) on multiple display screens.
+ These methods should change the cursor for the currently
+ active windowGroup ONLY, instead of globally affecting the display or
+ all views
+ (since, depending on the priority, other views could be unaffacted by this
+ and an overall cursor change does not make sense.)"
+
+ |activeProcess groups wg|
+
+ Processor isNil ifTrue:[^ nil]. "/ only during very early init phase
- ^ ActiveGroup
+ activeProcess := Processor activeProcess.
+ " caching the last value ..."
+ activeProcess == LastActive ifTrue:[
+ LastActiveGroup process == LastActive ifTrue:[
+ ^ LastActiveGroup
+ ]
+ ].
+ groups := self scheduledWindowGroups
+ select:[:wg | wg process == activeProcess].
+ groups size == 1 ifTrue:[
+ wg := groups anElement
+ ] ifFalse:[
+ wg := groups detect:[:wg | wg isModal] ifNone:nil.
+ wg isNil ifTrue:[
+ wg := groups anElement
+ ]
+ ].
+ wg notNil ifTrue:[
+ LastActiveProcess := activeProcess.
+ LastActiveGroup := wg.
+ ].
+ ^ wg
+
+ "
+ WindowGroup activeGroup
+ "
+
+ "Modified: 3.9.1995 / 14:49:53 / claus"
!
setActiveGroup:aGroup
"set the currently active windowGroup.
Temporary; do not use this interface, it will vanish."
- ActiveGroup := aGroup
+ LastActiveProcess := Processor activeProcess.
+ LastActiveGroup := aGroup
!
scheduledWindowGroups
- "this is not yet implemented"
+ "return a collection of all windowGroups (possibly for different
+ display devices) which are scheduled (i.e. which have a process
+ running, handling events)."
+
+ |set screens|
+
+ screens := Screen allScreens.
+ screens isNil ifTrue:[^ #()].
+
+ set := IdentitySet new.
+ screens do:[:aDevice |
+ aDevice allViewsDo:[:aView |
+ |wg|
- ^ ScheduledWindowGroups
+ (wg := aView windowGroup) notNil ifTrue:[
+ wg process notNil ifTrue:[
+ set add:wg
+ ]
+ ].
+ ].
+ ].
+ ^ set asArray
+
+ "
+ WindowGroup scheduledWindowGroups
+ "
+
+ "Modified: 1.9.1995 / 13:43:09 / claus"
! !
!WindowGroup methodsFor:'accessing'!
@@ -279,16 +344,20 @@
!
mainGroup
- "return the main windowgroup (that is the top one,
- which is not modal)"
+ "return the main windowgroup
+ (that is the top one, which is not modal).
+ There is one exception to this: the debugger (which is sort of modal)
+ returns itself as mainGroup (not its debuggee)."
- |g|
+ |g prev|
g := self.
- [g notNil and:[g isModal]] whileTrue:[
- g := g previousGroup
+ [g notNil and:[g isModal and:[(prev := g previousGroup) notNil]]] whileTrue:[
+ g := prev
].
^ g
+
+ "Modified: 3.9.1995 / 14:57:20 / claus"
!
sensor:aSensor
@@ -314,6 +383,36 @@
postEventHook := anObject
! !
+!WindowGroup methodsFor:'special accessing'!
+
+setPreviousGroup:aGroup
+ "special entry for debugger:
+ set the windowgroup that started this group (for modal groups only).
+ This is not a public interface."
+
+ previousGroup := aGroup
+
+ "Modified: 3.9.1995 / 14:55:40 / claus"
+!
+
+setModal:aBoolean
+ "special entry for debugger: set the modal flag.
+ Not for public use"
+
+ isModal := aBoolean
+
+ "Modified: 3.9.1995 / 14:51:04 / claus"
+!
+
+setProcess:aProcess
+ "special entry for debugger: set the windowGroups process.
+ Not for public use."
+
+ myProcess := aProcess
+
+ "Modified: 3.9.1995 / 14:25:38 / claus"
+! !
+
!WindowGroup methodsFor:'enumerating'!
allViewsDo:aBlock
@@ -425,6 +524,7 @@
|event ignore|
self processExposeEvents.
+
[mySensor hasEvents] whileTrue:[
event := mySensor nextEvent.
event notNil ifTrue:[
@@ -461,7 +561,8 @@
"/
"/ let the event forward itself
"/
- ActiveGroup := self.
+ LastActiveGroup := self.
+ LastActiveProcess := Processor activeProcess.
event sendEventWithFocusOn:focusView.
]
].
@@ -476,55 +577,55 @@
processExposeEvents
"process only expose events from the damage queue"
- |event view rect oldActive x y w h sensor|
+ |event view rect x y w h sensor thisProcess|
(sensor := mySensor) isNil ifTrue:[^ self].
- oldActive := ActiveGroup.
- [
- [sensor hasDamage] whileTrue:[
- ActiveGroup := self.
- event := sensor nextDamage.
- event notNil ifTrue:[
- (views notNil or:[topViews notNil]) ifTrue:[
- (preEventHook notNil
- and:[preEventHook processEvent:event]) ifFalse:[
- event isDamage ifTrue:[
- view := event view.
- "/
- "/ if the view is no longer shown (iconified or closed),
- "/ this is a leftover event and ignored.
- "/
- view shown ifTrue:[
- rect := event rectangle.
- x := rect left.
- y := rect top.
- w := rect width.
- h := rect height.
- ActiveGroup := self.
- view transformation notNil ifTrue:[
- view deviceExposeX:x y:y width:w height:h
- ] ifFalse:[
- view exposeX:x y:y width:w height:h
- ]
+ thisProcess := Processor activeProcess.
+
+ [sensor hasDamage] whileTrue:[
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
+
+ event := sensor nextDamage.
+ event notNil ifTrue:[
+ (views notNil or:[topViews notNil]) ifTrue:[
+ (preEventHook notNil
+ and:[preEventHook processEvent:event]) ifFalse:[
+ event isDamage ifTrue:[
+ view := event view.
+ "/
+ "/ if the view is no longer shown (iconified or closed),
+ "/ this is a leftover event and ignored.
+ "/
+ view shown ifTrue:[
+ rect := event rectangle.
+ x := rect left.
+ y := rect top.
+ w := rect width.
+ h := rect height.
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
+ view transformation notNil ifTrue:[
+ view deviceExposeX:x y:y width:w height:h
+ ] ifFalse:[
+ view exposeX:x y:y width:w height:h
]
- ] ifFalse:[
- "
- mhmh - could we possibly arrive here ?
- "
- ActiveGroup := self.
- event sendEvent.
]
- ].
- postEventHook notNil ifTrue:[
- postEventHook processEvent:event
+ ] ifFalse:[
+ "
+ mhmh - could we possibly arrive here ?
+ "
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
+ event sendEvent.
]
+ ].
+ postEventHook notNil ifTrue:[
+ postEventHook processEvent:event
]
]
]
- ] valueNowOrOnUnwindDo:[
- ActiveGroup := oldActive.
- oldActive := nil
]
!
@@ -540,28 +641,27 @@
Stay in this loop while there are still any views to dispatch for,
and aBlock evaluates to true."
- |oldActive|
+ |thisProcess|
- oldActive := ActiveGroup.
+ thisProcess := Processor activeProcess.
+
[
-"/ ScheduledWindowGroups add:self.
-
"/
"/ on leave, exit the event loop
"/
LeaveSignal handle:[:ex |
ex return
] do:[
- |p g mainGroup thisProcess|
+ |p g mainGroup|
isModal ifTrue:[
mainGroup := self mainGroup.
].
- thisProcess := Processor activeProcess.
+ aBlock whileTrue:[
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
- aBlock whileTrue:[
- ActiveGroup := self.
(views isNil and:[topViews isNil]) ifTrue:[
myProcess notNil ifTrue:[
p := myProcess.
@@ -593,9 +693,9 @@
] ifFalse:[
mySensor eventSemaphore wait.
].
- ActiveGroup := self.
+ LastActiveGroup := self.
+ LastActiveProcess := thisProcess.
self processEvents.
- ActiveGroup := oldActive.
].
"
@@ -605,14 +705,10 @@
"
mainGroup notNil ifTrue:[
mainGroup processExposeEvents.
- ActiveGroup := oldActive.
]
].
].
] valueNowOrOnUnwindDo:[
-"/ ScheduledWindowGroups remove:self ifAbsent:[].
- ActiveGroup := oldActive.
- oldActive := nil.
cleanupActions notNil ifTrue:[cleanupActions value]
]
!
@@ -755,7 +851,6 @@
views := nil.
topViews := nil.
mySensor := nil.
-"/ ScheduledWindowGroups remove:self ifAbsent:[].
!
shutdown
@@ -768,7 +863,6 @@
myProcess notNil ifTrue:[
p := myProcess.
myProcess := nil.
-"/ ScheduledWindowGroups remove:self ifAbsent:[].
p terminate.
]
! !
--- a/WindowSensor.st Thu Aug 31 06:43:20 1995 +0200
+++ b/WindowSensor.st Thu Sep 07 14:31:44 1995 +0200
@@ -28,7 +28,7 @@
COPYRIGHT (c) 1993 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/WindowSensor.st,v 1.30 1995-08-24 20:39:15 claus Exp $
+$Header: /cvs/stx/stx/libview/WindowSensor.st,v 1.31 1995-09-07 12:30:27 claus Exp $
'!
!WindowSensor class methodsFor:'documentation'!
@@ -49,7 +49,7 @@
version
"
-$Header: /cvs/stx/stx/libview/WindowSensor.st,v 1.30 1995-08-24 20:39:15 claus Exp $
+$Header: /cvs/stx/stx/libview/WindowSensor.st,v 1.31 1995-09-07 12:30:27 claus Exp $
"
!
@@ -213,7 +213,8 @@
($+ $- 16rB1) "/ plus-minus
($^ $2 16rB2) "/ superscript-2
($^ $3 16rB3) "/ superscript-3
- ($. $^ 16rB7) "/ middle dot
+"/ ($. $^ 16rB7) "/ middle dot
+ ($^ $. 16rB7) "/ middle dot
($^ $1 16rB9) "/ superscript-1
($1 $4 16rBC) "/ 1/4
($1 $2 16rBD) "/ 1/2
--- a/XWorkstat.st Thu Aug 31 06:43:20 1995 +0200
+++ b/XWorkstat.st Thu Sep 07 14:31:44 1995 +0200
@@ -35,7 +35,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.57 1995-08-29 23:41:58 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.58 1995-09-07 12:30:40 claus Exp $
'!
!XWorkstation class methodsFor:'documentation'!
@@ -56,7 +56,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.57 1995-08-29 23:41:58 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.58 1995-09-07 12:30:40 claus Exp $
"
!
@@ -743,7 +743,8 @@
!
buffered
- "buffer drawing - do not send it immediately to the display"
+ "buffer drawing - do not send it immediately to the display.
+ This is the default anyway."
%{ /* NOCONTEXT */
@@ -756,8 +757,13 @@
"Display buffered"
!
-synchronizeOutput
- "send all buffered drawing to the display"
+flush
+ "send all buffered drawing to the display.
+ This may be required to make certain, that all previous operations
+ are really sent to the display before continuing. For example,
+ after a cursor-change with a followup long computation.
+ (otherwise, the cursor change request may still be in the output
+ buffer)"
%{ /* NOCONTEXT */
@@ -3397,10 +3403,10 @@
%{ /* NOCONTEXT */
if (ISCONNECTED) {
- BEGIN_INTERRUPTSBLOCKED
- XUngrabKeyboard(myDpy, CurrentTime);
- XSync(myDpy, 0);
- END_INTERRUPTSBLOCKED
+ BEGIN_INTERRUPTSBLOCKED
+ XUngrabKeyboard(myDpy, CurrentTime);
+ XSync(myDpy, 0);
+ END_INTERRUPTSBLOCKED
}
%}.
activeKeyboardGrab := nil
@@ -3484,10 +3490,10 @@
%{ /* NOCONTEXT */
if (ISCONNECTED) {
- BEGIN_INTERRUPTSBLOCKED
- XUngrabPointer(myDpy, CurrentTime);
- XSync(myDpy, 0);
- END_INTERRUPTSBLOCKED
+ BEGIN_INTERRUPTSBLOCKED
+ XUngrabPointer(myDpy, CurrentTime);
+ XSync(myDpy, 0);
+ END_INTERRUPTSBLOCKED
}
%}.
activePointerGrab := nil
--- a/XWorkstation.st Thu Aug 31 06:43:20 1995 +0200
+++ b/XWorkstation.st Thu Sep 07 14:31:44 1995 +0200
@@ -35,7 +35,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.57 1995-08-29 23:41:58 claus Exp $
+$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.58 1995-09-07 12:30:40 claus Exp $
'!
!XWorkstation class methodsFor:'documentation'!
@@ -56,7 +56,7 @@
version
"
-$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.57 1995-08-29 23:41:58 claus Exp $
+$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.58 1995-09-07 12:30:40 claus Exp $
"
!
@@ -743,7 +743,8 @@
!
buffered
- "buffer drawing - do not send it immediately to the display"
+ "buffer drawing - do not send it immediately to the display.
+ This is the default anyway."
%{ /* NOCONTEXT */
@@ -756,8 +757,13 @@
"Display buffered"
!
-synchronizeOutput
- "send all buffered drawing to the display"
+flush
+ "send all buffered drawing to the display.
+ This may be required to make certain, that all previous operations
+ are really sent to the display before continuing. For example,
+ after a cursor-change with a followup long computation.
+ (otherwise, the cursor change request may still be in the output
+ buffer)"
%{ /* NOCONTEXT */
@@ -3397,10 +3403,10 @@
%{ /* NOCONTEXT */
if (ISCONNECTED) {
- BEGIN_INTERRUPTSBLOCKED
- XUngrabKeyboard(myDpy, CurrentTime);
- XSync(myDpy, 0);
- END_INTERRUPTSBLOCKED
+ BEGIN_INTERRUPTSBLOCKED
+ XUngrabKeyboard(myDpy, CurrentTime);
+ XSync(myDpy, 0);
+ END_INTERRUPTSBLOCKED
}
%}.
activeKeyboardGrab := nil
@@ -3484,10 +3490,10 @@
%{ /* NOCONTEXT */
if (ISCONNECTED) {
- BEGIN_INTERRUPTSBLOCKED
- XUngrabPointer(myDpy, CurrentTime);
- XSync(myDpy, 0);
- END_INTERRUPTSBLOCKED
+ BEGIN_INTERRUPTSBLOCKED
+ XUngrabPointer(myDpy, CurrentTime);
+ XSync(myDpy, 0);
+ END_INTERRUPTSBLOCKED
}
%}.
activePointerGrab := nil
--- a/styles/greenPC.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/greenPC.style Thu Sep 07 14:31:44 1995 +0200
@@ -10,11 +10,7 @@
; On my SGI, this one looks great; on VGA's, the colors come out
; a bit too dark.
;
-; $Header: /cvs/stx/stx/libview/styles/greenPC.style,v 1.2 1995-05-16 17:15:40 claus Exp $
-
-#include 'motif.style'
-
-comment 'like motif style;\\with different viewbackground'
+; $Header: /cvs/stx/stx/libview/styles/greenPC.style,v 1.3 1995-09-07 12:31:02 claus Exp $
#if Display hasGreyscales
wooden (Image fromFile:'bitmaps/wood2H.tiff')
@@ -28,7 +24,14 @@
lightColor =woodColor lightened
shadowColor =woodColor darkened darkened
+mediumColor =woodColor darkened
+#endif
+#include 'motif.common'
+
+comment 'like motif, with cute viewbackground\\not recommended for slow display servers.'
+
+#if Display hasGreyscales
buttonActiveForegroundColor Color white
buttonActiveBackgroundColor =granite
buttonForegroundColor Color grey:80
@@ -52,6 +55,3 @@
menuHilightForegroundColor =wooden
menuHilightBackgroundColor Color black
#endif
-
-
-
--- a/styles/motif.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif.style Thu Sep 07 14:31:44 1995 +0200
@@ -7,15 +7,23 @@
; on VGA displays, where the colors are a bit darkish,
; use motif_light
;
-; $Header: /cvs/stx/stx/libview/styles/motif.style,v 1.2 1995-05-16 17:15:49 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif.style,v 1.3 1995-09-07 12:31:09 claus Exp $
#if Display hasGreyscales
-viewGrey Color grey:50
+viewGrey Color grey:61
+lightColor Color grey:84
+shadowColor Color grey:33
+mediumColor Color grey:52.
+#else
+viewGrey Color white
+lightColor Color grey:25
+shadowColor Color black
+mediumColor Color grey:50.
#endif
#include 'motif.common'
-comment 'motif look alike.\\maybe too dark on some VGA screens'
+comment 'motif look alike.'
fatFont Font family:'helvetica' face:'bold' style:'roman' size:12
--- a/styles/motif2.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif2.style Thu Sep 07 14:31:44 1995 +0200
@@ -3,12 +3,23 @@
; just a demo:
; like motif, but with different (red) menu-hilighting
;
-; $Header: /cvs/stx/stx/libview/styles/motif2.style,v 1.2 1995-05-16 17:15:52 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif2.style,v 1.3 1995-09-07 12:31:11 claus Exp $
+#if Display hasGreyscales
+viewGrey Color grey:61
+lightColor Color grey:84
+shadowColor Color grey:33
+mediumColor Color grey:52.
+#else
+viewGrey Color white
+lightColor Color grey:25
+shadowColor Color black
+mediumColor Color grey:50.
+#endif
#include 'motif.style'
-comment 'like motif.style;\\with changed menu & selection colors'
+comment 'like motif.style.\\With changed menu & selection colors (only a demo).'
menuHilightForegroundColor Color white
menuHilightBackgroundColor Color red
@@ -22,4 +33,3 @@
selectionHilightForegroundColor Color black
selectionHilightBackgroundColor Color green
selectionHilightLevel 1
-
--- a/styles/motif_blue.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif_blue.style Thu Sep 07 14:31:44 1995 +0200
@@ -8,21 +8,25 @@
; on VGA displays, where the colors are a bit darkish,
; use motif_blue_light
;
-; $Header: /cvs/stx/stx/libview/styles/motif_blue.style,v 1.2 1995-05-16 17:15:58 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif_blue.style,v 1.3 1995-09-07 12:31:14 claus Exp $
#if Display hasGreyscales
-viewGrey Color red:15 green:20 blue:45
+viewGrey Color red:22 green:30 blue:67
+shadowColor =viewGrey darkened darkened
+lightColor =viewGrey lightened
+mediumColor =viewGrey darkened
#endif
#include 'motif.common'
+labelForegroundColor Color white
+
comment 'like motif.style;\\with blueish colors'
selectionForegroundColor Color white
-selectionBackgroundColor =shadowColor
-selectionShadowColor Color black "/ =shadowColor darkened
-selectionHilightForegroundColor =shadowColor
+selectionBackgroundColor =mediumColor
+selectionShadowColor Color black
+selectionHilightForegroundColor =mediumColor
selectionHilightBackgroundColor Color white
pullDownMenuHilightForegroundColor Color white
-
--- a/styles/motif_dec.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif_dec.style Thu Sep 07 14:31:44 1995 +0200
@@ -4,7 +4,7 @@
; like motif, but using different colors
;
;
-; $Header: /cvs/stx/stx/libview/styles/motif_dec.style,v 1.3 1995-06-06 04:11:21 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif_dec.style,v 1.4 1995-09-07 12:31:18 claus Exp $
#if Display hasGreyscales
# if Display hasColors
@@ -18,7 +18,7 @@
#include 'motif.common'
-comment 'DEC motif look alike\\like motif.style with blueish colors'
+comment 'DEC motif look alike\\baby blue & larger fonts'
menuFont Font family:'helvetica' face:'medium' style:'roman' size:14
--- a/styles/motif_dec2.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif_dec2.style Thu Sep 07 14:31:44 1995 +0200
@@ -4,7 +4,7 @@
; like motif, but using different (brown, pessimistic) colors
;
;
-; $Header: /cvs/stx/stx/libview/styles/motif_dec2.style,v 1.3 1995-06-06 04:11:24 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif_dec2.style,v 1.4 1995-09-07 12:31:20 claus Exp $
#if Display hasGreyscales
# if Display hasColors
@@ -18,7 +18,7 @@
#include 'motif.common'
-comment 'another DEC motif look alike\\like motif.style - with brownish colors'
+comment 'another DEC motif look alike\\brownish colors & larger fonts'
menuFont Font family:'helvetica' face:'medium' style:'roman' size:14
--- a/styles/motif_light.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif_light.style Thu Sep 07 14:31:44 1995 +0200
@@ -5,19 +5,18 @@
; use this (instead of motif) on VGA displays,
; where the colors are a bit darkish
;
-; $Header: /cvs/stx/stx/libview/styles/motif_light.style,v 1.4 1995-05-16 17:16:20 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif_light.style,v 1.5 1995-09-07 12:31:24 claus Exp $
;
#if Display hasGreyscales
viewGrey Color grey:67
+lightColor Color grey:80
+shadowColor Color grey:25
#endif
#include 'motif.common'
-comment 'like motif.style\\with brighter colors'
-
-lightColor Color grey:80
-shadowColor Color grey:25
+comment 'like motif.style\\slightly brighter colors'
scrollerViewBackground Color grey:50
scrollerThumbColor =viewGrey
--- a/styles/motif_red.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif_red.style Thu Sep 07 14:31:44 1995 +0200
@@ -8,10 +8,13 @@
; on VGA displays, where the colors are a bit darkish,
; use motif_red_light
;
-; $Header: /cvs/stx/stx/libview/styles/motif_red.style,v 1.2 1995-05-16 17:16:23 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif_red.style,v 1.3 1995-09-07 12:31:26 claus Exp $
#if Display hasGreyscales
-viewGrey Color red:45 green:5 blue:5
+viewGrey Color red:67 green:8 blue:8
+lightColor =viewGrey lightened
+mediumColor =viewGrey darkened
+shadowColor =viewGrey darkened darkened
#endif
#include 'motif.common'
@@ -19,9 +22,9 @@
comment 'like motif.style\\with redish colors'
selectionForegroundColor Color white
-selectionBackgroundColor =shadowColor
-selectionShadowColor Color black "/ =shadowColor darkened
-selectionHilightForegroundColor =shadowColor
+selectionBackgroundColor =mediumColor
+selectionShadowColor Color black
+selectionHilightForegroundColor =mediumColor
selectionHilightBackgroundColor Color white
pullDownMenuHilightForegroundColor Color white
--- a/styles/motif_redButtons.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/motif_redButtons.style Thu Sep 07 14:31:44 1995 +0200
@@ -2,7 +2,7 @@
;
; just an example - take motif-style as a base, change buttons to red
;
-; $Header: /cvs/stx/stx/libview/styles/motif_redButtons.style,v 1.2 1995-05-16 17:16:26 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif_redButtons.style,v 1.3 1995-09-07 12:31:29 claus Exp $
#include 'motif.style'
@@ -11,8 +11,8 @@
buttonRed Color red:45 green:5 blue:5
-buttonBackgroundColor =buttonRed
-buttonActiveBackgroundColor =buttonRed lightened
+buttonBackgroundColor =buttonRed lightened
+buttonActiveBackgroundColor =buttonRed
buttonShadowColor =buttonRed darkened
buttonLightColor =buttonRed lightened
--- a/styles/normal.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/normal.style Thu Sep 07 14:31:44 1995 +0200
@@ -3,9 +3,9 @@
; the good-old normal 2D style - actually not bad to work
; with. Also the best to use on black&white displays
;
-; $Header: /cvs/stx/stx/libview/styles/normal.style,v 1.4 1995-08-27 00:33:21 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/normal.style,v 1.5 1995-09-07 12:31:34 claus Exp $
-comment 'plain good old 2D style'
+comment 'plain good old 2D style.\No fancy decoration, but functional.\Great for monochrome displays.'
is3D false
name #normal
--- a/styles/oldStyles/fun_iris.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/oldStyles/fun_iris.style Thu Sep 07 14:31:44 1995 +0200
@@ -7,24 +7,28 @@
; notice, that the light- and dark brown shadow colors are computed from the bitmaps;
; if you replace them by some (say reddish) image, they will change too.
;
-; $Header: /cvs/stx/stx/libview/styles/oldStyles/fun_iris.style,v 1.2 1995-05-16 17:15:28 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/oldStyles/fun_iris.style,v 1.3 1995-09-07 12:30:53 claus Exp $
;
#include 'iris.style'
-comment 'like iris style;\\with different viewbackground'
+comment 'like iris with rock-solid viewbackground\\may be too dark on some VGA displays'
#viewBackground (Image fromFile:'bitmaps/granite.tiff')
viewBackground (Image fromFile:'bitmaps/granite_small.tiff')
lightColor Color grey:66
foregroundColor Color grey:80
+foregroundColor Color grey:90
wooden (Image fromFile:'bitmaps/wood2H.tiff')
averageColor =wooden averageColorIn:(0@0 corner:9@9)
darkWood =averageColor darkened
lightWood =averageColor lightened
+textViewBackground Color red:100 green:90 blue:90
+textBackgroundColor =textViewBackground
+
buttonBackgroundColor =wooden
buttonActiveBackgroundColor =wooden "=lightWood"
buttonEnteredBackgroundColor =lightWood
@@ -35,6 +39,7 @@
menuForegroundColor Color grey:80
menuHilightForegroundColor Color yellow
menuHilightBackgroundColor =viewBackground
+menuDisabledForegroundColor Color grey:10
selectionForegroundColor Color grey:80
selectionHilightForegroundColor Color yellow
--- a/styles/oldStyles/fun_motif.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/oldStyles/fun_motif.style Thu Sep 07 14:31:44 1995 +0200
@@ -2,12 +2,12 @@
;
; like motif, but with different viewbackground
;
-; $Header: /cvs/stx/stx/libview/styles/oldStyles/fun_motif.style,v 1.2 1995-05-16 17:15:31 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/oldStyles/fun_motif.style,v 1.3 1995-09-07 12:30:56 claus Exp $
#include 'motif.style'
-comment 'like motif style;\\with different viewbackground'
+comment 'like motif with rocky viewbackground.\also nice buttons and menu highlightning.\may be too dark on some displays'
#viewBackground (Image fromFile:'bitmaps/granite.tiff')
viewBackground (Image fromFile:'bitmaps/granite_small.tiff')
--- a/styles/oldStyles/fun_sofia.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/oldStyles/fun_sofia.style Thu Sep 07 14:31:44 1995 +0200
@@ -1,20 +1,20 @@
; View defaultStyle:#'fun_sofia'
;
; children will love it ... but you wont work with this one.
-; fun style for my little daughter ...
+; fun style for my little daughter, sofia ...
; like motif, but with different view background
;
-; $Header: /cvs/stx/stx/libview/styles/oldStyles/fun_sofia.style,v 1.2 1995-05-16 17:15:33 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/oldStyles/fun_sofia.style,v 1.3 1995-09-07 12:30:58 claus Exp $
#include 'motif.style'
-comment 'like motif style;\\with changed viewbackground (kids love it)'
+comment 'like motif with funny viewbackground\\not usable, but kids love it ;-)'
shadowColor Color black
lightColor Color lightGrey
-viewBackground (Image fromFile:'bitmaps/garfield.gif') magnifyBy:0.4
+viewBackground (Image fromFile:'bitmaps/garfield.gif') magnifyBy:0.2
menuBackground =viewBackground
selectionBackgroundColor =viewBackground
selectionHilightBackgroundColor =viewBackground
--- a/styles/oldStyles/rocky.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/oldStyles/rocky.style Thu Sep 07 14:31:44 1995 +0200
@@ -5,11 +5,11 @@
; needs some rework to make text readable in selectionInListViews
; and menus.
;
-; $Header: /cvs/stx/stx/libview/styles/oldStyles/rocky.style,v 1.2 1995-05-16 17:16:53 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/oldStyles/rocky.style,v 1.3 1995-09-07 12:31:40 claus Exp $
#include 'motif.style'
-comment 'like motif - with rock solid views'
+comment 'like motif - with rock solid views\\may be too dark on some VGA displays'
shadowColor Color black
lightColor Color lightGrey
--- a/styles/oldStyles/rocky3.style Thu Aug 31 06:43:20 1995 +0200
+++ b/styles/oldStyles/rocky3.style Thu Sep 07 14:31:44 1995 +0200
@@ -3,12 +3,12 @@
; rock solid windows (flintstones ?)
; fun style; like motif, but with different view background
;
-; $Header: /cvs/stx/stx/libview/styles/oldStyles/rocky3.style,v 1.2 1995-05-16 17:16:59 claus Exp $
+; $Header: /cvs/stx/stx/libview/styles/oldStyles/rocky3.style,v 1.3 1995-09-07 12:31:44 claus Exp $
#include 'motif.style'
-comment 'like motif - with rock solid views'
+comment 'like motif - with rock solid views\\very dark'
viewBackground (Image fromFile:'bitmaps/granite2.tiff')