{-# LINE 1 "src/Graphics/UI/FLTK/LowLevel/X.chs" #-}
{-# LANGUAGE CPP, FlexibleContexts #-}
module Graphics.UI.FLTK.LowLevel.X (flcOpenDisplay, flcXid, openCallback) where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp
import Graphics.UI.FLTK.LowLevel.Fl_Types
import Graphics.UI.FLTK.LowLevel.Hierarchy
import Graphics.UI.FLTK.LowLevel.Dispatch
import Graphics.UI.FLTK.LowLevel.Utils
import Foreign.Ptr
flcOpenDisplay :: IO ()
flcOpenDisplay =
flcOpenDisplay'_ >>
return ()
{-# LINE 12 "src/Graphics/UI/FLTK/LowLevel/X.chs" #-}
flcXid' :: (Ptr ()) -> IO ((Ptr ()))
flcXid' a1 =
let {a1' = id a1} in
flcXid''_ a1' >>= \res ->
let {res' = id res} in
return (res')
{-# LINE 14 "src/Graphics/UI/FLTK/LowLevel/X.chs" #-}
flcXid :: (Parent a WindowBase) => Ref a -> IO (Maybe WindowHandle)
flcXid win =
withRef
win
(
\winPtr -> do
res <- flcXid' winPtr
if (res == nullPtr)
then return Nothing
else return (Just (WindowHandle res))
)
openCallback' :: (FunPtr OpenCallbackPrim) -> IO ()
openCallback' :: FunPtr OpenCallbackPrim -> IO ()
openCallback' a1 :: FunPtr OpenCallbackPrim
a1 =
let {a1' :: FunPtr OpenCallbackPrim
a1' = FunPtr OpenCallbackPrim -> FunPtr OpenCallbackPrim
forall a. a -> a
id FunPtr OpenCallbackPrim
a1} in
openCallback''_ a1' >>
return ()
{-# LINE 27 "src/Graphics/UI/FLTK/LowLevel/X.chs" #-}
openCallback :: Maybe OpenCallback -> IO (Maybe (FunPtr OpenCallbackPrim))
openCallback Nothing = openCallback' nullFunPtr >> return Nothing
openCallback (Just cb) = do
ptr <- mkOpenCallbackPtr $ \cstr -> do
txt <- cStringToText cstr
cb txt
openCallback' ptr
return (Just ptr)
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/X.chs.h flc_open_display"
flcOpenDisplay'_ :: (IO ())
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/X.chs.h flc_xid"
flcXid''_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/X.chs.h flc_open_callback"
openCallback''_ :: ((C2HSImp.FunPtr ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ()))) -> (IO ()))