RootWindowF

module RootWindowF where
import Command
--import Event
--import Font(FontStruct)
--import Fudget
--import Message(Message(..))
import Geometry(Rect(..),origin,pP)
--import Path
import WindowF(kernelF)
--import NullF(putK)
--import Xrequest(xrequestF)
import Xcommand(xcommandK)
import QueryTree
import UserLayoutF(userLayoutF)
import CompOps
import SerCompF(absF)
import Loops(loopThroughRightF)
import Spops(mapSP)
import AutoLayout(autoLayoutF)
--import CmdLineEnv(argReadKey)
--import NullF(nullF)
import WindowF(kernelTag)

{-
rootWindowF k =
    defaultRootWindowF $ \ root ->
    kernelF (putK (Low (ReparentToMe kernelTag root)) k) >*< nullF
-}
  
rootWindowF k =
    defaultRootWindowF $ \ root ->
    kernelF (xcommandK (SelectWindow root) k)
  
rootGroupF k f =
    k' >+< f'
  where
    k' = kernelF (
            defaultRootWindowK $ \ root ->
            xcommandK (ReparentToMe kernelTag root) k)
    f' = loopThroughRightF (absF ctrlSP) (userLayoutF (autoLayoutF f))
    ctrlSP = mapSP ctrl
    ctrl msg =
      case msg of
        Left (Left (path,req)) -> Left (Left (path,screenrect))
	Left (Right x) -> Right x
	Right x -> Left (Right x)
	
    screenrect = Rect origin (pP 1152 900)
    -- !!! no Read instance...
    --screenrect = Rect origin (argReadKey "screensize" (pP 1152 900)) -- !!!