{-# LANGUAGE CPP #-}
module DToggleButtonF(
  HasLabelInside(..),ToggleButtonF,
  toggleButtonF,toggleButtonF' --,toggleButtonF''
  ) where
import FDefaults
import ToggleButtonF(oldToggleButtonF')
import NullF(F)
import Xtypes
import Defaults(buttonFont)
import Graphic
import GCAttrs --(FontSpec,fontSpec) -- + instances

#include "defaults.h"

newtype ToggleButtonF = Pars [Pars]
data Pars = LabelInside Bool | FontSpec FontSpec | Keys [(ModState, KeySym)]

parameter_class(LabelInside,Bool)

parameter_instance(LabelInside,ToggleButtonF)
parameter_instance(FontSpec,ToggleButtonF)
parameter_instance(Keys,ToggleButtonF)

toggleButtonF :: lbl -> F Bool Bool
toggleButtonF lbl
lbl = Customiser ToggleButtonF -> lbl -> F Bool Bool
forall lbl.
Graphic lbl =>
Customiser ToggleButtonF -> lbl -> F Bool Bool
toggleButtonF' Customiser ToggleButtonF
forall a. Customiser a
standard lbl
lbl

toggleButtonF' :: (Graphic lbl)=> Customiser ToggleButtonF -> lbl -> F Bool Bool
toggleButtonF' :: Customiser ToggleButtonF -> lbl -> F Bool Bool
toggleButtonF' Customiser ToggleButtonF
pmod lbl
lbl = 
    Bool -> FontSpec -> [(ModState, [Char])] -> lbl -> F Bool Bool
forall a1 a2.
(Graphic a1, Show a2, FontGen a2) =>
Bool -> a2 -> [(ModState, [Char])] -> a1 -> F Bool Bool
oldToggleButtonF' Bool
inside FontSpec
font [(ModState, [Char])]
keys lbl
lbl
  where
    inside :: Bool
inside = ToggleButtonF -> Bool
forall xxx. HasLabelInside xxx => xxx -> Bool
getLabelInside ToggleButtonF
ps
    font :: FontSpec
font   = ToggleButtonF -> FontSpec
forall xxx. HasFontSpec xxx => xxx -> FontSpec
getFontSpec ToggleButtonF
ps
    keys :: [(ModState, [Char])]
keys   = ToggleButtonF -> [(ModState, [Char])]
forall xxx. HasKeys xxx => xxx -> [(ModState, [Char])]
getKeys ToggleButtonF
ps
    ps :: ToggleButtonF
ps     = Customiser ToggleButtonF
pmod ToggleButtonF
ps0
    ps0 :: ToggleButtonF
ps0    =  [Pars] -> ToggleButtonF
Pars [Bool -> Pars
LabelInside Bool
False,FontSpec -> Pars
FontSpec ([Char] -> FontSpec
forall a. (Show a, FontGen a) => a -> FontSpec
fontSpec [Char]
buttonFont), [(ModState, [Char])] -> Pars
Keys []]