packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Widgets/QLayoutItem.hs

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

module Graphics.UI.Qtah.Generated.Widgets.QLayoutItem (
  QLayoutItemValue (..),
  QLayoutItemConstPtr (..),
  alignment,
  expandingDirections,
  geometry,
  hasHeightForWidth,
  heightForWidth,
  isEmpty,
  maximumSize,
  minimumHeightForWidth,
  minimumSize,
  sizeHint,
  QLayoutItemPtr (..),
  setAlignment,
  setGeometry,
  invalidate,
  layout,
  widget,
  QLayoutItemConst (..),
  castQLayoutItemToConst,
  QLayoutItem (..),
  castQLayoutItemToNonconst,
  QLayoutItemSuper (..),
  QLayoutItemSuperConst (..),
  ) 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.Core.HSize as HSize
import qualified Graphics.UI.Qtah.Flags as QtahFlags
import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QLayout as M432
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
import Prelude (($), (.), (/=), (=<<), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QLayoutItem_alignment" alignment' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLayoutItem_setAlignment" setAlignment' ::  HoppyF.Ptr QLayoutItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLayoutItem_expandingDirections" expandingDirections' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLayoutItem_geometry" geometry' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
foreign import ccall "genpop__QLayoutItem_setGeometry" setGeometry' ::  HoppyF.Ptr QLayoutItem -> HoppyF.Ptr M122.QRectConst -> HoppyP.IO ()
foreign import ccall "genpop__QLayoutItem_hasHeightForWidth" hasHeightForWidth' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QLayoutItem_heightForWidth" heightForWidth' ::  HoppyF.Ptr QLayoutItemConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLayoutItem_invalidate" invalidate' ::  HoppyF.Ptr QLayoutItem -> HoppyP.IO ()
foreign import ccall "genpop__QLayoutItem_isEmpty" isEmpty' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QLayoutItem_layout" layout' ::  HoppyF.Ptr QLayoutItem -> HoppyP.IO (HoppyF.Ptr M432.QLayout)
foreign import ccall "genpop__QLayoutItem_maximumSize" maximumSize' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
foreign import ccall "genpop__QLayoutItem_minimumHeightForWidth" minimumHeightForWidth' ::  HoppyF.Ptr QLayoutItemConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLayoutItem_minimumSize" minimumSize' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
foreign import ccall "genpop__QLayoutItem_sizeHint" sizeHint' ::  HoppyF.Ptr QLayoutItemConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
foreign import ccall "genpop__QLayoutItem_widget" widget' ::  HoppyF.Ptr QLayoutItem -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "gendel__QLayoutItem" delete'QLayoutItem :: HoppyF.Ptr QLayoutItemConst -> HoppyP.IO ()
foreign import ccall "&gendel__QLayoutItem" deletePtr'QLayoutItem :: HoppyF.FunPtr (HoppyF.Ptr QLayoutItemConst -> HoppyP.IO ())

class QLayoutItemValue a where
  withQLayoutItemPtr :: a -> (QLayoutItemConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QLayoutItemConstPtr a => QLayoutItemValue a where
  withQLayoutItemPtr = HoppyP.flip ($) . toQLayoutItemConst

class (HoppyFHR.CppPtr this) => QLayoutItemConstPtr this where
  toQLayoutItemConst :: this -> QLayoutItemConst

alignment :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
alignment arg'1 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (alignment' arg'1')

expandingDirections :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientations)
expandingDirections arg'1 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (expandingDirections' arg'1')

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

hasHeightForWidth :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
hasHeightForWidth arg'1 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (hasHeightForWidth' arg'1')

heightForWidth :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
heightForWidth arg'1 arg'2 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (heightForWidth' arg'1' arg'2')

isEmpty :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
isEmpty arg'1 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isEmpty' arg'1')

maximumSize :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
maximumSize arg'1 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
  (maximumSize' arg'1')

minimumHeightForWidth :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
minimumHeightForWidth arg'1 arg'2 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (minimumHeightForWidth' arg'1' arg'2')

minimumSize :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
minimumSize arg'1 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
  (minimumSize' arg'1')

sizeHint :: (QLayoutItemValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
sizeHint arg'1 =
  withQLayoutItemPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
  (sizeHint' arg'1')

class (QLayoutItemConstPtr this) => QLayoutItemPtr this where
  toQLayoutItem :: this -> QLayoutItem

setAlignment :: (QLayoutItemPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setAlignment arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
  ) arg'2 >>= \arg'2' ->
  (setAlignment' arg'1' arg'2')

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

invalidate :: (QLayoutItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
invalidate arg'1 =
  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
  (invalidate' arg'1')

layout :: (QLayoutItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M432.QLayout)
layout arg'1 =
  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
  HoppyP.fmap M432.QLayout
  (layout' arg'1')

widget :: (QLayoutItemPtr this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
widget arg'1 =
  HoppyFHR.withCppPtr (toQLayoutItem arg'1) $ \arg'1' ->
  HoppyP.fmap M506.QWidget
  (widget' arg'1')

data QLayoutItemConst =
    QLayoutItemConst (HoppyF.Ptr QLayoutItemConst)
  | QLayoutItemConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutItemConst)
  deriving (HoppyP.Show)

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

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

castQLayoutItemToConst :: QLayoutItem -> QLayoutItemConst
castQLayoutItemToConst (QLayoutItem ptr') = QLayoutItemConst $ HoppyF.castPtr ptr'
castQLayoutItemToConst (QLayoutItemGc fptr' ptr') = QLayoutItemConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QLayoutItemConstPtr QLayoutItemConst where
  toQLayoutItemConst = HoppyP.id

data QLayoutItem =
    QLayoutItem (HoppyF.Ptr QLayoutItem)
  | QLayoutItemGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLayoutItem)
  deriving (HoppyP.Show)

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

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

castQLayoutItemToNonconst :: QLayoutItemConst -> QLayoutItem
castQLayoutItemToNonconst (QLayoutItemConst ptr') = QLayoutItem $ HoppyF.castPtr ptr'
castQLayoutItemToNonconst (QLayoutItemConstGc fptr' ptr') = QLayoutItemGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QLayoutItemConstPtr QLayoutItem where
  toQLayoutItemConst (QLayoutItem ptr') = QLayoutItemConst $ (HoppyF.castPtr :: HoppyF.Ptr QLayoutItem -> HoppyF.Ptr QLayoutItemConst) ptr'
  toQLayoutItemConst (QLayoutItemGc fptr' ptr') = QLayoutItemConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLayoutItem -> HoppyF.Ptr QLayoutItemConst) ptr'

instance QLayoutItemPtr QLayoutItem where
  toQLayoutItem = HoppyP.id

class QLayoutItemSuper a where
  downToQLayoutItem :: a -> QLayoutItem


class QLayoutItemSuperConst a where
  downToQLayoutItemConst :: a -> QLayoutItemConst


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

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