{-# LANGUAGE ImplicitParams, OverloadedStrings, AllowAmbiguousTypes, GADTs, CPP, ExistentialQuantification, TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, ScopedTypeVariables, UndecidableInstances #-} module Graphics.UI.FLTK.Theme.Light.Valuator ( adjusterNew, valueOutputNew, valueInputNew ) where import Graphics.UI.FLTK.LowLevel.Fl_Enumerations import Graphics.UI.FLTK.LowLevel.Fl_Types import Graphics.UI.FLTK.Theme.Light.Common import Graphics.UI.FLTK.Theme.Light.Input import qualified Data.Text as T import qualified Graphics.UI.FLTK.LowLevel.FL as FL import qualified Graphics.UI.FLTK.LowLevel.FLTKHS as LowLevel import Graphics.UI.FLTK.LowLevel.Dispatch import Graphics.UI.FLTK.Theme.Light.Assets adjusterNew :: (?assets :: Assets) => Rectangle -> Maybe T.Text -> IO (Ref LowLevel.Adjuster) adjusterNew rectangle label = do a <- LowLevel.adjusterNew rectangle label LowLevel.setLabelfont a commonFont LowLevel.setLabelsize a commonFontSize color <- commonColor LowLevel.setColor a color color <- commonSelectionColor LowLevel.setSelectionColor a color return a valueOutputNew :: (?assets :: Assets) => Rectangle -> Maybe T.Text -> IO (Ref LowLevel.ValueOutput) valueOutputNew rect l = do let customDraw :: Ref LowLevel.ValueOutput -> IO () customDraw vo = withCustomBoxDraw BorderBox (\rect color -> do LowLevel.flcRectfWithColor rect color focused <- isWidget vo FL.focus inputBox focused rect color) (LowLevel.drawSuper vo) vo <- LowLevel.valueOutputCustom rect l (Just customDraw) Nothing LowLevel.setColor vo lightBackground LowLevel.setBox vo BorderBox LowLevel.setTextfont vo commonFont LowLevel.setTextsize vo commonFontSize color <- commonSelectionColor LowLevel.setSelectionColor vo color LowLevel.setLabelfont vo commonFont LowLevel.setLabelsize vo commonFontSize return vo valueInputNew :: (?assets :: Assets) => Rectangle -> Maybe T.Text -> IO (Ref LowLevel.ValueInput) valueInputNew rect l = do let customDraw :: Ref LowLevel.ValueInput -> IO () customDraw vi = withCustomBoxDraw BorderBox (\rect color -> do LowLevel.flcRectfWithColor rect color focused <- isWidget vi FL.focus inputBox focused rect color) (LowLevel.drawSuper vi) vi <- LowLevel.valueInputCustom rect l (Just customDraw) Nothing LowLevel.setColor vi lightBackground LowLevel.setBox vi BorderBox LowLevel.setTextfont vi commonFont LowLevel.setTextsize vi commonFontSize color <- commonSelectionColor LowLevel.setSelectionColor vi color LowLevel.setLabelfont vi commonFont LowLevel.setLabelsize vi commonFontSize return vi