packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QRadioButton (
  castQRadioButtonToQAbstractButton,
  castQAbstractButtonToQRadioButton,
  castQRadioButtonToQWidget,
  castQWidgetToQRadioButton,
  castQRadioButtonToQObject,
  castQObjectToQRadioButton,
  QRadioButtonValue (..),
  QRadioButtonConstPtr (..),
  QRadioButtonPtr (..),
  QRadioButtonConst (..),
  castQRadioButtonToConst,
  QRadioButton (..),
  castQRadioButtonToNonconst,
  new,
  newWithParent,
  newWithText,
  newWithTextAndParent,
  QRadioButtonSuper (..),
  QRadioButtonSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QRadioButton_new" new' ::  HoppyP.IO (HoppyF.Ptr QRadioButton)
foreign import ccall "genpop__QRadioButton_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QRadioButton)
foreign import ccall "genpop__QRadioButton_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QRadioButton)
foreign import ccall "genpop__QRadioButton_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QRadioButton)
foreign import ccall "gencast__QRadioButton__QAbstractButton" castQRadioButtonToQAbstractButton :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M354.QAbstractButtonConst
foreign import ccall "gencast__QAbstractButton__QRadioButton" castQAbstractButtonToQRadioButton :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr QRadioButtonConst
foreign import ccall "gencast__QRadioButton__QWidget" castQRadioButtonToQWidget :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QRadioButton" castQWidgetToQRadioButton :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QRadioButtonConst
foreign import ccall "gencast__QRadioButton__QObject" castQRadioButtonToQObject :: HoppyF.Ptr QRadioButtonConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QRadioButton" castQObjectToQRadioButton :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QRadioButtonConst
foreign import ccall "gendel__QRadioButton" delete'QRadioButton :: HoppyF.Ptr QRadioButtonConst -> HoppyP.IO ()
foreign import ccall "&gendel__QRadioButton" deletePtr'QRadioButton :: HoppyF.FunPtr (HoppyF.Ptr QRadioButtonConst -> HoppyP.IO ())

class QRadioButtonValue a where
  withQRadioButtonPtr :: a -> (QRadioButtonConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QRadioButtonConstPtr a => QRadioButtonValue a where
  withQRadioButtonPtr = HoppyP.flip ($) . toQRadioButtonConst

class (M354.QAbstractButtonConstPtr this) => QRadioButtonConstPtr this where
  toQRadioButtonConst :: this -> QRadioButtonConst

class (QRadioButtonConstPtr this, M354.QAbstractButtonPtr this) => QRadioButtonPtr this where
  toQRadioButton :: this -> QRadioButton

data QRadioButtonConst =
    QRadioButtonConst (HoppyF.Ptr QRadioButtonConst)
  | QRadioButtonConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRadioButtonConst)
  deriving (HoppyP.Show)

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

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

castQRadioButtonToConst :: QRadioButton -> QRadioButtonConst
castQRadioButtonToConst (QRadioButton ptr') = QRadioButtonConst $ HoppyF.castPtr ptr'
castQRadioButtonToConst (QRadioButtonGc fptr' ptr') = QRadioButtonConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QRadioButtonConstPtr QRadioButtonConst where
  toQRadioButtonConst = HoppyP.id

instance M354.QAbstractButtonConstPtr QRadioButtonConst where
  toQAbstractButtonConst (QRadioButtonConst ptr') = M354.QAbstractButtonConst $ castQRadioButtonToQAbstractButton ptr'
  toQAbstractButtonConst (QRadioButtonConstGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQRadioButtonToQAbstractButton ptr'

instance M506.QWidgetConstPtr QRadioButtonConst where
  toQWidgetConst (QRadioButtonConst ptr') = M506.QWidgetConst $ castQRadioButtonToQWidget ptr'
  toQWidgetConst (QRadioButtonConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQRadioButtonToQWidget ptr'

instance M94.QObjectConstPtr QRadioButtonConst where
  toQObjectConst (QRadioButtonConst ptr') = M94.QObjectConst $ castQRadioButtonToQObject ptr'
  toQObjectConst (QRadioButtonConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRadioButtonToQObject ptr'

data QRadioButton =
    QRadioButton (HoppyF.Ptr QRadioButton)
  | QRadioButtonGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QRadioButton)
  deriving (HoppyP.Show)

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

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

castQRadioButtonToNonconst :: QRadioButtonConst -> QRadioButton
castQRadioButtonToNonconst (QRadioButtonConst ptr') = QRadioButton $ HoppyF.castPtr ptr'
castQRadioButtonToNonconst (QRadioButtonConstGc fptr' ptr') = QRadioButtonGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QRadioButtonConstPtr QRadioButton where
  toQRadioButtonConst (QRadioButton ptr') = QRadioButtonConst $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
  toQRadioButtonConst (QRadioButtonGc fptr' ptr') = QRadioButtonConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'

instance QRadioButtonPtr QRadioButton where
  toQRadioButton = HoppyP.id

instance M354.QAbstractButtonConstPtr QRadioButton where
  toQAbstractButtonConst (QRadioButton ptr') = M354.QAbstractButtonConst $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
  toQAbstractButtonConst (QRadioButtonGc fptr' ptr') = M354.QAbstractButtonConstGc fptr' $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'

instance M354.QAbstractButtonPtr QRadioButton where
  toQAbstractButton (QRadioButton ptr') = M354.QAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
  toQAbstractButton (QRadioButtonGc fptr' ptr') = M354.QAbstractButtonGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M354.QAbstractButtonConst -> HoppyF.Ptr M354.QAbstractButton) $ castQRadioButtonToQAbstractButton $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'

instance M506.QWidgetConstPtr QRadioButton where
  toQWidgetConst (QRadioButton ptr') = M506.QWidgetConst $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
  toQWidgetConst (QRadioButtonGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'

instance M506.QWidgetPtr QRadioButton where
  toQWidget (QRadioButton ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
  toQWidget (QRadioButtonGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQRadioButtonToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'

instance M94.QObjectConstPtr QRadioButton where
  toQObjectConst (QRadioButton ptr') = M94.QObjectConst $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
  toQObjectConst (QRadioButtonGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'

instance M94.QObjectPtr QRadioButton where
  toQObject (QRadioButton ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'
  toQObject (QRadioButtonGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQRadioButtonToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QRadioButton -> HoppyF.Ptr QRadioButtonConst) ptr'

new :: (HoppyP.IO QRadioButton)
new =
  HoppyP.fmap QRadioButton
  (new')

newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QRadioButton)
newWithParent arg'1 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  HoppyP.fmap QRadioButton
  (newWithParent' arg'1')

newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QRadioButton)
newWithText arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap QRadioButton
  (newWithText' arg'1')

newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QRadioButton)
newWithTextAndParent arg'1 arg'2 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  HoppyP.fmap QRadioButton
  (newWithTextAndParent' arg'1' arg'2')

class QRadioButtonSuper a where
  downToQRadioButton :: a -> QRadioButton

instance QRadioButtonSuper M354.QAbstractButton where
  downToQRadioButton = castQRadioButtonToNonconst . cast' . M354.castQAbstractButtonToConst
    where
      cast' (M354.QAbstractButtonConst ptr') = QRadioButtonConst $ castQAbstractButtonToQRadioButton ptr'
      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQAbstractButtonToQRadioButton ptr'
instance QRadioButtonSuper M506.QWidget where
  downToQRadioButton = castQRadioButtonToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QRadioButtonConst $ castQWidgetToQRadioButton ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQWidgetToQRadioButton ptr'
instance QRadioButtonSuper M94.QObject where
  downToQRadioButton = castQRadioButtonToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QRadioButtonConst $ castQObjectToQRadioButton ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQObjectToQRadioButton ptr'

class QRadioButtonSuperConst a where
  downToQRadioButtonConst :: a -> QRadioButtonConst

instance QRadioButtonSuperConst M354.QAbstractButtonConst where
  downToQRadioButtonConst = cast'
    where
      cast' (M354.QAbstractButtonConst ptr') = QRadioButtonConst $ castQAbstractButtonToQRadioButton ptr'
      cast' (M354.QAbstractButtonConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQAbstractButtonToQRadioButton ptr'
instance QRadioButtonSuperConst M506.QWidgetConst where
  downToQRadioButtonConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QRadioButtonConst $ castQWidgetToQRadioButton ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQWidgetToQRadioButton ptr'
instance QRadioButtonSuperConst M94.QObjectConst where
  downToQRadioButtonConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QRadioButtonConst $ castQObjectToQRadioButton ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QRadioButtonConstGc fptr' $ castQObjectToQRadioButton ptr'

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

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