packages feed

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

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

module Graphics.UI.Qtah.Generated.Gui.QDragMoveEvent (
  castQDragMoveEventToQDropEvent,
  castQDropEventToQDragMoveEvent,
  castQDragMoveEventToQEvent,
  castQEventToQDragMoveEvent,
  QDragMoveEventValue (..),
  QDragMoveEventConstPtr (..),
  answerRect,
  QDragMoveEventPtr (..),
  accept,
  acceptWithRect,
  ignore,
  ignoreWithRect,
  QDragMoveEventConst (..),
  castQDragMoveEventToConst,
  QDragMoveEvent (..),
  castQDragMoveEventToNonconst,
  new,
  newWithType,
  QDragMoveEventSuper (..),
  QDragMoveEventSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Core.HRect as HRect
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.QRect as M122
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
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__QDragMoveEvent_new" new' ::  HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDragMoveEvent)
foreign import ccall "genpop__QDragMoveEvent_newWithType" newWithType' ::  HoppyF.Ptr M114.QPointConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDragMoveEvent)
foreign import ccall "genpop__QDragMoveEvent_accept" accept' ::  HoppyF.Ptr QDragMoveEvent -> HoppyP.IO ()
foreign import ccall "genpop__QDragMoveEvent_acceptWithRect" acceptWithRect' ::  HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
foreign import ccall "genpop__QDragMoveEvent_answerRect" answerRect' ::  HoppyF.Ptr QDragMoveEventConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
foreign import ccall "genpop__QDragMoveEvent_ignore" ignore' ::  HoppyF.Ptr QDragMoveEvent -> HoppyP.IO ()
foreign import ccall "genpop__QDragMoveEvent_ignoreWithRect" ignoreWithRect' ::  HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
foreign import ccall "gencast__QDragMoveEvent__QDropEvent" castQDragMoveEventToQDropEvent :: HoppyF.Ptr QDragMoveEventConst -> HoppyF.Ptr M266.QDropEventConst
foreign import ccall "gencast__QDropEvent__QDragMoveEvent" castQDropEventToQDragMoveEvent :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr QDragMoveEventConst
foreign import ccall "gencast__QDragMoveEvent__QEvent" castQDragMoveEventToQEvent :: HoppyF.Ptr QDragMoveEventConst -> HoppyF.Ptr M34.QEventConst
foreign import ccall "gencast__QEvent__QDragMoveEvent" castQEventToQDragMoveEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDragMoveEventConst
foreign import ccall "gendel__QDragMoveEvent" delete'QDragMoveEvent :: HoppyF.Ptr QDragMoveEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QDragMoveEvent" deletePtr'QDragMoveEvent :: HoppyF.FunPtr (HoppyF.Ptr QDragMoveEventConst -> HoppyP.IO ())

class QDragMoveEventValue a where
  withQDragMoveEventPtr :: a -> (QDragMoveEventConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QDragMoveEventConstPtr a => QDragMoveEventValue a where
  withQDragMoveEventPtr = HoppyP.flip ($) . toQDragMoveEventConst

class (M266.QDropEventConstPtr this) => QDragMoveEventConstPtr this where
  toQDragMoveEventConst :: this -> QDragMoveEventConst

answerRect :: (QDragMoveEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HRect.HRect)
answerRect arg'1 =
  withQDragMoveEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
  (answerRect' arg'1')

class (QDragMoveEventConstPtr this, M266.QDropEventPtr this) => QDragMoveEventPtr this where
  toQDragMoveEvent :: this -> QDragMoveEvent

accept :: (QDragMoveEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
accept arg'1 =
  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
  (accept' arg'1')

acceptWithRect :: (QDragMoveEventPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
acceptWithRect arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (acceptWithRect' arg'1' arg'2')

ignore :: (QDragMoveEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
ignore arg'1 =
  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
  (ignore' arg'1')

ignoreWithRect :: (QDragMoveEventPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
ignoreWithRect arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQDragMoveEvent arg'1) $ \arg'1' ->
  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (ignoreWithRect' arg'1' arg'2')

data QDragMoveEventConst =
    QDragMoveEventConst (HoppyF.Ptr QDragMoveEventConst)
  | QDragMoveEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragMoveEventConst)
  deriving (HoppyP.Show)

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

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

castQDragMoveEventToConst :: QDragMoveEvent -> QDragMoveEventConst
castQDragMoveEventToConst (QDragMoveEvent ptr') = QDragMoveEventConst $ HoppyF.castPtr ptr'
castQDragMoveEventToConst (QDragMoveEventGc fptr' ptr') = QDragMoveEventConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QDragMoveEventConstPtr QDragMoveEventConst where
  toQDragMoveEventConst = HoppyP.id

instance M266.QDropEventConstPtr QDragMoveEventConst where
  toQDropEventConst (QDragMoveEventConst ptr') = M266.QDropEventConst $ castQDragMoveEventToQDropEvent ptr'
  toQDropEventConst (QDragMoveEventConstGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragMoveEventToQDropEvent ptr'

instance M34.QEventConstPtr QDragMoveEventConst where
  toQEventConst (QDragMoveEventConst ptr') = M34.QEventConst $ castQDragMoveEventToQEvent ptr'
  toQEventConst (QDragMoveEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragMoveEventToQEvent ptr'

data QDragMoveEvent =
    QDragMoveEvent (HoppyF.Ptr QDragMoveEvent)
  | QDragMoveEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragMoveEvent)
  deriving (HoppyP.Show)

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

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

castQDragMoveEventToNonconst :: QDragMoveEventConst -> QDragMoveEvent
castQDragMoveEventToNonconst (QDragMoveEventConst ptr') = QDragMoveEvent $ HoppyF.castPtr ptr'
castQDragMoveEventToNonconst (QDragMoveEventConstGc fptr' ptr') = QDragMoveEventGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QDragMoveEventConstPtr QDragMoveEvent where
  toQDragMoveEventConst (QDragMoveEvent ptr') = QDragMoveEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
  toQDragMoveEventConst (QDragMoveEventGc fptr' ptr') = QDragMoveEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'

instance QDragMoveEventPtr QDragMoveEvent where
  toQDragMoveEvent = HoppyP.id

instance M266.QDropEventConstPtr QDragMoveEvent where
  toQDropEventConst (QDragMoveEvent ptr') = M266.QDropEventConst $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
  toQDropEventConst (QDragMoveEventGc fptr' ptr') = M266.QDropEventConstGc fptr' $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'

instance M266.QDropEventPtr QDragMoveEvent where
  toQDropEvent (QDragMoveEvent ptr') = M266.QDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
  toQDropEvent (QDragMoveEventGc fptr' ptr') = M266.QDropEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M266.QDropEventConst -> HoppyF.Ptr M266.QDropEvent) $ castQDragMoveEventToQDropEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'

instance M34.QEventConstPtr QDragMoveEvent where
  toQEventConst (QDragMoveEvent ptr') = M34.QEventConst $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
  toQEventConst (QDragMoveEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'

instance M34.QEventPtr QDragMoveEvent where
  toQEvent (QDragMoveEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) ptr'
  toQEvent (QDragMoveEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragMoveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragMoveEvent -> HoppyF.Ptr QDragMoveEventConst) 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 QDragMoveEvent)
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 QDragMoveEvent
  (new' arg'1' arg'2' arg'3' arg'4' arg'5')

newWithType :: (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) -> (M34.QEventType) -> (HoppyP.IO QDragMoveEvent)
newWithType arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
  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.return . HoppyFHR.fromCppEnum
  ) arg'6 >>= \arg'6' ->
  HoppyP.fmap QDragMoveEvent
  (newWithType' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

class QDragMoveEventSuper a where
  downToQDragMoveEvent :: a -> QDragMoveEvent

instance QDragMoveEventSuper M266.QDropEvent where
  downToQDragMoveEvent = castQDragMoveEventToNonconst . cast' . M266.castQDropEventToConst
    where
      cast' (M266.QDropEventConst ptr') = QDragMoveEventConst $ castQDropEventToQDragMoveEvent ptr'
      cast' (M266.QDropEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQDropEventToQDragMoveEvent ptr'
instance QDragMoveEventSuper M34.QEvent where
  downToQDragMoveEvent = castQDragMoveEventToNonconst . cast' . M34.castQEventToConst
    where
      cast' (M34.QEventConst ptr') = QDragMoveEventConst $ castQEventToQDragMoveEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQEventToQDragMoveEvent ptr'

class QDragMoveEventSuperConst a where
  downToQDragMoveEventConst :: a -> QDragMoveEventConst

instance QDragMoveEventSuperConst M266.QDropEventConst where
  downToQDragMoveEventConst = cast'
    where
      cast' (M266.QDropEventConst ptr') = QDragMoveEventConst $ castQDropEventToQDragMoveEvent ptr'
      cast' (M266.QDropEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQDropEventToQDragMoveEvent ptr'
instance QDragMoveEventSuperConst M34.QEventConst where
  downToQDragMoveEventConst = cast'
    where
      cast' (M34.QEventConst ptr') = QDragMoveEventConst $ castQEventToQDragMoveEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QDragMoveEventConstGc fptr' $ castQEventToQDragMoveEvent ptr'

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

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