packages feed

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

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

module Graphics.UI.Qtah.Generated.Gui.QDropEvent (
  castQDropEventToQEvent,
  castQEventToQDropEvent,
  QDropEventValue (..),
  QDropEventConstPtr (..),
  dropAction,
  keyboardModifiers,
  mimeData,
  mouseButtons,
  pos,
  posF,
  possibleActions,
  proposedAction,
  source,
  QDropEventPtr (..),
  acceptProposedAction,
  setDropAction,
  QDropEventConst (..),
  castQDropEventToConst,
  QDropEvent (..),
  castQDropEventToNonconst,
  new,
  newWithType,
  QDropEventSuper (..),
  QDropEventSuperConst (..),
  ) 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.HPoint as HPoint
import qualified Graphics.UI.Qtah.Core.HPointF as HPointF
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.QObject as M94
import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M116
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import Prelude (($), (.), (=<<), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QDropEvent_new" new' ::  HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDropEvent)
foreign import ccall "genpop__QDropEvent_newWithType" newWithType' ::  HoppyF.Ptr M116.QPointFConst -> HoppyFC.CInt -> HoppyF.Ptr M90.QMimeDataConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDropEvent)
foreign import ccall "genpop__QDropEvent_acceptProposedAction" acceptProposedAction' ::  HoppyF.Ptr QDropEvent -> HoppyP.IO ()
foreign import ccall "genpop__QDropEvent_dropAction" dropAction' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QDropEvent_setDropAction" setDropAction' ::  HoppyF.Ptr QDropEvent -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QDropEvent_keyboardModifiers" keyboardModifiers' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QDropEvent_mimeData" mimeData' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M90.QMimeDataConst)
foreign import ccall "genpop__QDropEvent_mouseButtons" mouseButtons' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QDropEvent_pos" pos' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M114.QPointConst)
foreign import ccall "genpop__QDropEvent_posF" posF' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M116.QPointFConst)
foreign import ccall "genpop__QDropEvent_possibleActions" possibleActions' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QDropEvent_proposedAction" proposedAction' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QDropEvent_source" source' ::  HoppyF.Ptr QDropEventConst -> HoppyP.IO (HoppyF.Ptr M94.QObject)
foreign import ccall "gencast__QDropEvent__QEvent" castQDropEventToQEvent :: HoppyF.Ptr QDropEventConst -> HoppyF.Ptr M34.QEventConst
foreign import ccall "gencast__QEvent__QDropEvent" castQEventToQDropEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDropEventConst
foreign import ccall "gendel__QDropEvent" delete'QDropEvent :: HoppyF.Ptr QDropEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QDropEvent" deletePtr'QDropEvent :: HoppyF.FunPtr (HoppyF.Ptr QDropEventConst -> HoppyP.IO ())

class QDropEventValue a where
  withQDropEventPtr :: a -> (QDropEventConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QDropEventConstPtr a => QDropEventValue a where
  withQDropEventPtr = HoppyP.flip ($) . toQDropEventConst

class (M34.QEventConstPtr this) => QDropEventConstPtr this where
  toQDropEventConst :: this -> QDropEventConst

dropAction :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropAction)
dropAction arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (dropAction' arg'1')

keyboardModifiers :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtKeyboardModifiers)
keyboardModifiers arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (keyboardModifiers' arg'1')

mimeData :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M90.QMimeDataConst)
mimeData arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M90.QMimeDataConst
  (mimeData' arg'1')

mouseButtons :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtMouseButtons)
mouseButtons arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (mouseButtons' arg'1')

pos :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPoint.HPoint)
pos arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M114.QPointConst) =<<
  (pos' arg'1')

posF :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO HPointF.HPointF)
posF arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M116.QPointFConst) =<<
  (posF' arg'1')

possibleActions :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropActions)
possibleActions arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (possibleActions' arg'1')

proposedAction :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropAction)
proposedAction arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (proposedAction' arg'1')

source :: (QDropEventValue this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
source arg'1 =
  withQDropEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M94.QObject
  (source' arg'1')

class (QDropEventConstPtr this, M34.QEventPtr this) => QDropEventPtr this where
  toQDropEvent :: this -> QDropEvent

acceptProposedAction :: (QDropEventPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
acceptProposedAction arg'1 =
  HoppyFHR.withCppPtr (toQDropEvent arg'1) $ \arg'1' ->
  (acceptProposedAction' arg'1')

setDropAction :: (QDropEventPtr this) => (this) {- ^ this -} -> (M190.QtDropAction) -> (HoppyP.IO ())
setDropAction arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQDropEvent arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setDropAction' arg'1' arg'2')

data QDropEventConst =
    QDropEventConst (HoppyF.Ptr QDropEventConst)
  | QDropEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDropEventConst)
  deriving (HoppyP.Show)

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

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

castQDropEventToConst :: QDropEvent -> QDropEventConst
castQDropEventToConst (QDropEvent ptr') = QDropEventConst $ HoppyF.castPtr ptr'
castQDropEventToConst (QDropEventGc fptr' ptr') = QDropEventConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QDropEventConstPtr QDropEventConst where
  toQDropEventConst = HoppyP.id

instance M34.QEventConstPtr QDropEventConst where
  toQEventConst (QDropEventConst ptr') = M34.QEventConst $ castQDropEventToQEvent ptr'
  toQEventConst (QDropEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDropEventToQEvent ptr'

data QDropEvent =
    QDropEvent (HoppyF.Ptr QDropEvent)
  | QDropEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDropEvent)
  deriving (HoppyP.Show)

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

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

castQDropEventToNonconst :: QDropEventConst -> QDropEvent
castQDropEventToNonconst (QDropEventConst ptr') = QDropEvent $ HoppyF.castPtr ptr'
castQDropEventToNonconst (QDropEventConstGc fptr' ptr') = QDropEventGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QDropEventConstPtr QDropEvent where
  toQDropEventConst (QDropEvent ptr') = QDropEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
  toQDropEventConst (QDropEventGc fptr' ptr') = QDropEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'

instance QDropEventPtr QDropEvent where
  toQDropEvent = HoppyP.id

instance M34.QEventConstPtr QDropEvent where
  toQEventConst (QDropEvent ptr') = M34.QEventConst $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
  toQEventConst (QDropEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'

instance M34.QEventPtr QDropEvent where
  toQEvent (QDropEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'
  toQEvent (QDropEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDropEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDropEvent -> HoppyF.Ptr QDropEventConst) ptr'

new :: (M116.QPointFValue 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 QDropEvent)
new arg'1 arg'2 arg'3 arg'4 arg'5 =
  M116.withQPointFPtr 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 QDropEvent
  (new' arg'1' arg'2' arg'3' arg'4' arg'5')

newWithType :: (M116.QPointFValue 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 QDropEvent)
newWithType arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
  M116.withQPointFPtr 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 QDropEvent
  (newWithType' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

class QDropEventSuper a where
  downToQDropEvent :: a -> QDropEvent

instance QDropEventSuper M34.QEvent where
  downToQDropEvent = castQDropEventToNonconst . cast' . M34.castQEventToConst
    where
      cast' (M34.QEventConst ptr') = QDropEventConst $ castQEventToQDropEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QDropEventConstGc fptr' $ castQEventToQDropEvent ptr'

class QDropEventSuperConst a where
  downToQDropEventConst :: a -> QDropEventConst

instance QDropEventSuperConst M34.QEventConst where
  downToQDropEventConst = cast'
    where
      cast' (M34.QEventConst ptr') = QDropEventConst $ castQEventToQDropEvent ptr'
      cast' (M34.QEventConstGc fptr' ptr') = QDropEventConstGc fptr' $ castQEventToQDropEvent ptr'

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

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