{-# 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