packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QButtonGroup (
  castQButtonGroupToQObject,
  castQObjectToQButtonGroup,
  QButtonGroupValue (..),
  QButtonGroupConstPtr (..),
  button,
  buttons,
  checkedButton,
  checkedId,
  exclusive,
  id,
  QButtonGroupPtr (..),
  addButton,
  addButtonWithId,
  setExclusive,
  removeButton,
  setId,
  emitButtonClicked,
  emitButtonClickedId,
  emitButtonPressed,
  emitButtonPressedId,
  emitButtonReleased,
  emitButtonReleasedId,
  emitButtonToggled,
  emitButtonToggledId,
  QButtonGroupConst (..),
  castQButtonGroupToConst,
  QButtonGroup (..),
  castQButtonGroupToNonconst,
  new,
  newWithParent,
  QButtonGroupSuper (..),
  QButtonGroupSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QAbstractButton as M194
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M354
import Prelude (($), (.), (/=), (=<<), (==), (>>=))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QButtonGroup_new" new' ::  HoppyP.IO (HoppyF.Ptr QButtonGroup)
foreign import ccall "genpop__QButtonGroup_newWithParent" newWithParent' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO (HoppyF.Ptr QButtonGroup)
foreign import ccall "genpop__QButtonGroup_addButton" addButton' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_addButtonWithId" addButtonWithId' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_button" button' ::  HoppyF.Ptr QButtonGroupConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
foreign import ccall "genpop__QButtonGroup_buttons" buttons' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO (HoppyF.Ptr M194.QListQAbstractButtonConst)
foreign import ccall "genpop__QButtonGroup_checkedButton" checkedButton' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO (HoppyF.Ptr M354.QAbstractButton)
foreign import ccall "genpop__QButtonGroup_checkedId" checkedId' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QButtonGroup_exclusive" exclusive' ::  HoppyF.Ptr QButtonGroupConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QButtonGroup_setExclusive" setExclusive' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_id" id' ::  HoppyF.Ptr QButtonGroupConst -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QButtonGroup_removeButton" removeButton' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_setId" setId' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonClicked" emitButtonClicked' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonClickedId" emitButtonClickedId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonPressed" emitButtonPressed' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonPressedId" emitButtonPressedId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonReleased" emitButtonReleased' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonReleasedId" emitButtonReleasedId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonToggled" emitButtonToggled' ::  HoppyF.Ptr QButtonGroup -> HoppyF.Ptr M354.QAbstractButton -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QButtonGroup_emitButtonToggledId" emitButtonToggledId' ::  HoppyF.Ptr QButtonGroup -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "gencast__QButtonGroup__QObject" castQButtonGroupToQObject :: HoppyF.Ptr QButtonGroupConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QButtonGroup" castQObjectToQButtonGroup :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QButtonGroupConst
foreign import ccall "gendel__QButtonGroup" delete'QButtonGroup :: HoppyF.Ptr QButtonGroupConst -> HoppyP.IO ()
foreign import ccall "&gendel__QButtonGroup" deletePtr'QButtonGroup :: HoppyF.FunPtr (HoppyF.Ptr QButtonGroupConst -> HoppyP.IO ())

class QButtonGroupValue a where
  withQButtonGroupPtr :: a -> (QButtonGroupConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QButtonGroupConstPtr a => QButtonGroupValue a where
  withQButtonGroupPtr = HoppyP.flip ($) . toQButtonGroupConst

class (M94.QObjectConstPtr this) => QButtonGroupConstPtr this where
  toQButtonGroupConst :: this -> QButtonGroupConst

button :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M354.QAbstractButton)
button arg'1 arg'2 =
  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap M354.QAbstractButton
  (button' arg'1' arg'2')

buttons :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO [M354.QAbstractButton])
buttons arg'1 =
  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M194.QListQAbstractButtonConst) =<<
  (buttons' arg'1')

checkedButton :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO M354.QAbstractButton)
checkedButton arg'1 =
  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M354.QAbstractButton
  (checkedButton' arg'1')

checkedId :: (QButtonGroupValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
checkedId arg'1 =
  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (checkedId' arg'1')

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

id :: (QButtonGroupValue this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
id arg'1 arg'2 =
  withQButtonGroupPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (id' arg'1' arg'2')

class (QButtonGroupConstPtr this, M94.QObjectPtr this) => QButtonGroupPtr this where
  toQButtonGroup :: this -> QButtonGroup

addButton :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
addButton arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (addButton' arg'1' arg'2')

addButtonWithId :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
addButtonWithId arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (addButtonWithId' arg'1' arg'2' arg'3')

setExclusive :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setExclusive arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setExclusive' arg'1' arg'2')

removeButton :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
removeButton arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (removeButton' arg'1' arg'2')

setId :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
setId arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (setId' arg'1' arg'2' arg'3')

emitButtonClicked :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitButtonClicked arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (emitButtonClicked' arg'1' arg'2')

emitButtonClickedId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
emitButtonClickedId arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (emitButtonClickedId' arg'1' arg'2')

emitButtonPressed :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitButtonPressed arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (emitButtonPressed' arg'1' arg'2')

emitButtonPressedId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
emitButtonPressedId arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (emitButtonPressedId' arg'1' arg'2')

emitButtonReleased :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitButtonReleased arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (emitButtonReleased' arg'1' arg'2')

emitButtonReleasedId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
emitButtonReleasedId arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (emitButtonReleasedId' arg'1' arg'2')

emitButtonToggled :: (QButtonGroupPtr this, M354.QAbstractButtonPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Bool) -> (HoppyP.IO ())
emitButtonToggled arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M354.toQAbstractButton arg'2) $ \arg'2' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'3 >>= \arg'3' ->
  (emitButtonToggled' arg'1' arg'2' arg'3')

emitButtonToggledId :: (QButtonGroupPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
emitButtonToggledId arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQButtonGroup arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'3 >>= \arg'3' ->
  (emitButtonToggledId' arg'1' arg'2' arg'3')

data QButtonGroupConst =
    QButtonGroupConst (HoppyF.Ptr QButtonGroupConst)
  | QButtonGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QButtonGroupConst)
  deriving (HoppyP.Show)

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

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

castQButtonGroupToConst :: QButtonGroup -> QButtonGroupConst
castQButtonGroupToConst (QButtonGroup ptr') = QButtonGroupConst $ HoppyF.castPtr ptr'
castQButtonGroupToConst (QButtonGroupGc fptr' ptr') = QButtonGroupConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QButtonGroupConstPtr QButtonGroupConst where
  toQButtonGroupConst = HoppyP.id

instance M94.QObjectConstPtr QButtonGroupConst where
  toQObjectConst (QButtonGroupConst ptr') = M94.QObjectConst $ castQButtonGroupToQObject ptr'
  toQObjectConst (QButtonGroupConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQButtonGroupToQObject ptr'

data QButtonGroup =
    QButtonGroup (HoppyF.Ptr QButtonGroup)
  | QButtonGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QButtonGroup)
  deriving (HoppyP.Show)

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

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

castQButtonGroupToNonconst :: QButtonGroupConst -> QButtonGroup
castQButtonGroupToNonconst (QButtonGroupConst ptr') = QButtonGroup $ HoppyF.castPtr ptr'
castQButtonGroupToNonconst (QButtonGroupConstGc fptr' ptr') = QButtonGroupGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QButtonGroupConstPtr QButtonGroup where
  toQButtonGroupConst (QButtonGroup ptr') = QButtonGroupConst $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
  toQButtonGroupConst (QButtonGroupGc fptr' ptr') = QButtonGroupConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'

instance QButtonGroupPtr QButtonGroup where
  toQButtonGroup = HoppyP.id

instance M94.QObjectConstPtr QButtonGroup where
  toQObjectConst (QButtonGroup ptr') = M94.QObjectConst $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
  toQObjectConst (QButtonGroupGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'

instance M94.QObjectPtr QButtonGroup where
  toQObject (QButtonGroup ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'
  toQObject (QButtonGroupGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQButtonGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QButtonGroup -> HoppyF.Ptr QButtonGroupConst) ptr'

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

newWithParent :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO QButtonGroup)
newWithParent arg'1 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  HoppyP.fmap QButtonGroup
  (newWithParent' arg'1')

class QButtonGroupSuper a where
  downToQButtonGroup :: a -> QButtonGroup

instance QButtonGroupSuper M94.QObject where
  downToQButtonGroup = castQButtonGroupToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QButtonGroupConst $ castQObjectToQButtonGroup ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QButtonGroupConstGc fptr' $ castQObjectToQButtonGroup ptr'

class QButtonGroupSuperConst a where
  downToQButtonGroupConst :: a -> QButtonGroupConst

instance QButtonGroupSuperConst M94.QObjectConst where
  downToQButtonGroupConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QButtonGroupConst $ castQObjectToQButtonGroup ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QButtonGroupConstGc fptr' $ castQObjectToQButtonGroup ptr'

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

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