packages feed

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

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

module Graphics.UI.Qtah.Generated.Gui.QIconDragEvent (
  castQIconDragEventToQEvent,
  castQEventToQIconDragEvent,
  QIconDragEventValue (..),
  QIconDragEventConstPtr (..),
  QIconDragEventPtr (..),
  QIconDragEventConst (..),
  castQIconDragEventToConst,
  QIconDragEvent (..),
  castQIconDragEventToNonconst,
  new,
  QIconDragEventSuper (..),
  QIconDragEventSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QIconDragEvent_new" new' ::  HoppyP.IO (HoppyF.Ptr QIconDragEvent)
foreign import ccall "gencast__QIconDragEvent__QEvent" castQIconDragEventToQEvent :: HoppyF.Ptr QIconDragEventConst -> HoppyF.Ptr M34.QEventConst
foreign import ccall "gencast__QEvent__QIconDragEvent" castQEventToQIconDragEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QIconDragEventConst
foreign import ccall "gendel__QIconDragEvent" delete'QIconDragEvent :: HoppyF.Ptr QIconDragEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QIconDragEvent" deletePtr'QIconDragEvent :: HoppyF.FunPtr (HoppyF.Ptr QIconDragEventConst -> HoppyP.IO ())

class QIconDragEventValue a where
  withQIconDragEventPtr :: a -> (QIconDragEventConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QIconDragEventConstPtr a => QIconDragEventValue a where
  withQIconDragEventPtr = HoppyP.flip ($) . toQIconDragEventConst

class (M34.QEventConstPtr this) => QIconDragEventConstPtr this where
  toQIconDragEventConst :: this -> QIconDragEventConst

class (QIconDragEventConstPtr this, M34.QEventPtr this) => QIconDragEventPtr this where
  toQIconDragEvent :: this -> QIconDragEvent

data QIconDragEventConst =
    QIconDragEventConst (HoppyF.Ptr QIconDragEventConst)
  | QIconDragEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIconDragEventConst)
  deriving (HoppyP.Show)

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

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

castQIconDragEventToConst :: QIconDragEvent -> QIconDragEventConst
castQIconDragEventToConst (QIconDragEvent ptr') = QIconDragEventConst $ HoppyF.castPtr ptr'
castQIconDragEventToConst (QIconDragEventGc fptr' ptr') = QIconDragEventConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QIconDragEventConstPtr QIconDragEventConst where
  toQIconDragEventConst = HoppyP.id

instance M34.QEventConstPtr QIconDragEventConst where
  toQEventConst (QIconDragEventConst ptr') = M34.QEventConst $ castQIconDragEventToQEvent ptr'
  toQEventConst (QIconDragEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQIconDragEventToQEvent ptr'

data QIconDragEvent =
    QIconDragEvent (HoppyF.Ptr QIconDragEvent)
  | QIconDragEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QIconDragEvent)
  deriving (HoppyP.Show)

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

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

castQIconDragEventToNonconst :: QIconDragEventConst -> QIconDragEvent
castQIconDragEventToNonconst (QIconDragEventConst ptr') = QIconDragEvent $ HoppyF.castPtr ptr'
castQIconDragEventToNonconst (QIconDragEventConstGc fptr' ptr') = QIconDragEventGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QIconDragEventConstPtr QIconDragEvent where
  toQIconDragEventConst (QIconDragEvent ptr') = QIconDragEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
  toQIconDragEventConst (QIconDragEventGc fptr' ptr') = QIconDragEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'

instance QIconDragEventPtr QIconDragEvent where
  toQIconDragEvent = HoppyP.id

instance M34.QEventConstPtr QIconDragEvent where
  toQEventConst (QIconDragEvent ptr') = M34.QEventConst $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
  toQEventConst (QIconDragEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'

instance M34.QEventPtr QIconDragEvent where
  toQEvent (QIconDragEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'
  toQEvent (QIconDragEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQIconDragEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QIconDragEvent -> HoppyF.Ptr QIconDragEventConst) ptr'

new :: (HoppyP.IO QIconDragEvent)
new =
  HoppyP.fmap QIconDragEvent
  (new')

class QIconDragEventSuper a where
  downToQIconDragEvent :: a -> QIconDragEvent

instance QIconDragEventSuper M34.QEvent where
  downToQIconDragEvent = castQIconDragEventToNonconst . cast' . M34.castQEventToConst
    where
      cast' (M34.QEventConst ptr') = QIconDragEventConst $ castQEventToQIconDragEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QIconDragEventConstGc fptr' $ castQEventToQIconDragEvent ptr'

class QIconDragEventSuperConst a where
  downToQIconDragEventConst :: a -> QIconDragEventConst

instance QIconDragEventSuperConst M34.QEventConst where
  downToQIconDragEventConst = cast'
    where
      cast' (M34.QEventConst ptr') = QIconDragEventConst $ castQEventToQIconDragEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QIconDragEventConstGc fptr' $ castQEventToQIconDragEvent ptr'

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

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