packages feed

gi-gtk-0.3.18.13: GI/Gtk/Objects/GestureLongPress.hs


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.GestureLongPress
    ( 

-- * Exported types
    GestureLongPress(..)                    ,
    GestureLongPressK                       ,
    toGestureLongPress                      ,
    noGestureLongPress                      ,


 -- * Methods
-- ** gestureLongPressNew
    gestureLongPressNew                     ,




 -- * Properties
-- ** DelayFactor
    GestureLongPressDelayFactorPropertyInfo ,
    constructGestureLongPressDelayFactor    ,
    getGestureLongPressDelayFactor          ,
    setGestureLongPressDelayFactor          ,




 -- * Signals
-- ** Cancelled
    GestureLongPressCancelledCallback       ,
    GestureLongPressCancelledCallbackC      ,
    GestureLongPressCancelledSignalInfo     ,
    afterGestureLongPressCancelled          ,
    gestureLongPressCancelledCallbackWrapper,
    gestureLongPressCancelledClosure        ,
    mkGestureLongPressCancelledCallback     ,
    noGestureLongPressCancelledCallback     ,
    onGestureLongPressCancelled             ,


-- ** Pressed
    GestureLongPressPressedCallback         ,
    GestureLongPressPressedCallbackC        ,
    GestureLongPressPressedSignalInfo       ,
    afterGestureLongPressPressed            ,
    gestureLongPressPressedCallbackWrapper  ,
    gestureLongPressPressedClosure          ,
    mkGestureLongPressPressedCallback       ,
    noGestureLongPressPressedCallback       ,
    onGestureLongPressPressed               ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.GObject as GObject

newtype GestureLongPress = GestureLongPress (ForeignPtr GestureLongPress)
foreign import ccall "gtk_gesture_long_press_get_type"
    c_gtk_gesture_long_press_get_type :: IO GType

type instance ParentTypes GestureLongPress = GestureLongPressParentTypes
type GestureLongPressParentTypes = '[GestureSingle, Gesture, EventController, GObject.Object]

instance GObject GestureLongPress where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_gesture_long_press_get_type
    

class GObject o => GestureLongPressK o
instance (GObject o, IsDescendantOf GestureLongPress o) => GestureLongPressK o

toGestureLongPress :: GestureLongPressK o => o -> IO GestureLongPress
toGestureLongPress = unsafeCastTo GestureLongPress

noGestureLongPress :: Maybe GestureLongPress
noGestureLongPress = Nothing

type family ResolveGestureLongPressMethod (t :: Symbol) (o :: *) :: * where
    ResolveGestureLongPressMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveGestureLongPressMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveGestureLongPressMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveGestureLongPressMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveGestureLongPressMethod "group" o = GestureGroupMethodInfo
    ResolveGestureLongPressMethod "handleEvent" o = EventControllerHandleEventMethodInfo
    ResolveGestureLongPressMethod "handlesSequence" o = GestureHandlesSequenceMethodInfo
    ResolveGestureLongPressMethod "isActive" o = GestureIsActiveMethodInfo
    ResolveGestureLongPressMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveGestureLongPressMethod "isGroupedWith" o = GestureIsGroupedWithMethodInfo
    ResolveGestureLongPressMethod "isRecognized" o = GestureIsRecognizedMethodInfo
    ResolveGestureLongPressMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveGestureLongPressMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveGestureLongPressMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveGestureLongPressMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveGestureLongPressMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveGestureLongPressMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveGestureLongPressMethod "reset" o = EventControllerResetMethodInfo
    ResolveGestureLongPressMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveGestureLongPressMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveGestureLongPressMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveGestureLongPressMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveGestureLongPressMethod "ungroup" o = GestureUngroupMethodInfo
    ResolveGestureLongPressMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveGestureLongPressMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveGestureLongPressMethod "getBoundingBox" o = GestureGetBoundingBoxMethodInfo
    ResolveGestureLongPressMethod "getBoundingBoxCenter" o = GestureGetBoundingBoxCenterMethodInfo
    ResolveGestureLongPressMethod "getButton" o = GestureSingleGetButtonMethodInfo
    ResolveGestureLongPressMethod "getCurrentButton" o = GestureSingleGetCurrentButtonMethodInfo
    ResolveGestureLongPressMethod "getCurrentSequence" o = GestureSingleGetCurrentSequenceMethodInfo
    ResolveGestureLongPressMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveGestureLongPressMethod "getDevice" o = GestureGetDeviceMethodInfo
    ResolveGestureLongPressMethod "getExclusive" o = GestureSingleGetExclusiveMethodInfo
    ResolveGestureLongPressMethod "getGroup" o = GestureGetGroupMethodInfo
    ResolveGestureLongPressMethod "getLastEvent" o = GestureGetLastEventMethodInfo
    ResolveGestureLongPressMethod "getLastUpdatedSequence" o = GestureGetLastUpdatedSequenceMethodInfo
    ResolveGestureLongPressMethod "getPoint" o = GestureGetPointMethodInfo
    ResolveGestureLongPressMethod "getPropagationPhase" o = EventControllerGetPropagationPhaseMethodInfo
    ResolveGestureLongPressMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveGestureLongPressMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveGestureLongPressMethod "getSequenceState" o = GestureGetSequenceStateMethodInfo
    ResolveGestureLongPressMethod "getSequences" o = GestureGetSequencesMethodInfo
    ResolveGestureLongPressMethod "getTouchOnly" o = GestureSingleGetTouchOnlyMethodInfo
    ResolveGestureLongPressMethod "getWidget" o = EventControllerGetWidgetMethodInfo
    ResolveGestureLongPressMethod "getWindow" o = GestureGetWindowMethodInfo
    ResolveGestureLongPressMethod "setButton" o = GestureSingleSetButtonMethodInfo
    ResolveGestureLongPressMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveGestureLongPressMethod "setExclusive" o = GestureSingleSetExclusiveMethodInfo
    ResolveGestureLongPressMethod "setPropagationPhase" o = EventControllerSetPropagationPhaseMethodInfo
    ResolveGestureLongPressMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveGestureLongPressMethod "setSequenceState" o = GestureSetSequenceStateMethodInfo
    ResolveGestureLongPressMethod "setState" o = GestureSetStateMethodInfo
    ResolveGestureLongPressMethod "setTouchOnly" o = GestureSingleSetTouchOnlyMethodInfo
    ResolveGestureLongPressMethod "setWindow" o = GestureSetWindowMethodInfo
    ResolveGestureLongPressMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveGestureLongPressMethod t GestureLongPress, MethodInfo info GestureLongPress p) => IsLabelProxy t (GestureLongPress -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveGestureLongPressMethod t GestureLongPress, MethodInfo info GestureLongPress p) => IsLabel t (GestureLongPress -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- signal GestureLongPress::cancelled
type GestureLongPressCancelledCallback =
    IO ()

noGestureLongPressCancelledCallback :: Maybe GestureLongPressCancelledCallback
noGestureLongPressCancelledCallback = Nothing

type GestureLongPressCancelledCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkGestureLongPressCancelledCallback :: GestureLongPressCancelledCallbackC -> IO (FunPtr GestureLongPressCancelledCallbackC)

gestureLongPressCancelledClosure :: GestureLongPressCancelledCallback -> IO Closure
gestureLongPressCancelledClosure cb = newCClosure =<< mkGestureLongPressCancelledCallback wrapped
    where wrapped = gestureLongPressCancelledCallbackWrapper cb

gestureLongPressCancelledCallbackWrapper ::
    GestureLongPressCancelledCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
gestureLongPressCancelledCallbackWrapper _cb _ _ = do
    _cb 

onGestureLongPressCancelled :: (GObject a, MonadIO m) => a -> GestureLongPressCancelledCallback -> m SignalHandlerId
onGestureLongPressCancelled obj cb = liftIO $ connectGestureLongPressCancelled obj cb SignalConnectBefore
afterGestureLongPressCancelled :: (GObject a, MonadIO m) => a -> GestureLongPressCancelledCallback -> m SignalHandlerId
afterGestureLongPressCancelled obj cb = connectGestureLongPressCancelled obj cb SignalConnectAfter

connectGestureLongPressCancelled :: (GObject a, MonadIO m) =>
                                    a -> GestureLongPressCancelledCallback -> SignalConnectMode -> m SignalHandlerId
connectGestureLongPressCancelled obj cb after = liftIO $ do
    cb' <- mkGestureLongPressCancelledCallback (gestureLongPressCancelledCallbackWrapper cb)
    connectSignalFunPtr obj "cancelled" cb' after

-- signal GestureLongPress::pressed
type GestureLongPressPressedCallback =
    Double ->
    Double ->
    IO ()

noGestureLongPressPressedCallback :: Maybe GestureLongPressPressedCallback
noGestureLongPressPressedCallback = Nothing

type GestureLongPressPressedCallbackC =
    Ptr () ->                               -- object
    CDouble ->
    CDouble ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkGestureLongPressPressedCallback :: GestureLongPressPressedCallbackC -> IO (FunPtr GestureLongPressPressedCallbackC)

gestureLongPressPressedClosure :: GestureLongPressPressedCallback -> IO Closure
gestureLongPressPressedClosure cb = newCClosure =<< mkGestureLongPressPressedCallback wrapped
    where wrapped = gestureLongPressPressedCallbackWrapper cb

gestureLongPressPressedCallbackWrapper ::
    GestureLongPressPressedCallback ->
    Ptr () ->
    CDouble ->
    CDouble ->
    Ptr () ->
    IO ()
gestureLongPressPressedCallbackWrapper _cb _ x y _ = do
    let x' = realToFrac x
    let y' = realToFrac y
    _cb  x' y'

onGestureLongPressPressed :: (GObject a, MonadIO m) => a -> GestureLongPressPressedCallback -> m SignalHandlerId
onGestureLongPressPressed obj cb = liftIO $ connectGestureLongPressPressed obj cb SignalConnectBefore
afterGestureLongPressPressed :: (GObject a, MonadIO m) => a -> GestureLongPressPressedCallback -> m SignalHandlerId
afterGestureLongPressPressed obj cb = connectGestureLongPressPressed obj cb SignalConnectAfter

connectGestureLongPressPressed :: (GObject a, MonadIO m) =>
                                  a -> GestureLongPressPressedCallback -> SignalConnectMode -> m SignalHandlerId
connectGestureLongPressPressed obj cb after = liftIO $ do
    cb' <- mkGestureLongPressPressedCallback (gestureLongPressPressedCallbackWrapper cb)
    connectSignalFunPtr obj "pressed" cb' after

-- VVV Prop "delay-factor"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getGestureLongPressDelayFactor :: (MonadIO m, GestureLongPressK o) => o -> m Double
getGestureLongPressDelayFactor obj = liftIO $ getObjectPropertyDouble obj "delay-factor"

setGestureLongPressDelayFactor :: (MonadIO m, GestureLongPressK o) => o -> Double -> m ()
setGestureLongPressDelayFactor obj val = liftIO $ setObjectPropertyDouble obj "delay-factor" val

constructGestureLongPressDelayFactor :: Double -> IO ([Char], GValue)
constructGestureLongPressDelayFactor val = constructObjectPropertyDouble "delay-factor" val

data GestureLongPressDelayFactorPropertyInfo
instance AttrInfo GestureLongPressDelayFactorPropertyInfo where
    type AttrAllowedOps GestureLongPressDelayFactorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint GestureLongPressDelayFactorPropertyInfo = (~) Double
    type AttrBaseTypeConstraint GestureLongPressDelayFactorPropertyInfo = GestureLongPressK
    type AttrGetType GestureLongPressDelayFactorPropertyInfo = Double
    type AttrLabel GestureLongPressDelayFactorPropertyInfo = "delay-factor"
    attrGet _ = getGestureLongPressDelayFactor
    attrSet _ = setGestureLongPressDelayFactor
    attrConstruct _ = constructGestureLongPressDelayFactor

type instance AttributeList GestureLongPress = GestureLongPressAttributeList
type GestureLongPressAttributeList = ('[ '("button", GestureSingleButtonPropertyInfo), '("delayFactor", GestureLongPressDelayFactorPropertyInfo), '("exclusive", GestureSingleExclusivePropertyInfo), '("nPoints", GestureNPointsPropertyInfo), '("propagationPhase", EventControllerPropagationPhasePropertyInfo), '("touchOnly", GestureSingleTouchOnlyPropertyInfo), '("widget", EventControllerWidgetPropertyInfo), '("window", GestureWindowPropertyInfo)] :: [(Symbol, *)])

data GestureLongPressCancelledSignalInfo
instance SignalInfo GestureLongPressCancelledSignalInfo where
    type HaskellCallbackType GestureLongPressCancelledSignalInfo = GestureLongPressCancelledCallback
    connectSignal _ = connectGestureLongPressCancelled

data GestureLongPressPressedSignalInfo
instance SignalInfo GestureLongPressPressedSignalInfo where
    type HaskellCallbackType GestureLongPressPressedSignalInfo = GestureLongPressPressedCallback
    connectSignal _ = connectGestureLongPressPressed

type instance SignalList GestureLongPress = GestureLongPressSignalList
type GestureLongPressSignalList = ('[ '("begin", GestureBeginSignalInfo), '("cancel", GestureCancelSignalInfo), '("cancelled", GestureLongPressCancelledSignalInfo), '("end", GestureEndSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("pressed", GestureLongPressPressedSignalInfo), '("sequenceStateChanged", GestureSequenceStateChangedSignalInfo), '("update", GestureUpdateSignalInfo)] :: [(Symbol, *)])

-- method GestureLongPress::new
-- method type : Constructor
-- Args : [Arg {argCName = "widget", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gtk" "GestureLongPress"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_gesture_long_press_new" gtk_gesture_long_press_new :: 
    Ptr Widget ->                           -- widget : TInterface "Gtk" "Widget"
    IO (Ptr GestureLongPress)


gestureLongPressNew ::
    (MonadIO m, WidgetK a) =>
    a                                       -- widget
    -> m GestureLongPress                   -- result
gestureLongPressNew widget = liftIO $ do
    let widget' = unsafeManagedPtrCastPtr widget
    result <- gtk_gesture_long_press_new widget'
    checkUnexpectedReturnNULL "gtk_gesture_long_press_new" result
    result' <- (wrapObject GestureLongPress) result
    touchManagedPtr widget
    return result'