packages feed

qtah-qt5-0.3.0: src/Graphics/UI/Qtah/Generated/Gui/QMouseEvent.hs

{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
#if !MIN_VERSION_base(4,8,0)
{-# LANGUAGE OverlappingInstances #-}
#endif

---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Gui.QMouseEvent (
  castQMouseEventToQInputEvent,
  castQInputEventToQMouseEvent,
  castQMouseEventToQEvent,
  castQEventToQMouseEvent,
  QMouseEventValue (..),
  QMouseEventConstPtr (..),
  button,
  buttons,
  flags,
  globalPos,
  globalX,
  globalY,
  localPos,
  pos,
  screenPos,
  source,
  windowPos,
  x,
  y,
  QMouseEventPtr (..),
  QMouseEventConst (..),
  castQMouseEventToConst,
  QMouseEvent (..),
  castQMouseEventToNonconst,
  new,
  newWithScreenPosition,
  newWithWindowAndScreenPosition,
  QMouseEventSuper (..),
  QMouseEventSuperConst (..),
  ) 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.Generated.Core.QEvent as M16
import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M34
import qualified Graphics.UI.Qtah.Generated.Core.QPointF as M36
import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
import qualified Graphics.UI.Qtah.Generated.Gui.QInputEvent as M110
import Prelude (($), (.), (=<<), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QMouseEvent_new" new' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
foreign import ccall "genpop__QMouseEvent_newWithScreenPosition" newWithScreenPosition' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
foreign import ccall "genpop__QMouseEvent_newWithWindowAndScreenPosition" newWithWindowAndScreenPosition' ::  HoppyFC.CInt -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyF.Ptr M36.QPointFConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMouseEvent)
foreign import ccall "genpop__QMouseEvent_button" button' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMouseEvent_buttons" buttons' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMouseEvent_flags" flags' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMouseEvent_globalPos" globalPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
foreign import ccall "genpop__QMouseEvent_globalX" globalX' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMouseEvent_globalY" globalY' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMouseEvent_localPos" localPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
foreign import ccall "genpop__QMouseEvent_pos" pos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M34.QPointConst)
foreign import ccall "genpop__QMouseEvent_screenPos" screenPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
foreign import ccall "genpop__QMouseEvent_source" source' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMouseEvent_windowPos" windowPos' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO (HoppyF.Ptr M36.QPointFConst)
foreign import ccall "genpop__QMouseEvent_x" x' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMouseEvent_y" y' ::  HoppyF.Ptr QMouseEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "gencast__QMouseEvent__QInputEvent" castQMouseEventToQInputEvent :: HoppyF.Ptr QMouseEventConst -> HoppyF.Ptr M110.QInputEventConst
foreign import ccall "gencast__QInputEvent__QMouseEvent" castQInputEventToQMouseEvent :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr QMouseEventConst
foreign import ccall "gencast__QMouseEvent__QEvent" castQMouseEventToQEvent :: HoppyF.Ptr QMouseEventConst -> HoppyF.Ptr M16.QEventConst
foreign import ccall "gencast__QEvent__QMouseEvent" castQEventToQMouseEvent :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr QMouseEventConst
foreign import ccall "gendel__QMouseEvent" delete'QMouseEvent :: HoppyF.Ptr QMouseEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QMouseEvent" deletePtr'QMouseEvent :: HoppyF.FunPtr (HoppyF.Ptr QMouseEventConst -> HoppyP.IO ())

class QMouseEventValue a where
  withQMouseEventPtr :: a -> (QMouseEventConst -> HoppyP.IO b) -> HoppyP.IO b

#if MIN_VERSION_base(4,8,0)
instance {-# OVERLAPPABLE #-} QMouseEventConstPtr a => QMouseEventValue a where
#else
instance QMouseEventConstPtr a => QMouseEventValue a where
#endif
  withQMouseEventPtr = HoppyP.flip ($) . toQMouseEventConst

class (M110.QInputEventConstPtr this) => QMouseEventConstPtr this where
  toQMouseEventConst :: this -> QMouseEventConst

button :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButton
button arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
  (button' arg'1')

buttons :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseButtons
buttons arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M58.QtMouseButtons
  (buttons' arg'1')

flags :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseEventFlags
flags arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M58.QtMouseEventFlags
  (flags' arg'1')

globalPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
globalPos arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
  (globalPos' arg'1')

globalX :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
globalX arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap HoppyFHR.coerceIntegral
  (globalX' arg'1')

globalY :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
globalY arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap HoppyFHR.coerceIntegral
  (globalY' arg'1')

localPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
localPos arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
  (localPos' arg'1')

pos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPoint.HPoint
pos arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M34.QPointConst) =<<
  (pos' arg'1')

screenPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
screenPos arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
  (screenPos' arg'1')

source :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO M58.QtMouseEventSource
source arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
  (source' arg'1')

windowPos :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HPointF.HPointF
windowPos arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M36.QPointFConst) =<<
  (windowPos' arg'1')

x :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
x arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap HoppyFHR.coerceIntegral
  (x' arg'1')

y :: (QMouseEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
y arg'1 =
  withQMouseEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap HoppyFHR.coerceIntegral
  (y' arg'1')

class (QMouseEventConstPtr this, M110.QInputEventPtr this) => QMouseEventPtr this where
  toQMouseEvent :: this -> QMouseEvent

data QMouseEventConst =
    QMouseEventConst (HoppyF.Ptr QMouseEventConst)
  | QMouseEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMouseEventConst)
  deriving (HoppyP.Show)

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

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

castQMouseEventToConst :: QMouseEvent -> QMouseEventConst
castQMouseEventToConst (QMouseEvent ptr') = QMouseEventConst $ HoppyF.castPtr ptr'
castQMouseEventToConst (QMouseEventGc fptr' ptr') = QMouseEventConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMouseEventConstPtr QMouseEventConst where
  toQMouseEventConst = HoppyP.id

instance M110.QInputEventConstPtr QMouseEventConst where
  toQInputEventConst (QMouseEventConst ptr') = M110.QInputEventConst $ castQMouseEventToQInputEvent ptr'
  toQInputEventConst (QMouseEventConstGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQMouseEventToQInputEvent ptr'

instance M16.QEventConstPtr QMouseEventConst where
  toQEventConst (QMouseEventConst ptr') = M16.QEventConst $ castQMouseEventToQEvent ptr'
  toQEventConst (QMouseEventConstGc fptr' ptr') = M16.QEventConstGc fptr' $ castQMouseEventToQEvent ptr'

data QMouseEvent =
    QMouseEvent (HoppyF.Ptr QMouseEvent)
  | QMouseEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMouseEvent)
  deriving (HoppyP.Show)

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

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

castQMouseEventToNonconst :: QMouseEventConst -> QMouseEvent
castQMouseEventToNonconst (QMouseEventConst ptr') = QMouseEvent $ HoppyF.castPtr ptr'
castQMouseEventToNonconst (QMouseEventConstGc fptr' ptr') = QMouseEventGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMouseEventConstPtr QMouseEvent where
  toQMouseEventConst (QMouseEvent ptr') = QMouseEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
  toQMouseEventConst (QMouseEventGc fptr' ptr') = QMouseEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'

instance QMouseEventPtr QMouseEvent where
  toQMouseEvent = HoppyP.id

instance M110.QInputEventConstPtr QMouseEvent where
  toQInputEventConst (QMouseEvent ptr') = M110.QInputEventConst $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
  toQInputEventConst (QMouseEventGc fptr' ptr') = M110.QInputEventConstGc fptr' $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'

instance M110.QInputEventPtr QMouseEvent where
  toQInputEvent (QMouseEvent ptr') = M110.QInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
  toQInputEvent (QMouseEventGc fptr' ptr') = M110.QInputEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M110.QInputEventConst -> HoppyF.Ptr M110.QInputEvent) $ castQMouseEventToQInputEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'

instance M16.QEventConstPtr QMouseEvent where
  toQEventConst (QMouseEvent ptr') = M16.QEventConst $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
  toQEventConst (QMouseEventGc fptr' ptr') = M16.QEventConstGc fptr' $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'

instance M16.QEventPtr QMouseEvent where
  toQEvent (QMouseEvent ptr') = M16.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'
  toQEvent (QMouseEventGc fptr' ptr') = M16.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M16.QEventConst -> HoppyF.Ptr M16.QEvent) $ castQMouseEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QMouseEvent -> HoppyF.Ptr QMouseEventConst) ptr'

new :: (M36.QPointFValue arg'2, M58.IsQtMouseButtons arg'4, M58.IsQtKeyboardModifiers arg'5) => M16.QEventType -> arg'2 -> M58.QtMouseButton -> arg'4 -> arg'5 -> HoppyP.IO QMouseEvent
new arg'1 arg'2 arg'3 arg'4 arg'5 =
  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
  let arg'4' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'4 in
  let arg'5' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'5 in
  HoppyP.fmap QMouseEvent
  (new' arg'1' arg'2' arg'3' arg'4' arg'5')

newWithScreenPosition :: (M36.QPointFValue arg'2, M36.QPointFValue arg'3, M58.IsQtMouseButtons arg'5, M58.IsQtKeyboardModifiers arg'6) => M16.QEventType -> arg'2 -> arg'3 -> M58.QtMouseButton -> arg'5 -> arg'6 -> HoppyP.IO QMouseEvent
newWithScreenPosition arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
  let arg'5' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'5 in
  let arg'6' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'6 in
  HoppyP.fmap QMouseEvent
  (newWithScreenPosition' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

newWithWindowAndScreenPosition :: (M36.QPointFValue arg'2, M36.QPointFValue arg'3, M36.QPointFValue arg'4, M58.IsQtMouseButtons arg'6, M58.IsQtKeyboardModifiers arg'7) => M16.QEventType -> arg'2 -> arg'3 -> arg'4 -> M58.QtMouseButton -> arg'6 -> arg'7 -> HoppyP.IO QMouseEvent
newWithWindowAndScreenPosition arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 =
  let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
  M36.withQPointFPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M36.withQPointFPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M36.withQPointFPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
  let arg'6' = M58.fromQtMouseButtons $ M58.toQtMouseButtons arg'6 in
  let arg'7' = M58.fromQtKeyboardModifiers $ M58.toQtKeyboardModifiers arg'7 in
  HoppyP.fmap QMouseEvent
  (newWithWindowAndScreenPosition' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7')

class QMouseEventSuper a where
  downToQMouseEvent :: a -> QMouseEvent

instance QMouseEventSuper M110.QInputEvent where
  downToQMouseEvent = castQMouseEventToNonconst . cast' . M110.castQInputEventToConst
    where
      cast' (M110.QInputEventConst ptr') = QMouseEventConst $ castQInputEventToQMouseEvent ptr'
      cast' (M110.QInputEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQInputEventToQMouseEvent ptr'
instance QMouseEventSuper M16.QEvent where
  downToQMouseEvent = castQMouseEventToNonconst . cast' . M16.castQEventToConst
    where
      cast' (M16.QEventConst ptr') = QMouseEventConst $ castQEventToQMouseEvent ptr'
      cast' (M16.QEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQEventToQMouseEvent ptr'

class QMouseEventSuperConst a where
  downToQMouseEventConst :: a -> QMouseEventConst

instance QMouseEventSuperConst M110.QInputEventConst where
  downToQMouseEventConst = cast'
    where
      cast' (M110.QInputEventConst ptr') = QMouseEventConst $ castQInputEventToQMouseEvent ptr'
      cast' (M110.QInputEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQInputEventToQMouseEvent ptr'
instance QMouseEventSuperConst M16.QEventConst where
  downToQMouseEventConst = cast'
    where
      cast' (M16.QEventConst ptr') = QMouseEventConst $ castQEventToQMouseEvent ptr'
      cast' (M16.QEventConstGc fptr' ptr') = QMouseEventConstGc fptr' $ castQEventToQMouseEvent ptr'

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

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