OnOffDispF

module OnOffDispF where
import CompOps((>=^<),(>^^=<))
import NullF(F)
import Spops(nullSP)
--import Xtypes
import ResourceIds() -- synonym ColorName, for hbc
import Geometry(Point(..))
import MeasuredGraphics(emptyMG)
import GraphicsF(graphicsDispF',GfxCommand(..),setGfxEventMask)
import FDefaults
import GCAttrs
--import Drawing( ) -- instances
import Graphic( )
import Defaults(bgColor, fgColor)
import CmdLineEnv(argKey)
import Sizing(Sizing(..))

onOffDispF :: Bool -> F Bool nothing
onOffDispF start = nullSP >^^=< graphicsDispF' custom >=^< pre
  where
    custom = setInitDisp (emptyMG dsize) . setGfxEventMask [] .
	     setSizing Static . setBorderWidth 0 .
	     setBgColor (color start)
    color on = if on then onColor else offColor
    dsize = Point 7 7
    --pre :: Bool -> GfxCommand Bool -- resolving overloading...
    pre = ChangeGfxBg . colorSpec . color

offColor = argKey "toggleoff" bgColor
onColor  = argKey "toggleon" fgColor