packages feed

qtah-qt5-0.3.0: src/Graphics/UI/Qtah/Generated/Widgets/QSpacerItem.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.Widgets.QSpacerItem (
  castQSpacerItemToQLayoutItem,
  castQLayoutItemToQSpacerItem,
  QSpacerItemValue (..),
  QSpacerItemConstPtr (..),
  sizePolicy,
  QSpacerItemPtr (..),
  changeSize,
  changeSizeWithOptions,
  QSpacerItemConst (..),
  castQSpacerItemToConst,
  QSpacerItem (..),
  castQSpacerItemToNonconst,
  new,
  newWithOptions,
  QSpacerItemSuper (..),
  QSpacerItemSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Widgets.QLayoutItem as M230
import qualified Graphics.UI.Qtah.Generated.Widgets.QSizePolicy as M258
import Prelude (($), (.), (=<<), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QSpacerItem_new" new' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSpacerItem)
foreign import ccall "genpop__QSpacerItem_newWithOptions" newWithOptions' ::  HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QSpacerItem)
foreign import ccall "genpop__QSpacerItem_changeSize" changeSize' ::  HoppyF.Ptr QSpacerItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QSpacerItem_changeSizeWithOptions" changeSizeWithOptions' ::  HoppyF.Ptr QSpacerItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QSpacerItem_sizePolicy" sizePolicy' ::  HoppyF.Ptr QSpacerItemConst -> HoppyP.IO (HoppyF.Ptr M258.QSizePolicyConst)
foreign import ccall "gencast__QSpacerItem__QLayoutItem" castQSpacerItemToQLayoutItem :: HoppyF.Ptr QSpacerItemConst -> HoppyF.Ptr M230.QLayoutItemConst
foreign import ccall "gencast__QLayoutItem__QSpacerItem" castQLayoutItemToQSpacerItem :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr QSpacerItemConst
foreign import ccall "gendel__QSpacerItem" delete'QSpacerItem :: HoppyF.Ptr QSpacerItemConst -> HoppyP.IO ()
foreign import ccall "&gendel__QSpacerItem" deletePtr'QSpacerItem :: HoppyF.FunPtr (HoppyF.Ptr QSpacerItemConst -> HoppyP.IO ())

class QSpacerItemValue a where
  withQSpacerItemPtr :: a -> (QSpacerItemConst -> HoppyP.IO b) -> HoppyP.IO b

#if MIN_VERSION_base(4,8,0)
instance {-# OVERLAPPABLE #-} QSpacerItemConstPtr a => QSpacerItemValue a where
#else
instance QSpacerItemConstPtr a => QSpacerItemValue a where
#endif
  withQSpacerItemPtr = HoppyP.flip ($) . toQSpacerItemConst

class (M230.QLayoutItemConstPtr this) => QSpacerItemConstPtr this where
  toQSpacerItemConst :: this -> QSpacerItemConst

sizePolicy :: (QSpacerItemValue arg'1) => arg'1 -> HoppyP.IO M258.QSizePolicy
sizePolicy arg'1 =
  withQSpacerItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M258.QSizePolicyConst) =<<
  (sizePolicy' arg'1')

class (QSpacerItemConstPtr this, M230.QLayoutItemPtr this) => QSpacerItemPtr this where
  toQSpacerItem :: this -> QSpacerItem

changeSize :: (QSpacerItemPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()
changeSize arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQSpacerItem arg'1) $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
  (changeSize' arg'1' arg'2' arg'3')

changeSizeWithOptions :: (QSpacerItemPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> M258.QSizePolicyPolicy -> M258.QSizePolicyPolicy -> HoppyP.IO ()
changeSizeWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 =
  HoppyFHR.withCppPtr (toQSpacerItem arg'1) $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
  let arg'3' = HoppyFHR.coerceIntegral arg'3 in
  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
  let arg'5' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'5 in
  (changeSizeWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5')

data QSpacerItemConst =
    QSpacerItemConst (HoppyF.Ptr QSpacerItemConst)
  | QSpacerItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSpacerItemConst)
  deriving (HoppyP.Show)

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

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

castQSpacerItemToConst :: QSpacerItem -> QSpacerItemConst
castQSpacerItemToConst (QSpacerItem ptr') = QSpacerItemConst $ HoppyF.castPtr ptr'
castQSpacerItemToConst (QSpacerItemGc fptr' ptr') = QSpacerItemConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QSpacerItemConstPtr QSpacerItemConst where
  toQSpacerItemConst = HoppyP.id

instance M230.QLayoutItemConstPtr QSpacerItemConst where
  toQLayoutItemConst (QSpacerItemConst ptr') = M230.QLayoutItemConst $ castQSpacerItemToQLayoutItem ptr'
  toQLayoutItemConst (QSpacerItemConstGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQSpacerItemToQLayoutItem ptr'

data QSpacerItem =
    QSpacerItem (HoppyF.Ptr QSpacerItem)
  | QSpacerItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QSpacerItem)
  deriving (HoppyP.Show)

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

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

castQSpacerItemToNonconst :: QSpacerItemConst -> QSpacerItem
castQSpacerItemToNonconst (QSpacerItemConst ptr') = QSpacerItem $ HoppyF.castPtr ptr'
castQSpacerItemToNonconst (QSpacerItemConstGc fptr' ptr') = QSpacerItemGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QSpacerItemConstPtr QSpacerItem where
  toQSpacerItemConst (QSpacerItem ptr') = QSpacerItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
  toQSpacerItemConst (QSpacerItemGc fptr' ptr') = QSpacerItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'

instance QSpacerItemPtr QSpacerItem where
  toQSpacerItem = HoppyP.id

instance M230.QLayoutItemConstPtr QSpacerItem where
  toQLayoutItemConst (QSpacerItem ptr') = M230.QLayoutItemConst $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
  toQLayoutItemConst (QSpacerItemGc fptr' ptr') = M230.QLayoutItemConstGc fptr' $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'

instance M230.QLayoutItemPtr QSpacerItem where
  toQLayoutItem (QSpacerItem ptr') = M230.QLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'
  toQLayoutItem (QSpacerItemGc fptr' ptr') = M230.QLayoutItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M230.QLayoutItemConst -> HoppyF.Ptr M230.QLayoutItem) $ castQSpacerItemToQLayoutItem $ (HoppyF.castPtr :: HoppyF.Ptr QSpacerItem -> HoppyF.Ptr QSpacerItemConst) ptr'

new ::  HoppyP.Int -> HoppyP.Int -> HoppyP.IO QSpacerItem
new arg'1 arg'2 =
  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
  HoppyP.fmap QSpacerItem
  (new' arg'1' arg'2')

newWithOptions ::  HoppyP.Int -> HoppyP.Int -> M258.QSizePolicyPolicy -> M258.QSizePolicyPolicy -> HoppyP.IO QSpacerItem
newWithOptions arg'1 arg'2 arg'3 arg'4 =
  let arg'1' = HoppyFHR.coerceIntegral arg'1 in
  let arg'2' = HoppyFHR.coerceIntegral arg'2 in
  let arg'3' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'3 in
  let arg'4' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'4 in
  HoppyP.fmap QSpacerItem
  (newWithOptions' arg'1' arg'2' arg'3' arg'4')

class QSpacerItemSuper a where
  downToQSpacerItem :: a -> QSpacerItem

instance QSpacerItemSuper M230.QLayoutItem where
  downToQSpacerItem = castQSpacerItemToNonconst . cast' . M230.castQLayoutItemToConst
    where
      cast' (M230.QLayoutItemConst ptr') = QSpacerItemConst $ castQLayoutItemToQSpacerItem ptr'
      cast' (M230.QLayoutItemConstGc fptr' ptr') = QSpacerItemConstGc fptr' $ castQLayoutItemToQSpacerItem ptr'

class QSpacerItemSuperConst a where
  downToQSpacerItemConst :: a -> QSpacerItemConst

instance QSpacerItemSuperConst M230.QLayoutItemConst where
  downToQSpacerItemConst = cast'
    where
      cast' (M230.QLayoutItemConst ptr') = QSpacerItemConst $ castQLayoutItemToQSpacerItem ptr'
      cast' (M230.QLayoutItemConstGc fptr' ptr') = QSpacerItemConstGc fptr' $ castQLayoutItemToQSpacerItem ptr'

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

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