fudgets-0.18.3: hsrc/fudgets/ToggleButtonF.hs
module ToggleButtonF(toggleF, oldToggleButtonF, oldToggleButtonF') where
--import Alignment
import Spacer(marginF)
import CompOps((>=^<), (>^=<),(>+<),(>=^^<))
import CompSP(idRightSP)
import SpEither(filterRightSP)
import Spacers(compS,vCenterS,noStretchS)--,centerS,hvAlignS,spacerP
--import Placers(horizontalP)
import Placer(hBoxF,spacer1F)
import EitherUtils(stripEither)
import OnOffDispF
import ButtonBorderF
import ToggleGroupF
--import Geometry(Point(..))
import GraphicsF(graphicsLabelF')
import Defaults(look3d, edgeWidth)
import FDefaults -- setFont
toggleF inside keys lblF =
toggleGroupF keys $
if inside
then buttonBorderF edgew (mF lblF) >=^^< idRightSP filterRightSP
else stripEither >^=< hBoxF (sF (buttonBorderF edgew indicatorF) >+< cF lblF)
where
indicatorF = mF (onOffDispF False)
mF = marginF innersep
sF = spacer1F (noStretchS True True `compS` vCenterS)
cF = spacer1F (noStretchS False True `compS` vCenterS)
innersep = 2
edgew = if look3d then edgeWidth else max 0 (edgeWidth-1)
oldToggleButtonF x = oldToggleButtonF' False x
oldToggleButtonF' inside fname keys lbl =
stripEither >^=< toggleF inside keys lblF >=^< Left
where
lblF = graphicsLabelF' (setFont fname) lbl