.
authorclaus
Thu, 07 Sep 1995 14:31:44 +0200
changeset 180 0b3a8658d55e
parent 179 d9f47e50af15
child 181 9d97e04f44fb
.
Color.st
DMedium.st
DRootView.st
Depth8Image.st
DevDraw.st
DevWorkst.st
DeviceWorkstation.st
DisplayMedium.st
DisplayRootView.st
GC.st
GraphicsContext.st
ModalBox.st
SimpleView.st
StandardSystemView.st
StdSysV.st
WGroup.st
WSensor.st
WindowGroup.st
WindowSensor.st
XWorkstat.st
XWorkstation.st
styles/greenPC.style
styles/motif.style
styles/motif2.style
styles/motif_blue.style
styles/motif_dec.style
styles/motif_dec2.style
styles/motif_light.style
styles/motif_red.style
styles/motif_redButtons.style
styles/normal.style
styles/oldStyles/fun_iris.style
styles/oldStyles/fun_motif.style
styles/oldStyles/fun_sofia.style
styles/oldStyles/rocky.style
styles/oldStyles/rocky3.style
--- 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')