packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Gui/QDragEnterEvent.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Gui.QDragEnterEvent (
  castQDragEnterEventToQDragMoveEvent,
  castQDragMoveEventToQDragEnterEvent,
  castQDragEnterEventToQDropEvent,
  castQDropEventToQDragEnterEvent,
  castQDragEnterEventToQEvent,
  castQEventToQDragEnterEvent,
  QDragEnterEventValue (..),
  QDragEnterEventConstPtr (..),
  QDragEnterEventPtr (..),
  QDragEnterEventConst (..),
  castQDragEnterEventToConst,
  QDragEnterEvent (..),
  castQDragEnterEventToNonconst,
  new,
  QDragEnterEventSuper (..),
  QDragEnterEventSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Flags as QtahFlags
import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
import qualified Graphics.UI.Qtah.Generated.Core.QMimeData as M90
import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import qualified Graphics.UI.Qtah.Generated.Gui.QDragMoveEvent as M264
import qualified Graphics.UI.Qtah.Generated.Gui.QDropEvent as M266
import Prelude (($), (.), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QDragEnterEvent_new" new' ::  HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDragEnterEvent)
foreign import ccall "gencast__QDragEnterEvent__QDragMoveEvent" castQDragEnterEventToQDragMoveEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyF.Ptr M264.QDragMoveEventConst
foreign import ccall "gencast__QDragMoveEvent__QDragEnterEvent" castQDragMoveEventToQDragEnterEvent :: HoppyF.Ptr M264.QDragMoveEventConst -> HoppyF.Ptr QDragEnterEventConst
foreign import ccall "gencast__QDragEnterEvent__QDropEvent" castQDragEnterEventToQDropEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyF.Ptr M266.QDropEventConst
foreign import ccall "gencast__QDropEvent__QDragEnterEvent" castQDropEventToQDragEnterEvent :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr QDragEnterEventConst
foreign import ccall "gencast__QDragEnterEvent__QEvent" castQDragEnterEventToQEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyF.Ptr M34.QEventConst
foreign import ccall "gencast__QEvent__QDragEnterEvent" castQEventToQDragEnterEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDragEnterEventConst
foreign import ccall "gendel__QDragEnterEvent" delete'QDragEnterEvent :: HoppyF.Ptr QDragEnterEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QDragEnterEvent" deletePtr'QDragEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr QDragEnterEventConst -> HoppyP.IO ())

class QDragEnterEventValue a where
  withQDragEnterEventPtr :: a -> (QDragEnterEventConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QDragEnterEventConstPtr a => QDragEnterEventValue a where
  withQDragEnterEventPtr = HoppyP.flip ($) . toQDragEnterEventConst

class (M264.QDragMoveEventConstPtr this) => QDragEnterEventConstPtr this where
  toQDragEnterEventConst :: this -> QDragEnterEventConst

class (QDragEnterEventConstPtr this, M264.QDragMoveEventPtr this) => QDragEnterEventPtr this where
  toQDragEnterEvent :: this -> QDragEnterEvent

data QDragEnterEventConst =
    QDragEnterEventConst (HoppyF.Ptr QDragEnterEventConst)
  | QDragEnterEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragEnterEventConst)
  deriving (HoppyP.Show)

instance HoppyP.Eq QDragEnterEventConst where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QDragEnterEventConst where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQDragEnterEventToConst :: QDragEnterEvent -> QDragEnterEventConst
castQDragEnterEventToConst (QDragEnterEvent ptr') = QDragEnterEventConst $ HoppyF.castPtr ptr'
castQDragEnterEventToConst (QDragEnterEventGc fptr' ptr') = QDragEnterEventConstGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QDragEnterEventConst where
  nullptr = QDragEnterEventConst HoppyF.nullPtr
  
  withCppPtr (QDragEnterEventConst ptr') f' = f' ptr'
  withCppPtr (QDragEnterEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QDragEnterEventConst ptr') = ptr'
  toPtr (QDragEnterEventConstGc _ ptr') = ptr'
  
  touchCppPtr (QDragEnterEventConst _) = HoppyP.return ()
  touchCppPtr (QDragEnterEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QDragEnterEventConst where
  delete (QDragEnterEventConst ptr') = delete'QDragEnterEvent ptr'
  delete (QDragEnterEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragEnterEventConst", " object."]
  
  toGc this'@(QDragEnterEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragEnterEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QDragEnterEventConstGc {}) = HoppyP.return this'

instance QDragEnterEventConstPtr QDragEnterEventConst where
  toQDragEnterEventConst = HoppyP.id

instance M264.QDragMoveEventConstPtr QDragEnterEventConst where
  toQDragMoveEventConst (QDragEnterEventConst ptr') = M264.QDragMoveEventConst $ castQDragEnterEventToQDragMoveEvent ptr'
  toQDragMoveEventConst (QDragEnterEventConstGc fptr' ptr') = M264.QDragMoveEventConstGc fptr' $ castQDragEnterEventToQDragMoveEvent ptr'

instance M266.QDropEventConstPtr QDragEnterEventConst where
  toQDropEventConst (QDragEnterEventConst ptr') = M266.QDropEventConst $ castQDragEnterEventToQDropEvent ptr'
  toQDropEventConst (QDragEnterEventConstGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragEnterEventToQDropEvent ptr'

instance M34.QEventConstPtr QDragEnterEventConst where
  toQEventConst (QDragEnterEventConst ptr') = M34.QEventConst $ castQDragEnterEventToQEvent ptr'
  toQEventConst (QDragEnterEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragEnterEventToQEvent ptr'

data QDragEnterEvent =
    QDragEnterEvent (HoppyF.Ptr QDragEnterEvent)
  | QDragEnterEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragEnterEvent)
  deriving (HoppyP.Show)

instance HoppyP.Eq QDragEnterEvent where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QDragEnterEvent where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQDragEnterEventToNonconst :: QDragEnterEventConst -> QDragEnterEvent
castQDragEnterEventToNonconst (QDragEnterEventConst ptr') = QDragEnterEvent $ HoppyF.castPtr ptr'
castQDragEnterEventToNonconst (QDragEnterEventConstGc fptr' ptr') = QDragEnterEventGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QDragEnterEvent where
  nullptr = QDragEnterEvent HoppyF.nullPtr
  
  withCppPtr (QDragEnterEvent ptr') f' = f' ptr'
  withCppPtr (QDragEnterEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QDragEnterEvent ptr') = ptr'
  toPtr (QDragEnterEventGc _ ptr') = ptr'
  
  touchCppPtr (QDragEnterEvent _) = HoppyP.return ()
  touchCppPtr (QDragEnterEventGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QDragEnterEvent where
  delete (QDragEnterEvent ptr') = delete'QDragEnterEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDragEnterEventConst)
  delete (QDragEnterEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragEnterEvent", " object."]
  
  toGc this'@(QDragEnterEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragEnterEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragEnterEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QDragEnterEventGc {}) = HoppyP.return this'

instance QDragEnterEventConstPtr QDragEnterEvent where
  toQDragEnterEventConst (QDragEnterEvent ptr') = QDragEnterEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
  toQDragEnterEventConst (QDragEnterEventGc fptr' ptr') = QDragEnterEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'

instance QDragEnterEventPtr QDragEnterEvent where
  toQDragEnterEvent = HoppyP.id

instance M264.QDragMoveEventConstPtr QDragEnterEvent where
  toQDragMoveEventConst (QDragEnterEvent ptr') = M264.QDragMoveEventConst $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
  toQDragMoveEventConst (QDragEnterEventGc fptr' ptr') = M264.QDragMoveEventConstGc fptr' $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'

instance M264.QDragMoveEventPtr QDragEnterEvent where
  toQDragMoveEvent (QDragEnterEvent ptr') = M264.QDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr M264.QDragMoveEventConst -> HoppyF.Ptr M264.QDragMoveEvent) $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
  toQDragMoveEvent (QDragEnterEventGc fptr' ptr') = M264.QDragMoveEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M264.QDragMoveEventConst -> HoppyF.Ptr M264.QDragMoveEvent) $ castQDragEnterEventToQDragMoveEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'

instance M266.QDropEventConstPtr QDragEnterEvent where
  toQDropEventConst (QDragEnterEvent ptr') = M266.QDropEventConst $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
  toQDropEventConst (QDragEnterEventGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'

instance M266.QDropEventPtr QDragEnterEvent where
  toQDropEvent (QDragEnterEvent ptr') = M266.QDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
  toQDropEvent (QDragEnterEventGc fptr' ptr') = M266.QDropEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragEnterEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'

instance M34.QEventConstPtr QDragEnterEvent where
  toQEventConst (QDragEnterEvent ptr') = M34.QEventConst $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
  toQEventConst (QDragEnterEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'

instance M34.QEventPtr QDragEnterEvent where
  toQEvent (QDragEnterEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'
  toQEvent (QDragEnterEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragEnterEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragEnterEvent -> HoppyF.Ptr QDragEnterEventConst) ptr'

new :: (M114.QPointValue arg'1, M190.IsQtDropActions arg'2, M90.QMimeDataValue arg'3, M190.IsQtMouseButtons arg'4, M190.IsQtKeyboardModifiers arg'5) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO QDragEnterEvent)
new arg'1 arg'2 arg'3 arg'4 arg'5 =
  M114.withQPointPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtDropActions
  ) arg'2 >>= \arg'2' ->
  M90.withQMimeDataPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtMouseButtons
  ) arg'4 >>= \arg'4' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtKeyboardModifiers
  ) arg'5 >>= \arg'5' ->
  HoppyP.fmap QDragEnterEvent
  (new' arg'1' arg'2' arg'3' arg'4' arg'5')

class QDragEnterEventSuper a where
  downToQDragEnterEvent :: a -> QDragEnterEvent

instance QDragEnterEventSuper M264.QDragMoveEvent where
  downToQDragEnterEvent = castQDragEnterEventToNonconst . cast' . M264.castQDragMoveEventToConst
    where
      cast' (M264.QDragMoveEventConst ptr') = QDragEnterEventConst $ castQDragMoveEventToQDragEnterEvent ptr'
      cast' (M264.QDragMoveEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDragMoveEventToQDragEnterEvent ptr'
instance QDragEnterEventSuper M266.QDropEvent where
  downToQDragEnterEvent = castQDragEnterEventToNonconst . cast' . M266.castQDropEventToConst
    where
      cast' (M266.QDropEventConst ptr') = QDragEnterEventConst $ castQDropEventToQDragEnterEvent ptr'
      cast' (M266.QDropEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDropEventToQDragEnterEvent ptr'
instance QDragEnterEventSuper M34.QEvent where
  downToQDragEnterEvent = castQDragEnterEventToNonconst . cast' . M34.castQEventToConst
    where
      cast' (M34.QEventConst ptr') = QDragEnterEventConst $ castQEventToQDragEnterEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQEventToQDragEnterEvent ptr'

class QDragEnterEventSuperConst a where
  downToQDragEnterEventConst :: a -> QDragEnterEventConst

instance QDragEnterEventSuperConst M264.QDragMoveEventConst where
  downToQDragEnterEventConst = cast'
    where
      cast' (M264.QDragMoveEventConst ptr') = QDragEnterEventConst $ castQDragMoveEventToQDragEnterEvent ptr'
      cast' (M264.QDragMoveEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDragMoveEventToQDragEnterEvent ptr'
instance QDragEnterEventSuperConst M266.QDropEventConst where
  downToQDragEnterEventConst = cast'
    where
      cast' (M266.QDropEventConst ptr') = QDragEnterEventConst $ castQDropEventToQDragEnterEvent ptr'
      cast' (M266.QDropEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQDropEventToQDragEnterEvent ptr'
instance QDragEnterEventSuperConst M34.QEventConst where
  downToQDragEnterEventConst = cast'
    where
      cast' (M34.QEventConst ptr') = QDragEnterEventConst $ castQEventToQDragEnterEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QDragEnterEventConstGc fptr' $ castQEventToQDragEnterEvent ptr'

instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDragEnterEvent)) QDragEnterEvent where
  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'

instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDragEnterEvent)) QDragEnterEvent where
  decode = HoppyP.fmap QDragEnterEvent . HoppyF.peek