{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GtkSource.Objects.Hover
(
Hover(..) ,
IsHover ,
toHover ,
#if defined(ENABLE_OVERLOADING)
ResolveHoverMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
HoverAddProviderMethodInfo ,
#endif
hoverAddProvider ,
#if defined(ENABLE_OVERLOADING)
HoverRemoveProviderMethodInfo ,
#endif
hoverRemoveProvider ,
#if defined(ENABLE_OVERLOADING)
HoverHoverDelayPropertyInfo ,
#endif
constructHoverHoverDelay ,
getHoverHoverDelay ,
#if defined(ENABLE_OVERLOADING)
hoverHoverDelay ,
#endif
setHoverHoverDelay ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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 Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 qualified GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.GtkSource.Interfaces.HoverProvider as GtkSource.HoverProvider
newtype Hover = Hover (SP.ManagedPtr Hover)
deriving (Hover -> Hover -> Bool
(Hover -> Hover -> Bool) -> (Hover -> Hover -> Bool) -> Eq Hover
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Hover -> Hover -> Bool
== :: Hover -> Hover -> Bool
$c/= :: Hover -> Hover -> Bool
/= :: Hover -> Hover -> Bool
Eq)
instance SP.ManagedPtrNewtype Hover where
toManagedPtr :: Hover -> ManagedPtr Hover
toManagedPtr (Hover ManagedPtr Hover
p) = ManagedPtr Hover
p
foreign import ccall "gtk_source_hover_get_type"
c_gtk_source_hover_get_type :: IO B.Types.GType
instance B.Types.TypedObject Hover where
glibType :: IO GType
glibType = IO GType
c_gtk_source_hover_get_type
instance B.Types.GObject Hover
class (SP.GObject o, O.IsDescendantOf Hover o) => IsHover o
instance (SP.GObject o, O.IsDescendantOf Hover o) => IsHover o
instance O.HasParentTypes Hover
type instance O.ParentTypes Hover = '[GObject.Object.Object]
toHover :: (MIO.MonadIO m, IsHover o) => o -> m Hover
toHover :: forall (m :: * -> *) o. (MonadIO m, IsHover o) => o -> m Hover
toHover = IO Hover -> m Hover
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Hover -> m Hover) -> (o -> IO Hover) -> o -> m Hover
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Hover -> Hover) -> o -> IO Hover
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Hover -> Hover
Hover
instance B.GValue.IsGValue (Maybe Hover) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_source_hover_get_type
gvalueSet_ :: Ptr GValue -> Maybe Hover -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Hover
P.Nothing = Ptr GValue -> Ptr Hover -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Hover
forall a. Ptr a
FP.nullPtr :: FP.Ptr Hover)
gvalueSet_ Ptr GValue
gv (P.Just Hover
obj) = Hover -> (Ptr Hover -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Hover
obj (Ptr GValue -> Ptr Hover -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Hover)
gvalueGet_ Ptr GValue
gv = do
Ptr Hover
ptr <- Ptr GValue -> IO (Ptr Hover)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Hover)
if Ptr Hover
ptr Ptr Hover -> Ptr Hover -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Hover
forall a. Ptr a
FP.nullPtr
then Hover -> Maybe Hover
forall a. a -> Maybe a
P.Just (Hover -> Maybe Hover) -> IO Hover -> IO (Maybe Hover)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Hover -> Hover) -> Ptr Hover -> IO Hover
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Hover -> Hover
Hover Ptr Hover
ptr
else Maybe Hover -> IO (Maybe Hover)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Hover
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveHoverMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveHoverMethod "addProvider" o = HoverAddProviderMethodInfo
ResolveHoverMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveHoverMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveHoverMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveHoverMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveHoverMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveHoverMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveHoverMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveHoverMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveHoverMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveHoverMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveHoverMethod "removeProvider" o = HoverRemoveProviderMethodInfo
ResolveHoverMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveHoverMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveHoverMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveHoverMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveHoverMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveHoverMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveHoverMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveHoverMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveHoverMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveHoverMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveHoverMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveHoverMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveHoverMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveHoverMethod t Hover, O.OverloadedMethod info Hover p) => OL.IsLabel t (Hover -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveHoverMethod t Hover, O.OverloadedMethod info Hover p, R.HasField t Hover p) => R.HasField t Hover p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveHoverMethod t Hover, O.OverloadedMethodInfo info Hover) => OL.IsLabel t (O.MethodProxy info Hover) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getHoverHoverDelay :: (MonadIO m, IsHover o) => o -> m Word32
getHoverHoverDelay :: forall (m :: * -> *) o. (MonadIO m, IsHover o) => o -> m Word32
getHoverHoverDelay o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"hover-delay"
setHoverHoverDelay :: (MonadIO m, IsHover o) => o -> Word32 -> m ()
setHoverHoverDelay :: forall (m :: * -> *) o.
(MonadIO m, IsHover o) =>
o -> Word32 -> m ()
setHoverHoverDelay o
obj Word32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
o -> String -> Word32 -> IO ()
forall a. GObject a => a -> String -> Word32 -> IO ()
B.Properties.setObjectPropertyUInt32 o
obj String
"hover-delay" Word32
val
constructHoverHoverDelay :: (IsHover o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructHoverHoverDelay :: forall o (m :: * -> *).
(IsHover o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructHoverHoverDelay Word32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"hover-delay" Word32
val
#if defined(ENABLE_OVERLOADING)
data HoverHoverDelayPropertyInfo
instance AttrInfo HoverHoverDelayPropertyInfo where
type AttrAllowedOps HoverHoverDelayPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint HoverHoverDelayPropertyInfo = IsHover
type AttrSetTypeConstraint HoverHoverDelayPropertyInfo = (~) Word32
type AttrTransferTypeConstraint HoverHoverDelayPropertyInfo = (~) Word32
type AttrTransferType HoverHoverDelayPropertyInfo = Word32
type AttrGetType HoverHoverDelayPropertyInfo = Word32
type AttrLabel HoverHoverDelayPropertyInfo = "hover-delay"
type AttrOrigin HoverHoverDelayPropertyInfo = Hover
attrGet = getHoverHoverDelay
attrSet = setHoverHoverDelay
attrTransfer _ v = do
return v
attrConstruct = constructHoverHoverDelay
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GtkSource.Objects.Hover.hoverDelay"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Hover.html#g:attr:hoverDelay"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Hover
type instance O.AttributeList Hover = HoverAttributeList
type HoverAttributeList = ('[ '("hoverDelay", HoverHoverDelayPropertyInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
hoverHoverDelay :: AttrLabelProxy "hoverDelay"
hoverHoverDelay = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Hover = HoverSignalList
type HoverSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "gtk_source_hover_add_provider" gtk_source_hover_add_provider ::
Ptr Hover ->
Ptr GtkSource.HoverProvider.HoverProvider ->
IO ()
hoverAddProvider ::
(B.CallStack.HasCallStack, MonadIO m, IsHover a, GtkSource.HoverProvider.IsHoverProvider b) =>
a
-> b
-> m ()
hoverAddProvider :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsHover a, IsHoverProvider b) =>
a -> b -> m ()
hoverAddProvider a
self b
provider = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Hover
self' <- a -> IO (Ptr Hover)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
Ptr HoverProvider
provider' <- b -> IO (Ptr HoverProvider)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
provider
Ptr Hover -> Ptr HoverProvider -> IO ()
gtk_source_hover_add_provider Ptr Hover
self' Ptr HoverProvider
provider'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
provider
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data HoverAddProviderMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsHover a, GtkSource.HoverProvider.IsHoverProvider b) => O.OverloadedMethod HoverAddProviderMethodInfo a signature where
overloadedMethod = hoverAddProvider
instance O.OverloadedMethodInfo HoverAddProviderMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GtkSource.Objects.Hover.hoverAddProvider",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Hover.html#v:hoverAddProvider"
})
#endif
foreign import ccall "gtk_source_hover_remove_provider" gtk_source_hover_remove_provider ::
Ptr Hover ->
Ptr GtkSource.HoverProvider.HoverProvider ->
IO ()
hoverRemoveProvider ::
(B.CallStack.HasCallStack, MonadIO m, IsHover a, GtkSource.HoverProvider.IsHoverProvider b) =>
a
-> b
-> m ()
hoverRemoveProvider :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsHover a, IsHoverProvider b) =>
a -> b -> m ()
hoverRemoveProvider a
self b
provider = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Hover
self' <- a -> IO (Ptr Hover)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
Ptr HoverProvider
provider' <- b -> IO (Ptr HoverProvider)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
provider
Ptr Hover -> Ptr HoverProvider -> IO ()
gtk_source_hover_remove_provider Ptr Hover
self' Ptr HoverProvider
provider'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
provider
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data HoverRemoveProviderMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsHover a, GtkSource.HoverProvider.IsHoverProvider b) => O.OverloadedMethod HoverRemoveProviderMethodInfo a signature where
overloadedMethod = hoverRemoveProvider
instance O.OverloadedMethodInfo HoverRemoveProviderMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GtkSource.Objects.Hover.hoverRemoveProvider",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Hover.html#v:hoverRemoveProvider"
})
#endif