{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gtk.Objects.GestureClick
    ( 
    GestureClick(..)                        ,
    IsGestureClick                          ,
    toGestureClick                          ,
 
#if defined(ENABLE_OVERLOADING)
    ResolveGestureClickMethod               ,
#endif
    gestureClickNew                         ,
 
    GestureClickPressedCallback             ,
#if defined(ENABLE_OVERLOADING)
    GestureClickPressedSignalInfo           ,
#endif
    afterGestureClickPressed                ,
    onGestureClickPressed                   ,
    GestureClickReleasedCallback            ,
#if defined(ENABLE_OVERLOADING)
    GestureClickReleasedSignalInfo          ,
#endif
    afterGestureClickReleased               ,
    onGestureClickReleased                  ,
    GestureClickStoppedCallback             ,
#if defined(ENABLE_OVERLOADING)
    GestureClickStoppedSignalInfo           ,
#endif
    afterGestureClickStopped                ,
    onGestureClickStopped                   ,
    GestureClickUnpairedReleaseCallback     ,
#if defined(ENABLE_OVERLOADING)
    GestureClickUnpairedReleaseSignalInfo   ,
#endif
    afterGestureClickUnpairedRelease        ,
    onGestureClickUnpairedRelease           ,
    ) 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.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 qualified GI.Gdk.Structs.EventSequence as Gdk.EventSequence
import {-# SOURCE #-} qualified GI.Gtk.Objects.EventController as Gtk.EventController
import {-# SOURCE #-} qualified GI.Gtk.Objects.Gesture as Gtk.Gesture
import {-# SOURCE #-} qualified GI.Gtk.Objects.GestureSingle as Gtk.GestureSingle
newtype GestureClick = GestureClick (SP.ManagedPtr GestureClick)
    deriving (GestureClick -> GestureClick -> Bool
(GestureClick -> GestureClick -> Bool)
-> (GestureClick -> GestureClick -> Bool) -> Eq GestureClick
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GestureClick -> GestureClick -> Bool
== :: GestureClick -> GestureClick -> Bool
$c/= :: GestureClick -> GestureClick -> Bool
/= :: GestureClick -> GestureClick -> Bool
Eq)
instance SP.ManagedPtrNewtype GestureClick where
    toManagedPtr :: GestureClick -> ManagedPtr GestureClick
toManagedPtr (GestureClick ManagedPtr GestureClick
p) = ManagedPtr GestureClick
p
foreign import ccall "gtk_gesture_click_get_type"
    c_gtk_gesture_click_get_type :: IO B.Types.GType
instance B.Types.TypedObject GestureClick where
    glibType :: IO GType
glibType = IO GType
c_gtk_gesture_click_get_type
instance B.Types.GObject GestureClick
class (SP.GObject o, O.IsDescendantOf GestureClick o) => IsGestureClick o
instance (SP.GObject o, O.IsDescendantOf GestureClick o) => IsGestureClick o
instance O.HasParentTypes GestureClick
type instance O.ParentTypes GestureClick = '[Gtk.GestureSingle.GestureSingle, Gtk.Gesture.Gesture, Gtk.EventController.EventController, GObject.Object.Object]
toGestureClick :: (MIO.MonadIO m, IsGestureClick o) => o -> m GestureClick
toGestureClick :: forall (m :: * -> *) o.
(MonadIO m, IsGestureClick o) =>
o -> m GestureClick
toGestureClick = IO GestureClick -> m GestureClick
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO GestureClick -> m GestureClick)
-> (o -> IO GestureClick) -> o -> m GestureClick
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr GestureClick -> GestureClick) -> o -> IO GestureClick
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr GestureClick -> GestureClick
GestureClick
instance B.GValue.IsGValue (Maybe GestureClick) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_gesture_click_get_type
    gvalueSet_ :: Ptr GValue -> Maybe GestureClick -> IO ()
gvalueSet_ Ptr GValue
gv Maybe GestureClick
P.Nothing = Ptr GValue -> Ptr GestureClick -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr GestureClick
forall a. Ptr a
FP.nullPtr :: FP.Ptr GestureClick)
    gvalueSet_ Ptr GValue
gv (P.Just GestureClick
obj) = GestureClick -> (Ptr GestureClick -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr GestureClick
obj (Ptr GValue -> Ptr GestureClick -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe GestureClick)
gvalueGet_ Ptr GValue
gv = do
        Ptr GestureClick
ptr <- Ptr GValue -> IO (Ptr GestureClick)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr GestureClick)
        if Ptr GestureClick
ptr Ptr GestureClick -> Ptr GestureClick -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr GestureClick
forall a. Ptr a
FP.nullPtr
        then GestureClick -> Maybe GestureClick
forall a. a -> Maybe a
P.Just (GestureClick -> Maybe GestureClick)
-> IO GestureClick -> IO (Maybe GestureClick)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr GestureClick -> GestureClick)
-> Ptr GestureClick -> IO GestureClick
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr GestureClick -> GestureClick
GestureClick Ptr GestureClick
ptr
        else Maybe GestureClick -> IO (Maybe GestureClick)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe GestureClick
forall a. Maybe a
P.Nothing
        
    
#if defined(ENABLE_OVERLOADING)
type family ResolveGestureClickMethod (t :: Symbol) (o :: *) :: * where
    ResolveGestureClickMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveGestureClickMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveGestureClickMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveGestureClickMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveGestureClickMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveGestureClickMethod "group" o = Gtk.Gesture.GestureGroupMethodInfo
    ResolveGestureClickMethod "handlesSequence" o = Gtk.Gesture.GestureHandlesSequenceMethodInfo
    ResolveGestureClickMethod "isActive" o = Gtk.Gesture.GestureIsActiveMethodInfo
    ResolveGestureClickMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveGestureClickMethod "isGroupedWith" o = Gtk.Gesture.GestureIsGroupedWithMethodInfo
    ResolveGestureClickMethod "isRecognized" o = Gtk.Gesture.GestureIsRecognizedMethodInfo
    ResolveGestureClickMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveGestureClickMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveGestureClickMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveGestureClickMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveGestureClickMethod "reset" o = Gtk.EventController.EventControllerResetMethodInfo
    ResolveGestureClickMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveGestureClickMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveGestureClickMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveGestureClickMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveGestureClickMethod "ungroup" o = Gtk.Gesture.GestureUngroupMethodInfo
    ResolveGestureClickMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveGestureClickMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveGestureClickMethod "getBoundingBox" o = Gtk.Gesture.GestureGetBoundingBoxMethodInfo
    ResolveGestureClickMethod "getBoundingBoxCenter" o = Gtk.Gesture.GestureGetBoundingBoxCenterMethodInfo
    ResolveGestureClickMethod "getButton" o = Gtk.GestureSingle.GestureSingleGetButtonMethodInfo
    ResolveGestureClickMethod "getCurrentButton" o = Gtk.GestureSingle.GestureSingleGetCurrentButtonMethodInfo
    ResolveGestureClickMethod "getCurrentEvent" o = Gtk.EventController.EventControllerGetCurrentEventMethodInfo
    ResolveGestureClickMethod "getCurrentEventDevice" o = Gtk.EventController.EventControllerGetCurrentEventDeviceMethodInfo
    ResolveGestureClickMethod "getCurrentEventState" o = Gtk.EventController.EventControllerGetCurrentEventStateMethodInfo
    ResolveGestureClickMethod "getCurrentEventTime" o = Gtk.EventController.EventControllerGetCurrentEventTimeMethodInfo
    ResolveGestureClickMethod "getCurrentSequence" o = Gtk.GestureSingle.GestureSingleGetCurrentSequenceMethodInfo
    ResolveGestureClickMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveGestureClickMethod "getDevice" o = Gtk.Gesture.GestureGetDeviceMethodInfo
    ResolveGestureClickMethod "getExclusive" o = Gtk.GestureSingle.GestureSingleGetExclusiveMethodInfo
    ResolveGestureClickMethod "getGroup" o = Gtk.Gesture.GestureGetGroupMethodInfo
    ResolveGestureClickMethod "getLastEvent" o = Gtk.Gesture.GestureGetLastEventMethodInfo
    ResolveGestureClickMethod "getLastUpdatedSequence" o = Gtk.Gesture.GestureGetLastUpdatedSequenceMethodInfo
    ResolveGestureClickMethod "getName" o = Gtk.EventController.EventControllerGetNameMethodInfo
    ResolveGestureClickMethod "getPoint" o = Gtk.Gesture.GestureGetPointMethodInfo
    ResolveGestureClickMethod "getPropagationLimit" o = Gtk.EventController.EventControllerGetPropagationLimitMethodInfo
    ResolveGestureClickMethod "getPropagationPhase" o = Gtk.EventController.EventControllerGetPropagationPhaseMethodInfo
    ResolveGestureClickMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveGestureClickMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveGestureClickMethod "getSequenceState" o = Gtk.Gesture.GestureGetSequenceStateMethodInfo
    ResolveGestureClickMethod "getSequences" o = Gtk.Gesture.GestureGetSequencesMethodInfo
    ResolveGestureClickMethod "getTouchOnly" o = Gtk.GestureSingle.GestureSingleGetTouchOnlyMethodInfo
    ResolveGestureClickMethod "getWidget" o = Gtk.EventController.EventControllerGetWidgetMethodInfo
    ResolveGestureClickMethod "setButton" o = Gtk.GestureSingle.GestureSingleSetButtonMethodInfo
    ResolveGestureClickMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveGestureClickMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveGestureClickMethod "setExclusive" o = Gtk.GestureSingle.GestureSingleSetExclusiveMethodInfo
    ResolveGestureClickMethod "setName" o = Gtk.EventController.EventControllerSetNameMethodInfo
    ResolveGestureClickMethod "setPropagationLimit" o = Gtk.EventController.EventControllerSetPropagationLimitMethodInfo
    ResolveGestureClickMethod "setPropagationPhase" o = Gtk.EventController.EventControllerSetPropagationPhaseMethodInfo
    ResolveGestureClickMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveGestureClickMethod "setSequenceState" o = Gtk.Gesture.GestureSetSequenceStateMethodInfo
    ResolveGestureClickMethod "setState" o = Gtk.Gesture.GestureSetStateMethodInfo
    ResolveGestureClickMethod "setStaticName" o = Gtk.EventController.EventControllerSetStaticNameMethodInfo
    ResolveGestureClickMethod "setTouchOnly" o = Gtk.GestureSingle.GestureSingleSetTouchOnlyMethodInfo
    ResolveGestureClickMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveGestureClickMethod t GestureClick, O.OverloadedMethod info GestureClick p) => OL.IsLabel t (GestureClick -> 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 ~ ResolveGestureClickMethod t GestureClick, O.OverloadedMethod info GestureClick p, R.HasField t GestureClick p) => R.HasField t GestureClick p where
    getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveGestureClickMethod t GestureClick, O.OverloadedMethodInfo info GestureClick) => OL.IsLabel t (O.MethodProxy info GestureClick) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif
#endif
type GestureClickPressedCallback =
    Int32
    
    -> Double
    
    -> Double
    
    -> IO ()
type C_GestureClickPressedCallback =
    Ptr GestureClick ->                     
    Int32 ->
    CDouble ->
    CDouble ->
    Ptr () ->                               
    IO ()
foreign import ccall "wrapper"
    mk_GestureClickPressedCallback :: C_GestureClickPressedCallback -> IO (FunPtr C_GestureClickPressedCallback)
wrap_GestureClickPressedCallback :: 
    GObject a => (a -> GestureClickPressedCallback) ->
    C_GestureClickPressedCallback
wrap_GestureClickPressedCallback :: forall a.
GObject a =>
(a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
wrap_GestureClickPressedCallback a -> GestureClickPressedCallback
gi'cb Ptr GestureClick
gi'selfPtr Int32
nPress CDouble
x CDouble
y Ptr ()
_ = do
    let x' :: Double
x' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
x
    let y' :: Double
y' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
y
    Ptr GestureClick -> (GestureClick -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr GestureClick
gi'selfPtr ((GestureClick -> IO ()) -> IO ())
-> (GestureClick -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \GestureClick
gi'self -> a -> GestureClickPressedCallback
gi'cb (GestureClick -> a
forall a b. Coercible a b => a -> b
Coerce.coerce GestureClick
gi'self)  Int32
nPress Double
x' Double
y'
onGestureClickPressed :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickPressedCallback) -> m SignalHandlerId
onGestureClickPressed :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a
-> ((?self::a) => GestureClickPressedCallback) -> m SignalHandlerId
onGestureClickPressed a
obj (?self::a) => GestureClickPressedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> GestureClickPressedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => GestureClickPressedCallback
GestureClickPressedCallback
cb
    let wrapped' :: C_GestureClickPressedCallback
wrapped' = (a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
forall a.
GObject a =>
(a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
wrap_GestureClickPressedCallback a -> GestureClickPressedCallback
wrapped
    FunPtr C_GestureClickPressedCallback
wrapped'' <- C_GestureClickPressedCallback
-> IO (FunPtr C_GestureClickPressedCallback)
mk_GestureClickPressedCallback C_GestureClickPressedCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickPressedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"pressed" FunPtr C_GestureClickPressedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterGestureClickPressed :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickPressedCallback) -> m SignalHandlerId
afterGestureClickPressed :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a
-> ((?self::a) => GestureClickPressedCallback) -> m SignalHandlerId
afterGestureClickPressed a
obj (?self::a) => GestureClickPressedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> GestureClickPressedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => GestureClickPressedCallback
GestureClickPressedCallback
cb
    let wrapped' :: C_GestureClickPressedCallback
wrapped' = (a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
forall a.
GObject a =>
(a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
wrap_GestureClickPressedCallback a -> GestureClickPressedCallback
wrapped
    FunPtr C_GestureClickPressedCallback
wrapped'' <- C_GestureClickPressedCallback
-> IO (FunPtr C_GestureClickPressedCallback)
mk_GestureClickPressedCallback C_GestureClickPressedCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickPressedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"pressed" FunPtr C_GestureClickPressedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data GestureClickPressedSignalInfo
instance SignalInfo GestureClickPressedSignalInfo where
    type HaskellCallbackType GestureClickPressedSignalInfo = GestureClickPressedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_GestureClickPressedCallback cb
        cb'' <- mk_GestureClickPressedCallback cb'
        connectSignalFunPtr obj "pressed" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.GestureClick::pressed"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-GestureClick.html#g:signal:pressed"})
#endif
type GestureClickReleasedCallback =
    Int32
    
    -> Double
    
    -> Double
    
    -> IO ()
type C_GestureClickReleasedCallback =
    Ptr GestureClick ->                     
    Int32 ->
    CDouble ->
    CDouble ->
    Ptr () ->                               
    IO ()
foreign import ccall "wrapper"
    mk_GestureClickReleasedCallback :: C_GestureClickReleasedCallback -> IO (FunPtr C_GestureClickReleasedCallback)
wrap_GestureClickReleasedCallback :: 
    GObject a => (a -> GestureClickReleasedCallback) ->
    C_GestureClickReleasedCallback
wrap_GestureClickReleasedCallback :: forall a.
GObject a =>
(a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
wrap_GestureClickReleasedCallback a -> GestureClickPressedCallback
gi'cb Ptr GestureClick
gi'selfPtr Int32
nPress CDouble
x CDouble
y Ptr ()
_ = do
    let x' :: Double
x' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
x
    let y' :: Double
y' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
y
    Ptr GestureClick -> (GestureClick -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr GestureClick
gi'selfPtr ((GestureClick -> IO ()) -> IO ())
-> (GestureClick -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \GestureClick
gi'self -> a -> GestureClickPressedCallback
gi'cb (GestureClick -> a
forall a b. Coercible a b => a -> b
Coerce.coerce GestureClick
gi'self)  Int32
nPress Double
x' Double
y'
onGestureClickReleased :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickReleasedCallback) -> m SignalHandlerId
onGestureClickReleased :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a
-> ((?self::a) => GestureClickPressedCallback) -> m SignalHandlerId
onGestureClickReleased a
obj (?self::a) => GestureClickPressedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> GestureClickPressedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => GestureClickPressedCallback
GestureClickPressedCallback
cb
    let wrapped' :: C_GestureClickPressedCallback
wrapped' = (a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
forall a.
GObject a =>
(a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
wrap_GestureClickReleasedCallback a -> GestureClickPressedCallback
wrapped
    FunPtr C_GestureClickPressedCallback
wrapped'' <- C_GestureClickPressedCallback
-> IO (FunPtr C_GestureClickPressedCallback)
mk_GestureClickReleasedCallback C_GestureClickPressedCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickPressedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"released" FunPtr C_GestureClickPressedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterGestureClickReleased :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickReleasedCallback) -> m SignalHandlerId
afterGestureClickReleased :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a
-> ((?self::a) => GestureClickPressedCallback) -> m SignalHandlerId
afterGestureClickReleased a
obj (?self::a) => GestureClickPressedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> GestureClickPressedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => GestureClickPressedCallback
GestureClickPressedCallback
cb
    let wrapped' :: C_GestureClickPressedCallback
wrapped' = (a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
forall a.
GObject a =>
(a -> GestureClickPressedCallback) -> C_GestureClickPressedCallback
wrap_GestureClickReleasedCallback a -> GestureClickPressedCallback
wrapped
    FunPtr C_GestureClickPressedCallback
wrapped'' <- C_GestureClickPressedCallback
-> IO (FunPtr C_GestureClickPressedCallback)
mk_GestureClickReleasedCallback C_GestureClickPressedCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickPressedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"released" FunPtr C_GestureClickPressedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data GestureClickReleasedSignalInfo
instance SignalInfo GestureClickReleasedSignalInfo where
    type HaskellCallbackType GestureClickReleasedSignalInfo = GestureClickReleasedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_GestureClickReleasedCallback cb
        cb'' <- mk_GestureClickReleasedCallback cb'
        connectSignalFunPtr obj "released" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.GestureClick::released"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-GestureClick.html#g:signal:released"})
#endif
type GestureClickStoppedCallback =
    IO ()
type C_GestureClickStoppedCallback =
    Ptr GestureClick ->                     
    Ptr () ->                               
    IO ()
foreign import ccall "wrapper"
    mk_GestureClickStoppedCallback :: C_GestureClickStoppedCallback -> IO (FunPtr C_GestureClickStoppedCallback)
wrap_GestureClickStoppedCallback :: 
    GObject a => (a -> GestureClickStoppedCallback) ->
    C_GestureClickStoppedCallback
wrap_GestureClickStoppedCallback :: forall a.
GObject a =>
(a -> IO ()) -> C_GestureClickStoppedCallback
wrap_GestureClickStoppedCallback a -> IO ()
gi'cb Ptr GestureClick
gi'selfPtr Ptr ()
_ = do
    Ptr GestureClick -> (GestureClick -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr GestureClick
gi'selfPtr ((GestureClick -> IO ()) -> IO ())
-> (GestureClick -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \GestureClick
gi'self -> a -> IO ()
gi'cb (GestureClick -> a
forall a b. Coercible a b => a -> b
Coerce.coerce GestureClick
gi'self) 
onGestureClickStopped :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickStoppedCallback) -> m SignalHandlerId
onGestureClickStopped :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onGestureClickStopped a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_GestureClickStoppedCallback
wrapped' = (a -> IO ()) -> C_GestureClickStoppedCallback
forall a.
GObject a =>
(a -> IO ()) -> C_GestureClickStoppedCallback
wrap_GestureClickStoppedCallback a -> IO ()
wrapped
    FunPtr C_GestureClickStoppedCallback
wrapped'' <- C_GestureClickStoppedCallback
-> IO (FunPtr C_GestureClickStoppedCallback)
mk_GestureClickStoppedCallback C_GestureClickStoppedCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickStoppedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"stopped" FunPtr C_GestureClickStoppedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterGestureClickStopped :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickStoppedCallback) -> m SignalHandlerId
afterGestureClickStopped :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterGestureClickStopped a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_GestureClickStoppedCallback
wrapped' = (a -> IO ()) -> C_GestureClickStoppedCallback
forall a.
GObject a =>
(a -> IO ()) -> C_GestureClickStoppedCallback
wrap_GestureClickStoppedCallback a -> IO ()
wrapped
    FunPtr C_GestureClickStoppedCallback
wrapped'' <- C_GestureClickStoppedCallback
-> IO (FunPtr C_GestureClickStoppedCallback)
mk_GestureClickStoppedCallback C_GestureClickStoppedCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickStoppedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"stopped" FunPtr C_GestureClickStoppedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data GestureClickStoppedSignalInfo
instance SignalInfo GestureClickStoppedSignalInfo where
    type HaskellCallbackType GestureClickStoppedSignalInfo = GestureClickStoppedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_GestureClickStoppedCallback cb
        cb'' <- mk_GestureClickStoppedCallback cb'
        connectSignalFunPtr obj "stopped" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.GestureClick::stopped"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-GestureClick.html#g:signal:stopped"})
#endif
type GestureClickUnpairedReleaseCallback =
    Double
    
    -> Double
    
    -> Word32
    
    -> Maybe Gdk.EventSequence.EventSequence
    
    -> IO ()
type C_GestureClickUnpairedReleaseCallback =
    Ptr GestureClick ->                     
    CDouble ->
    CDouble ->
    Word32 ->
    Ptr Gdk.EventSequence.EventSequence ->
    Ptr () ->                               
    IO ()
foreign import ccall "wrapper"
    mk_GestureClickUnpairedReleaseCallback :: C_GestureClickUnpairedReleaseCallback -> IO (FunPtr C_GestureClickUnpairedReleaseCallback)
wrap_GestureClickUnpairedReleaseCallback :: 
    GObject a => (a -> GestureClickUnpairedReleaseCallback) ->
    C_GestureClickUnpairedReleaseCallback
wrap_GestureClickUnpairedReleaseCallback :: forall a.
GObject a =>
(a -> GestureClickUnpairedReleaseCallback)
-> C_GestureClickUnpairedReleaseCallback
wrap_GestureClickUnpairedReleaseCallback a -> GestureClickUnpairedReleaseCallback
gi'cb Ptr GestureClick
gi'selfPtr CDouble
x CDouble
y Word32
button Ptr EventSequence
sequence Ptr ()
_ = do
    let x' :: Double
x' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
x
    let y' :: Double
y' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
y
    Maybe EventSequence
maybeSequence <-
        if Ptr EventSequence
sequence Ptr EventSequence -> Ptr EventSequence -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr EventSequence
forall a. Ptr a
nullPtr
        then Maybe EventSequence -> IO (Maybe EventSequence)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe EventSequence
forall a. Maybe a
Nothing
        else do
            Ptr EventSequence
-> (EventSequence -> IO (Maybe EventSequence))
-> IO (Maybe EventSequence)
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient  Ptr EventSequence
sequence ((EventSequence -> IO (Maybe EventSequence))
 -> IO (Maybe EventSequence))
-> (EventSequence -> IO (Maybe EventSequence))
-> IO (Maybe EventSequence)
forall a b. (a -> b) -> a -> b
$ \EventSequence
sequence' -> do
                Maybe EventSequence -> IO (Maybe EventSequence)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe EventSequence -> IO (Maybe EventSequence))
-> Maybe EventSequence -> IO (Maybe EventSequence)
forall a b. (a -> b) -> a -> b
$ EventSequence -> Maybe EventSequence
forall a. a -> Maybe a
Just EventSequence
sequence'
    Ptr GestureClick -> (GestureClick -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr GestureClick
gi'selfPtr ((GestureClick -> IO ()) -> IO ())
-> (GestureClick -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \GestureClick
gi'self -> a -> GestureClickUnpairedReleaseCallback
gi'cb (GestureClick -> a
forall a b. Coercible a b => a -> b
Coerce.coerce GestureClick
gi'self)  Double
x' Double
y' Word32
button Maybe EventSequence
maybeSequence
onGestureClickUnpairedRelease :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickUnpairedReleaseCallback) -> m SignalHandlerId
onGestureClickUnpairedRelease :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a
-> ((?self::a) => GestureClickUnpairedReleaseCallback)
-> m SignalHandlerId
onGestureClickUnpairedRelease a
obj (?self::a) => GestureClickUnpairedReleaseCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> GestureClickUnpairedReleaseCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => GestureClickUnpairedReleaseCallback
GestureClickUnpairedReleaseCallback
cb
    let wrapped' :: C_GestureClickUnpairedReleaseCallback
wrapped' = (a -> GestureClickUnpairedReleaseCallback)
-> C_GestureClickUnpairedReleaseCallback
forall a.
GObject a =>
(a -> GestureClickUnpairedReleaseCallback)
-> C_GestureClickUnpairedReleaseCallback
wrap_GestureClickUnpairedReleaseCallback a -> GestureClickUnpairedReleaseCallback
wrapped
    FunPtr C_GestureClickUnpairedReleaseCallback
wrapped'' <- C_GestureClickUnpairedReleaseCallback
-> IO (FunPtr C_GestureClickUnpairedReleaseCallback)
mk_GestureClickUnpairedReleaseCallback C_GestureClickUnpairedReleaseCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickUnpairedReleaseCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"unpaired-release" FunPtr C_GestureClickUnpairedReleaseCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterGestureClickUnpairedRelease :: (IsGestureClick a, MonadIO m) => a -> ((?self :: a) => GestureClickUnpairedReleaseCallback) -> m SignalHandlerId
afterGestureClickUnpairedRelease :: forall a (m :: * -> *).
(IsGestureClick a, MonadIO m) =>
a
-> ((?self::a) => GestureClickUnpairedReleaseCallback)
-> m SignalHandlerId
afterGestureClickUnpairedRelease a
obj (?self::a) => GestureClickUnpairedReleaseCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> GestureClickUnpairedReleaseCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => GestureClickUnpairedReleaseCallback
GestureClickUnpairedReleaseCallback
cb
    let wrapped' :: C_GestureClickUnpairedReleaseCallback
wrapped' = (a -> GestureClickUnpairedReleaseCallback)
-> C_GestureClickUnpairedReleaseCallback
forall a.
GObject a =>
(a -> GestureClickUnpairedReleaseCallback)
-> C_GestureClickUnpairedReleaseCallback
wrap_GestureClickUnpairedReleaseCallback a -> GestureClickUnpairedReleaseCallback
wrapped
    FunPtr C_GestureClickUnpairedReleaseCallback
wrapped'' <- C_GestureClickUnpairedReleaseCallback
-> IO (FunPtr C_GestureClickUnpairedReleaseCallback)
mk_GestureClickUnpairedReleaseCallback C_GestureClickUnpairedReleaseCallback
wrapped'
    a
-> Text
-> FunPtr C_GestureClickUnpairedReleaseCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"unpaired-release" FunPtr C_GestureClickUnpairedReleaseCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data GestureClickUnpairedReleaseSignalInfo
instance SignalInfo GestureClickUnpairedReleaseSignalInfo where
    type HaskellCallbackType GestureClickUnpairedReleaseSignalInfo = GestureClickUnpairedReleaseCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_GestureClickUnpairedReleaseCallback cb
        cb'' <- mk_GestureClickUnpairedReleaseCallback cb'
        connectSignalFunPtr obj "unpaired-release" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.GestureClick::unpaired-release"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-GestureClick.html#g:signal:unpairedRelease"})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList GestureClick
type instance O.AttributeList GestureClick = GestureClickAttributeList
type GestureClickAttributeList = ('[ '("button", Gtk.GestureSingle.GestureSingleButtonPropertyInfo), '("exclusive", Gtk.GestureSingle.GestureSingleExclusivePropertyInfo), '("nPoints", Gtk.Gesture.GestureNPointsPropertyInfo), '("name", Gtk.EventController.EventControllerNamePropertyInfo), '("propagationLimit", Gtk.EventController.EventControllerPropagationLimitPropertyInfo), '("propagationPhase", Gtk.EventController.EventControllerPropagationPhasePropertyInfo), '("touchOnly", Gtk.GestureSingle.GestureSingleTouchOnlyPropertyInfo), '("widget", Gtk.EventController.EventControllerWidgetPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList GestureClick = GestureClickSignalList
type GestureClickSignalList = ('[ '("begin", Gtk.Gesture.GestureBeginSignalInfo), '("cancel", Gtk.Gesture.GestureCancelSignalInfo), '("end", Gtk.Gesture.GestureEndSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("pressed", GestureClickPressedSignalInfo), '("released", GestureClickReleasedSignalInfo), '("sequenceStateChanged", Gtk.Gesture.GestureSequenceStateChangedSignalInfo), '("stopped", GestureClickStoppedSignalInfo), '("unpairedRelease", GestureClickUnpairedReleaseSignalInfo), '("update", Gtk.Gesture.GestureUpdateSignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gtk_gesture_click_new" gtk_gesture_click_new :: 
    IO (Ptr GestureClick)
gestureClickNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m GestureClick
    
gestureClickNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m GestureClick
gestureClickNew  = IO GestureClick -> m GestureClick
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GestureClick -> m GestureClick)
-> IO GestureClick -> m GestureClick
forall a b. (a -> b) -> a -> b
$ do
    Ptr GestureClick
result <- IO (Ptr GestureClick)
gtk_gesture_click_new
    Text -> Ptr GestureClick -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"gestureClickNew" Ptr GestureClick
result
    GestureClick
result' <- ((ManagedPtr GestureClick -> GestureClick)
-> Ptr GestureClick -> IO GestureClick
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr GestureClick -> GestureClick
GestureClick) Ptr GestureClick
result
    GestureClick -> IO GestureClick
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return GestureClick
result'
#if defined(ENABLE_OVERLOADING)
#endif