{-# LANGUAGE ImplicitParams, OverloadedStrings, AllowAmbiguousTypes, GADTs, CPP, ExistentialQuantification, TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, ScopedTypeVariables, UndecidableInstances #-}
module Graphics.UI.FLTK.Theme.Light.Group
  (
    groupNew,
    scrolledNew
  )
where
import Graphics.UI.FLTK.LowLevel.Fl_Types
import Graphics.UI.FLTK.Theme.Light.Common
import qualified Data.Text as T
import qualified Graphics.UI.FLTK.LowLevel.FLTKHS as LowLevel
import Graphics.UI.FLTK.Theme.Light.Assets

scrolledNew :: (?assets :: Assets) => Rectangle -> Maybe T.Text -> IO (Ref LowLevel.Scrolled)
scrolledNew rectangle label = do
  s <- LowLevel.scrolledNew rectangle label
  p <- LowLevel.getParent s
  color <- maybe (return lightBackground) LowLevel.getColor p
  LowLevel.setColor s color
  LowLevel.setLabelfont s commonFont
  LowLevel.setLabelsize s commonFontSize
  return s

groupNew :: (?assets :: Assets) => Rectangle -> Maybe T.Text -> IO (Ref LowLevel.Group)
groupNew rectangle label = do
  g <- LowLevel.groupNew rectangle label
  p <- LowLevel.getParent g
  color <- maybe (return lightBackground) LowLevel.getColor p
  LowLevel.setColor g color
  LowLevel.setLabelfont g commonFont
  LowLevel.setLabelsize g commonFontSize
  color <- commonSelectionColor
  LowLevel.setSelectionColor g color
  return g