--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/DisplayRootView.st Fri Jul 16 11:42:20 1993 +0200
@@ -0,0 +1,109 @@
+"
+ COPYRIGHT (c) 1988-93 by Claus Gittinger
+ All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+"
+
+PseudoView subclass:#DisplayRootView
+ instanceVariableNames:'errorOccured'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Views-Basic'
+!
+
+DisplayRootView comment:'
+COPYRIGHT (c) 1988-93 by Claus Gittinger
+ All Rights Reserved
+
+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)
+
+%W% %E%
+
+written spring/summer 89 by claus
+'!
+
+Smalltalk at:#RootView put:nil!
+
+!DisplayRootView class methodsFor:'initialization'!
+
+initialize
+ Display isNil ifTrue:[
+ Workstation initialize
+ ].
+ super initialize
+! !
+
+!DisplayRootView class methodsFor:'instance creation'!
+
+new
+ "since there is only one RootView - catch new"
+ RootView isNil ifTrue:[
+ RootView := super new
+ ].
+ ^ RootView
+! !
+
+!DisplayRootView methodsFor:'initialization'!
+
+initialize
+ super initialize.
+ width := device width.
+ height := device height.
+ realized := true.
+ drawableId := device rootWindowFor:self
+!
+
+reinitialize
+ "reinit after snapin"
+
+ width := device width.
+ height := device height.
+ drawableId := device rootWindowFor:self
+! !
+
+!DisplayRootView methodsFor:'accessing'!
+
+name
+ ^ 'RootWindow'
+!
+
+controller
+ ^ nil
+! !
+
+!DisplayRootView methodsFor:'queries'!
+
+canDrop:anObjectOrCollection
+ "return true, if anObjectOrCollection can be
+ dropped in the receiver. This method should be
+ redefined in views which can take objects"
+
+ ^ false
+! !
+
+!DisplayRootView methodsFor:'window managing functions'!
+
+errorInterrupt
+ errorOccured := true
+!
+
+isWindowManagerRunning
+ "answer true, if a window manager is currently running"
+
+ |oldErrorHandler|
+
+ oldErrorHandler := Smalltalk at:#ErrorInterruptHandler.
+ Smalltalk at:#ErrorInterruptHandler put:self.
+ errorOccured := false.
+ self enableButtonEvents.
+ device synchronizeOutput.
+ Smalltalk at:#ErrorInterruptHandler put:oldErrorHandler.
+ ^ errorOccured
+! !