{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GLib.Structs.MainLoop
(
MainLoop(..) ,
noMainLoop ,
#if defined(ENABLE_OVERLOADING)
ResolveMainLoopMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MainLoopGetContextMethodInfo ,
#endif
mainLoopGetContext ,
#if defined(ENABLE_OVERLOADING)
MainLoopIsRunningMethodInfo ,
#endif
mainLoopIsRunning ,
mainLoopNew ,
#if defined(ENABLE_OVERLOADING)
MainLoopQuitMethodInfo ,
#endif
mainLoopQuit ,
#if defined(ENABLE_OVERLOADING)
MainLoopRefMethodInfo ,
#endif
mainLoopRef ,
#if defined(ENABLE_OVERLOADING)
MainLoopRunMethodInfo ,
#endif
mainLoopRun ,
#if defined(ENABLE_OVERLOADING)
MainLoopUnrefMethodInfo ,
#endif
mainLoopUnref ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import {-# SOURCE #-} qualified GI.GLib.Structs.MainContext as GLib.MainContext
newtype MainLoop = MainLoop (ManagedPtr MainLoop)
deriving (MainLoop -> MainLoop -> Bool
(MainLoop -> MainLoop -> Bool)
-> (MainLoop -> MainLoop -> Bool) -> Eq MainLoop
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MainLoop -> MainLoop -> Bool
$c/= :: MainLoop -> MainLoop -> Bool
== :: MainLoop -> MainLoop -> Bool
$c== :: MainLoop -> MainLoop -> Bool
Eq)
foreign import ccall "g_main_loop_get_type" c_g_main_loop_get_type ::
IO GType
instance BoxedObject MainLoop where
boxedType :: MainLoop -> IO GType
boxedType _ = IO GType
c_g_main_loop_get_type
instance B.GValue.IsGValue MainLoop where
toGValue :: MainLoop -> IO GValue
toGValue o :: MainLoop
o = do
GType
gtype <- IO GType
c_g_main_loop_get_type
MainLoop -> (Ptr MainLoop -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MainLoop
o (GType
-> (GValue -> Ptr MainLoop -> IO ()) -> Ptr MainLoop -> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr MainLoop -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
fromGValue :: GValue -> IO MainLoop
fromGValue gv :: GValue
gv = do
Ptr MainLoop
ptr <- GValue -> IO (Ptr MainLoop)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr MainLoop)
(ManagedPtr MainLoop -> MainLoop) -> Ptr MainLoop -> IO MainLoop
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr MainLoop -> MainLoop
MainLoop Ptr MainLoop
ptr
noMainLoop :: Maybe MainLoop
noMainLoop :: Maybe MainLoop
noMainLoop = Maybe MainLoop
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MainLoop
type instance O.AttributeList MainLoop = MainLoopAttributeList
type MainLoopAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "g_main_loop_new" g_main_loop_new ::
Ptr GLib.MainContext.MainContext ->
CInt ->
IO (Ptr MainLoop)
mainLoopNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (GLib.MainContext.MainContext)
-> Bool
-> m MainLoop
mainLoopNew :: Maybe MainContext -> Bool -> m MainLoop
mainLoopNew context :: Maybe MainContext
context isRunning :: Bool
isRunning = IO MainLoop -> m MainLoop
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainLoop -> m MainLoop) -> IO MainLoop -> m MainLoop
forall a b. (a -> b) -> a -> b
$ do
Ptr MainContext
maybeContext <- case Maybe MainContext
context of
Nothing -> Ptr MainContext -> IO (Ptr MainContext)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
forall a. Ptr a
nullPtr
Just jContext :: MainContext
jContext -> do
Ptr MainContext
jContext' <- MainContext -> IO (Ptr MainContext)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainContext
jContext
Ptr MainContext -> IO (Ptr MainContext)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MainContext
jContext'
let isRunning' :: CInt
isRunning' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
isRunning
Ptr MainLoop
result <- Ptr MainContext -> CInt -> IO (Ptr MainLoop)
g_main_loop_new Ptr MainContext
maybeContext CInt
isRunning'
Text -> Ptr MainLoop -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mainLoopNew" Ptr MainLoop
result
MainLoop
result' <- ((ManagedPtr MainLoop -> MainLoop) -> Ptr MainLoop -> IO MainLoop
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr MainLoop -> MainLoop
MainLoop) Ptr MainLoop
result
Maybe MainContext -> (MainContext -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe MainContext
context MainContext -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
MainLoop -> IO MainLoop
forall (m :: * -> *) a. Monad m => a -> m a
return MainLoop
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_main_loop_get_context" g_main_loop_get_context ::
Ptr MainLoop ->
IO (Ptr GLib.MainContext.MainContext)
mainLoopGetContext ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainLoop
-> m GLib.MainContext.MainContext
mainLoopGetContext :: MainLoop -> m MainContext
mainLoopGetContext loop :: MainLoop
loop = IO MainContext -> m MainContext
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainContext -> m MainContext)
-> IO MainContext -> m MainContext
forall a b. (a -> b) -> a -> b
$ do
Ptr MainLoop
loop' <- MainLoop -> IO (Ptr MainLoop)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainLoop
loop
Ptr MainContext
result <- Ptr MainLoop -> IO (Ptr MainContext)
g_main_loop_get_context Ptr MainLoop
loop'
Text -> Ptr MainContext -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mainLoopGetContext" Ptr MainContext
result
MainContext
result' <- ((ManagedPtr MainContext -> MainContext)
-> Ptr MainContext -> IO MainContext
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr MainContext -> MainContext
GLib.MainContext.MainContext) Ptr MainContext
result
MainLoop -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MainLoop
loop
MainContext -> IO MainContext
forall (m :: * -> *) a. Monad m => a -> m a
return MainContext
result'
#if defined(ENABLE_OVERLOADING)
data MainLoopGetContextMethodInfo
instance (signature ~ (m GLib.MainContext.MainContext), MonadIO m) => O.MethodInfo MainLoopGetContextMethodInfo MainLoop signature where
overloadedMethod = mainLoopGetContext
#endif
foreign import ccall "g_main_loop_is_running" g_main_loop_is_running ::
Ptr MainLoop ->
IO CInt
mainLoopIsRunning ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainLoop
-> m Bool
mainLoopIsRunning :: MainLoop -> m Bool
mainLoopIsRunning loop :: MainLoop
loop = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr MainLoop
loop' <- MainLoop -> IO (Ptr MainLoop)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainLoop
loop
CInt
result <- Ptr MainLoop -> IO CInt
g_main_loop_is_running Ptr MainLoop
loop'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
MainLoop -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MainLoop
loop
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data MainLoopIsRunningMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo MainLoopIsRunningMethodInfo MainLoop signature where
overloadedMethod = mainLoopIsRunning
#endif
foreign import ccall "g_main_loop_quit" g_main_loop_quit ::
Ptr MainLoop ->
IO ()
mainLoopQuit ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainLoop
-> m ()
mainLoopQuit :: MainLoop -> m ()
mainLoopQuit loop :: MainLoop
loop = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MainLoop
loop' <- MainLoop -> IO (Ptr MainLoop)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainLoop
loop
Ptr MainLoop -> IO ()
g_main_loop_quit Ptr MainLoop
loop'
MainLoop -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MainLoop
loop
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MainLoopQuitMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo MainLoopQuitMethodInfo MainLoop signature where
overloadedMethod = mainLoopQuit
#endif
foreign import ccall "g_main_loop_ref" g_main_loop_ref ::
Ptr MainLoop ->
IO (Ptr MainLoop)
mainLoopRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainLoop
-> m MainLoop
mainLoopRef :: MainLoop -> m MainLoop
mainLoopRef loop :: MainLoop
loop = IO MainLoop -> m MainLoop
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MainLoop -> m MainLoop) -> IO MainLoop -> m MainLoop
forall a b. (a -> b) -> a -> b
$ do
Ptr MainLoop
loop' <- MainLoop -> IO (Ptr MainLoop)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainLoop
loop
Ptr MainLoop
result <- Ptr MainLoop -> IO (Ptr MainLoop)
g_main_loop_ref Ptr MainLoop
loop'
Text -> Ptr MainLoop -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "mainLoopRef" Ptr MainLoop
result
MainLoop
result' <- ((ManagedPtr MainLoop -> MainLoop) -> Ptr MainLoop -> IO MainLoop
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr MainLoop -> MainLoop
MainLoop) Ptr MainLoop
result
MainLoop -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MainLoop
loop
MainLoop -> IO MainLoop
forall (m :: * -> *) a. Monad m => a -> m a
return MainLoop
result'
#if defined(ENABLE_OVERLOADING)
data MainLoopRefMethodInfo
instance (signature ~ (m MainLoop), MonadIO m) => O.MethodInfo MainLoopRefMethodInfo MainLoop signature where
overloadedMethod = mainLoopRef
#endif
foreign import ccall "g_main_loop_run" g_main_loop_run ::
Ptr MainLoop ->
IO ()
mainLoopRun ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainLoop
-> m ()
mainLoopRun :: MainLoop -> m ()
mainLoopRun loop :: MainLoop
loop = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MainLoop
loop' <- MainLoop -> IO (Ptr MainLoop)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainLoop
loop
Ptr MainLoop -> IO ()
g_main_loop_run Ptr MainLoop
loop'
MainLoop -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MainLoop
loop
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MainLoopRunMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo MainLoopRunMethodInfo MainLoop signature where
overloadedMethod = mainLoopRun
#endif
foreign import ccall "g_main_loop_unref" g_main_loop_unref ::
Ptr MainLoop ->
IO ()
mainLoopUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
MainLoop
-> m ()
mainLoopUnref :: MainLoop -> m ()
mainLoopUnref loop :: MainLoop
loop = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MainLoop
loop' <- MainLoop -> IO (Ptr MainLoop)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr MainLoop
loop
Ptr MainLoop -> IO ()
g_main_loop_unref Ptr MainLoop
loop'
MainLoop -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr MainLoop
loop
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MainLoopUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo MainLoopUnrefMethodInfo MainLoop signature where
overloadedMethod = mainLoopUnref
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveMainLoopMethod (t :: Symbol) (o :: *) :: * where
ResolveMainLoopMethod "isRunning" o = MainLoopIsRunningMethodInfo
ResolveMainLoopMethod "quit" o = MainLoopQuitMethodInfo
ResolveMainLoopMethod "ref" o = MainLoopRefMethodInfo
ResolveMainLoopMethod "run" o = MainLoopRunMethodInfo
ResolveMainLoopMethod "unref" o = MainLoopUnrefMethodInfo
ResolveMainLoopMethod "getContext" o = MainLoopGetContextMethodInfo
ResolveMainLoopMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMainLoopMethod t MainLoop, O.MethodInfo info MainLoop p) => OL.IsLabel t (MainLoop -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif