{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gdk.Objects.ButtonEvent
(
ButtonEvent(..) ,
IsButtonEvent ,
toButtonEvent ,
#if defined(ENABLE_OVERLOADING)
ResolveButtonEventMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
ButtonEventGetButtonMethodInfo ,
#endif
buttonEventGetButton ,
) 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.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 {-# SOURCE #-} qualified GI.Gdk.Objects.Event as Gdk.Event
newtype ButtonEvent = ButtonEvent (SP.ManagedPtr ButtonEvent)
deriving (ButtonEvent -> ButtonEvent -> Bool
(ButtonEvent -> ButtonEvent -> Bool)
-> (ButtonEvent -> ButtonEvent -> Bool) -> Eq ButtonEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ButtonEvent -> ButtonEvent -> Bool
$c/= :: ButtonEvent -> ButtonEvent -> Bool
== :: ButtonEvent -> ButtonEvent -> Bool
$c== :: ButtonEvent -> ButtonEvent -> Bool
Eq)
instance SP.ManagedPtrNewtype ButtonEvent where
toManagedPtr :: ButtonEvent -> ManagedPtr ButtonEvent
toManagedPtr (ButtonEvent ManagedPtr ButtonEvent
p) = ManagedPtr ButtonEvent
p
foreign import ccall "gdk_button_event_get_type"
c_gdk_button_event_get_type :: IO B.Types.GType
instance B.Types.TypedObject ButtonEvent where
glibType :: IO GType
glibType = IO GType
c_gdk_button_event_get_type
class (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf ButtonEvent o) => IsButtonEvent o
instance (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf ButtonEvent o) => IsButtonEvent o
instance O.HasParentTypes ButtonEvent
type instance O.ParentTypes ButtonEvent = '[Gdk.Event.Event]
toButtonEvent :: (MIO.MonadIO m, IsButtonEvent o) => o -> m ButtonEvent
toButtonEvent :: forall (m :: * -> *) o.
(MonadIO m, IsButtonEvent o) =>
o -> m ButtonEvent
toButtonEvent = IO ButtonEvent -> m ButtonEvent
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO ButtonEvent -> m ButtonEvent)
-> (o -> IO ButtonEvent) -> o -> m ButtonEvent
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr ButtonEvent -> ButtonEvent) -> o -> IO ButtonEvent
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr ButtonEvent -> ButtonEvent
ButtonEvent
#if defined(ENABLE_OVERLOADING)
type family ResolveButtonEventMethod (t :: Symbol) (o :: *) :: * where
ResolveButtonEventMethod "ref" o = Gdk.Event.EventRefMethodInfo
ResolveButtonEventMethod "triggersContextMenu" o = Gdk.Event.EventTriggersContextMenuMethodInfo
ResolveButtonEventMethod "unref" o = Gdk.Event.EventUnrefMethodInfo
ResolveButtonEventMethod "getAxes" o = Gdk.Event.EventGetAxesMethodInfo
ResolveButtonEventMethod "getAxis" o = Gdk.Event.EventGetAxisMethodInfo
ResolveButtonEventMethod "getButton" o = ButtonEventGetButtonMethodInfo
ResolveButtonEventMethod "getDevice" o = Gdk.Event.EventGetDeviceMethodInfo
ResolveButtonEventMethod "getDeviceTool" o = Gdk.Event.EventGetDeviceToolMethodInfo
ResolveButtonEventMethod "getDisplay" o = Gdk.Event.EventGetDisplayMethodInfo
ResolveButtonEventMethod "getEventSequence" o = Gdk.Event.EventGetEventSequenceMethodInfo
ResolveButtonEventMethod "getEventType" o = Gdk.Event.EventGetEventTypeMethodInfo
ResolveButtonEventMethod "getHistory" o = Gdk.Event.EventGetHistoryMethodInfo
ResolveButtonEventMethod "getModifierState" o = Gdk.Event.EventGetModifierStateMethodInfo
ResolveButtonEventMethod "getPointerEmulated" o = Gdk.Event.EventGetPointerEmulatedMethodInfo
ResolveButtonEventMethod "getPosition" o = Gdk.Event.EventGetPositionMethodInfo
ResolveButtonEventMethod "getSeat" o = Gdk.Event.EventGetSeatMethodInfo
ResolveButtonEventMethod "getSurface" o = Gdk.Event.EventGetSurfaceMethodInfo
ResolveButtonEventMethod "getTime" o = Gdk.Event.EventGetTimeMethodInfo
ResolveButtonEventMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveButtonEventMethod t ButtonEvent, O.OverloadedMethod info ButtonEvent p) => OL.IsLabel t (ButtonEvent -> 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 ~ ResolveButtonEventMethod t ButtonEvent, O.OverloadedMethod info ButtonEvent p, R.HasField t ButtonEvent p) => R.HasField t ButtonEvent p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveButtonEventMethod t ButtonEvent, O.OverloadedMethodInfo info ButtonEvent) => OL.IsLabel t (O.MethodProxy info ButtonEvent) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
instance BoxedPtr ButtonEvent where
boxedPtrCopy :: ButtonEvent -> IO ButtonEvent
boxedPtrCopy = ButtonEvent -> IO ButtonEvent
forall (m :: * -> *) a. Monad m => a -> m a
return
boxedPtrFree :: ButtonEvent -> IO ()
boxedPtrFree = \ButtonEvent
_x -> () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "gdk_button_event_get_button" gdk_button_event_get_button ::
Ptr ButtonEvent ->
IO Word32
buttonEventGetButton ::
(B.CallStack.HasCallStack, MonadIO m, IsButtonEvent a) =>
a
-> m Word32
buttonEventGetButton :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsButtonEvent a) =>
a -> m Word32
buttonEventGetButton a
event = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr ButtonEvent
event' <- a -> IO (Ptr ButtonEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
Word32
result <- Ptr ButtonEvent -> IO Word32
gdk_button_event_get_button Ptr ButtonEvent
event'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data ButtonEventGetButtonMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsButtonEvent a) => O.OverloadedMethod ButtonEventGetButtonMethodInfo a signature where
overloadedMethod = buttonEventGetButton
instance O.OverloadedMethodInfo ButtonEventGetButtonMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.ButtonEvent.buttonEventGetButton",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.4/docs/GI-Gdk-Objects-ButtonEvent.html#v:buttonEventGetButton"
})
#endif