{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.CellRendererToggle
    ( 

-- * Exported types
    CellRendererToggle(..)                  ,
    CellRendererToggleK                     ,
    toCellRendererToggle                    ,
    noCellRendererToggle                    ,


 -- * Methods
-- ** cellRendererToggleGetActivatable
    cellRendererToggleGetActivatable        ,


-- ** cellRendererToggleGetActive
    cellRendererToggleGetActive             ,


-- ** cellRendererToggleGetRadio
    cellRendererToggleGetRadio              ,


-- ** cellRendererToggleNew
    cellRendererToggleNew                   ,


-- ** cellRendererToggleSetActivatable
    cellRendererToggleSetActivatable        ,


-- ** cellRendererToggleSetActive
    cellRendererToggleSetActive             ,


-- ** cellRendererToggleSetRadio
    cellRendererToggleSetRadio              ,




 -- * Properties
-- ** Activatable
    CellRendererToggleActivatablePropertyInfo,
    constructCellRendererToggleActivatable  ,
    getCellRendererToggleActivatable        ,
    setCellRendererToggleActivatable        ,


-- ** Active
    CellRendererToggleActivePropertyInfo    ,
    constructCellRendererToggleActive       ,
    getCellRendererToggleActive             ,
    setCellRendererToggleActive             ,


-- ** Inconsistent
    CellRendererToggleInconsistentPropertyInfo,
    constructCellRendererToggleInconsistent ,
    getCellRendererToggleInconsistent       ,
    setCellRendererToggleInconsistent       ,


-- ** IndicatorSize
    CellRendererToggleIndicatorSizePropertyInfo,
    constructCellRendererToggleIndicatorSize,
    getCellRendererToggleIndicatorSize      ,
    setCellRendererToggleIndicatorSize      ,


-- ** Radio
    CellRendererToggleRadioPropertyInfo     ,
    constructCellRendererToggleRadio        ,
    getCellRendererToggleRadio              ,
    setCellRendererToggleRadio              ,




 -- * Signals
-- ** Toggled
    CellRendererToggleToggledCallback       ,
    CellRendererToggleToggledCallbackC      ,
    CellRendererToggleToggledSignalInfo     ,
    afterCellRendererToggleToggled          ,
    cellRendererToggleToggledCallbackWrapper,
    cellRendererToggleToggledClosure        ,
    mkCellRendererToggleToggledCallback     ,
    noCellRendererToggleToggledCallback     ,
    onCellRendererToggleToggled             ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.GObject as GObject

newtype CellRendererToggle = CellRendererToggle (ForeignPtr CellRendererToggle)
foreign import ccall "gtk_cell_renderer_toggle_get_type"
    c_gtk_cell_renderer_toggle_get_type :: IO GType

type instance ParentTypes CellRendererToggle = CellRendererToggleParentTypes
type CellRendererToggleParentTypes = '[CellRenderer, GObject.Object]

instance GObject CellRendererToggle where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_cell_renderer_toggle_get_type
    

class GObject o => CellRendererToggleK o
instance (GObject o, IsDescendantOf CellRendererToggle o) => CellRendererToggleK o

toCellRendererToggle :: CellRendererToggleK o => o -> IO CellRendererToggle
toCellRendererToggle = unsafeCastTo CellRendererToggle

noCellRendererToggle :: Maybe CellRendererToggle
noCellRendererToggle = Nothing

-- signal CellRendererToggle::toggled
type CellRendererToggleToggledCallback =
    T.Text ->
    IO ()

noCellRendererToggleToggledCallback :: Maybe CellRendererToggleToggledCallback
noCellRendererToggleToggledCallback = Nothing

type CellRendererToggleToggledCallbackC =
    Ptr () ->                               -- object
    CString ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkCellRendererToggleToggledCallback :: CellRendererToggleToggledCallbackC -> IO (FunPtr CellRendererToggleToggledCallbackC)

cellRendererToggleToggledClosure :: CellRendererToggleToggledCallback -> IO Closure
cellRendererToggleToggledClosure cb = newCClosure =<< mkCellRendererToggleToggledCallback wrapped
    where wrapped = cellRendererToggleToggledCallbackWrapper cb

cellRendererToggleToggledCallbackWrapper ::
    CellRendererToggleToggledCallback ->
    Ptr () ->
    CString ->
    Ptr () ->
    IO ()
cellRendererToggleToggledCallbackWrapper _cb _ path _ = do
    path' <- cstringToText path
    _cb  path'

onCellRendererToggleToggled :: (GObject a, MonadIO m) => a -> CellRendererToggleToggledCallback -> m SignalHandlerId
onCellRendererToggleToggled obj cb = liftIO $ connectCellRendererToggleToggled obj cb SignalConnectBefore
afterCellRendererToggleToggled :: (GObject a, MonadIO m) => a -> CellRendererToggleToggledCallback -> m SignalHandlerId
afterCellRendererToggleToggled obj cb = connectCellRendererToggleToggled obj cb SignalConnectAfter

connectCellRendererToggleToggled :: (GObject a, MonadIO m) =>
                                    a -> CellRendererToggleToggledCallback -> SignalConnectMode -> m SignalHandlerId
connectCellRendererToggleToggled obj cb after = liftIO $ do
    cb' <- mkCellRendererToggleToggledCallback (cellRendererToggleToggledCallbackWrapper cb)
    connectSignalFunPtr obj "toggled" cb' after

-- VVV Prop "activatable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getCellRendererToggleActivatable :: (MonadIO m, CellRendererToggleK o) => o -> m Bool
getCellRendererToggleActivatable obj = liftIO $ getObjectPropertyBool obj "activatable"

setCellRendererToggleActivatable :: (MonadIO m, CellRendererToggleK o) => o -> Bool -> m ()
setCellRendererToggleActivatable obj val = liftIO $ setObjectPropertyBool obj "activatable" val

constructCellRendererToggleActivatable :: Bool -> IO ([Char], GValue)
constructCellRendererToggleActivatable val = constructObjectPropertyBool "activatable" val

data CellRendererToggleActivatablePropertyInfo
instance AttrInfo CellRendererToggleActivatablePropertyInfo where
    type AttrAllowedOps CellRendererToggleActivatablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererToggleActivatablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellRendererToggleActivatablePropertyInfo = CellRendererToggleK
    type AttrGetType CellRendererToggleActivatablePropertyInfo = Bool
    type AttrLabel CellRendererToggleActivatablePropertyInfo = "CellRendererToggle::activatable"
    attrGet _ = getCellRendererToggleActivatable
    attrSet _ = setCellRendererToggleActivatable
    attrConstruct _ = constructCellRendererToggleActivatable

-- VVV Prop "active"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getCellRendererToggleActive :: (MonadIO m, CellRendererToggleK o) => o -> m Bool
getCellRendererToggleActive obj = liftIO $ getObjectPropertyBool obj "active"

setCellRendererToggleActive :: (MonadIO m, CellRendererToggleK o) => o -> Bool -> m ()
setCellRendererToggleActive obj val = liftIO $ setObjectPropertyBool obj "active" val

constructCellRendererToggleActive :: Bool -> IO ([Char], GValue)
constructCellRendererToggleActive val = constructObjectPropertyBool "active" val

data CellRendererToggleActivePropertyInfo
instance AttrInfo CellRendererToggleActivePropertyInfo where
    type AttrAllowedOps CellRendererToggleActivePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererToggleActivePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellRendererToggleActivePropertyInfo = CellRendererToggleK
    type AttrGetType CellRendererToggleActivePropertyInfo = Bool
    type AttrLabel CellRendererToggleActivePropertyInfo = "CellRendererToggle::active"
    attrGet _ = getCellRendererToggleActive
    attrSet _ = setCellRendererToggleActive
    attrConstruct _ = constructCellRendererToggleActive

-- VVV Prop "inconsistent"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getCellRendererToggleInconsistent :: (MonadIO m, CellRendererToggleK o) => o -> m Bool
getCellRendererToggleInconsistent obj = liftIO $ getObjectPropertyBool obj "inconsistent"

setCellRendererToggleInconsistent :: (MonadIO m, CellRendererToggleK o) => o -> Bool -> m ()
setCellRendererToggleInconsistent obj val = liftIO $ setObjectPropertyBool obj "inconsistent" val

constructCellRendererToggleInconsistent :: Bool -> IO ([Char], GValue)
constructCellRendererToggleInconsistent val = constructObjectPropertyBool "inconsistent" val

data CellRendererToggleInconsistentPropertyInfo
instance AttrInfo CellRendererToggleInconsistentPropertyInfo where
    type AttrAllowedOps CellRendererToggleInconsistentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererToggleInconsistentPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellRendererToggleInconsistentPropertyInfo = CellRendererToggleK
    type AttrGetType CellRendererToggleInconsistentPropertyInfo = Bool
    type AttrLabel CellRendererToggleInconsistentPropertyInfo = "CellRendererToggle::inconsistent"
    attrGet _ = getCellRendererToggleInconsistent
    attrSet _ = setCellRendererToggleInconsistent
    attrConstruct _ = constructCellRendererToggleInconsistent

-- VVV Prop "indicator-size"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getCellRendererToggleIndicatorSize :: (MonadIO m, CellRendererToggleK o) => o -> m Int32
getCellRendererToggleIndicatorSize obj = liftIO $ getObjectPropertyCInt obj "indicator-size"

setCellRendererToggleIndicatorSize :: (MonadIO m, CellRendererToggleK o) => o -> Int32 -> m ()
setCellRendererToggleIndicatorSize obj val = liftIO $ setObjectPropertyCInt obj "indicator-size" val

constructCellRendererToggleIndicatorSize :: Int32 -> IO ([Char], GValue)
constructCellRendererToggleIndicatorSize val = constructObjectPropertyCInt "indicator-size" val

data CellRendererToggleIndicatorSizePropertyInfo
instance AttrInfo CellRendererToggleIndicatorSizePropertyInfo where
    type AttrAllowedOps CellRendererToggleIndicatorSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererToggleIndicatorSizePropertyInfo = (~) Int32
    type AttrBaseTypeConstraint CellRendererToggleIndicatorSizePropertyInfo = CellRendererToggleK
    type AttrGetType CellRendererToggleIndicatorSizePropertyInfo = Int32
    type AttrLabel CellRendererToggleIndicatorSizePropertyInfo = "CellRendererToggle::indicator-size"
    attrGet _ = getCellRendererToggleIndicatorSize
    attrSet _ = setCellRendererToggleIndicatorSize
    attrConstruct _ = constructCellRendererToggleIndicatorSize

-- VVV Prop "radio"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getCellRendererToggleRadio :: (MonadIO m, CellRendererToggleK o) => o -> m Bool
getCellRendererToggleRadio obj = liftIO $ getObjectPropertyBool obj "radio"

setCellRendererToggleRadio :: (MonadIO m, CellRendererToggleK o) => o -> Bool -> m ()
setCellRendererToggleRadio obj val = liftIO $ setObjectPropertyBool obj "radio" val

constructCellRendererToggleRadio :: Bool -> IO ([Char], GValue)
constructCellRendererToggleRadio val = constructObjectPropertyBool "radio" val

data CellRendererToggleRadioPropertyInfo
instance AttrInfo CellRendererToggleRadioPropertyInfo where
    type AttrAllowedOps CellRendererToggleRadioPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererToggleRadioPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellRendererToggleRadioPropertyInfo = CellRendererToggleK
    type AttrGetType CellRendererToggleRadioPropertyInfo = Bool
    type AttrLabel CellRendererToggleRadioPropertyInfo = "CellRendererToggle::radio"
    attrGet _ = getCellRendererToggleRadio
    attrSet _ = setCellRendererToggleRadio
    attrConstruct _ = constructCellRendererToggleRadio

type instance AttributeList CellRendererToggle = CellRendererToggleAttributeList
type CellRendererToggleAttributeList = ('[ '("activatable", CellRendererToggleActivatablePropertyInfo), '("active", CellRendererToggleActivePropertyInfo), '("cell-background", CellRendererCellBackgroundPropertyInfo), '("cell-background-gdk", CellRendererCellBackgroundGdkPropertyInfo), '("cell-background-rgba", CellRendererCellBackgroundRgbaPropertyInfo), '("cell-background-set", CellRendererCellBackgroundSetPropertyInfo), '("editing", CellRendererEditingPropertyInfo), '("height", CellRendererHeightPropertyInfo), '("inconsistent", CellRendererToggleInconsistentPropertyInfo), '("indicator-size", CellRendererToggleIndicatorSizePropertyInfo), '("is-expanded", CellRendererIsExpandedPropertyInfo), '("is-expander", CellRendererIsExpanderPropertyInfo), '("mode", CellRendererModePropertyInfo), '("radio", CellRendererToggleRadioPropertyInfo), '("sensitive", CellRendererSensitivePropertyInfo), '("visible", CellRendererVisiblePropertyInfo), '("width", CellRendererWidthPropertyInfo), '("xalign", CellRendererXalignPropertyInfo), '("xpad", CellRendererXpadPropertyInfo), '("yalign", CellRendererYalignPropertyInfo), '("ypad", CellRendererYpadPropertyInfo)] :: [(Symbol, *)])

data CellRendererToggleToggledSignalInfo
instance SignalInfo CellRendererToggleToggledSignalInfo where
    type HaskellCallbackType CellRendererToggleToggledSignalInfo = CellRendererToggleToggledCallback
    connectSignal _ = connectCellRendererToggleToggled

type instance SignalList CellRendererToggle = CellRendererToggleSignalList
type CellRendererToggleSignalList = ('[ '("editing-canceled", CellRendererEditingCanceledSignalInfo), '("editing-started", CellRendererEditingStartedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("toggled", CellRendererToggleToggledSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method CellRendererToggle::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gtk" "CellRendererToggle"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_toggle_new" gtk_cell_renderer_toggle_new :: 
    IO (Ptr CellRendererToggle)


cellRendererToggleNew ::
    (MonadIO m) =>
    m CellRendererToggle
cellRendererToggleNew  = liftIO $ do
    result <- gtk_cell_renderer_toggle_new
    checkUnexpectedReturnNULL "gtk_cell_renderer_toggle_new" result
    result' <- (newObject CellRendererToggle) result
    return result'

-- method CellRendererToggle::get_activatable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_toggle_get_activatable" gtk_cell_renderer_toggle_get_activatable :: 
    Ptr CellRendererToggle ->               -- _obj : TInterface "Gtk" "CellRendererToggle"
    IO CInt


cellRendererToggleGetActivatable ::
    (MonadIO m, CellRendererToggleK a) =>
    a ->                                    -- _obj
    m Bool
cellRendererToggleGetActivatable _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_cell_renderer_toggle_get_activatable _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method CellRendererToggle::get_active
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_toggle_get_active" gtk_cell_renderer_toggle_get_active :: 
    Ptr CellRendererToggle ->               -- _obj : TInterface "Gtk" "CellRendererToggle"
    IO CInt


cellRendererToggleGetActive ::
    (MonadIO m, CellRendererToggleK a) =>
    a ->                                    -- _obj
    m Bool
cellRendererToggleGetActive _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_cell_renderer_toggle_get_active _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method CellRendererToggle::get_radio
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_toggle_get_radio" gtk_cell_renderer_toggle_get_radio :: 
    Ptr CellRendererToggle ->               -- _obj : TInterface "Gtk" "CellRendererToggle"
    IO CInt


cellRendererToggleGetRadio ::
    (MonadIO m, CellRendererToggleK a) =>
    a ->                                    -- _obj
    m Bool
cellRendererToggleGetRadio _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_cell_renderer_toggle_get_radio _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method CellRendererToggle::set_activatable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_toggle_set_activatable" gtk_cell_renderer_toggle_set_activatable :: 
    Ptr CellRendererToggle ->               -- _obj : TInterface "Gtk" "CellRendererToggle"
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()


cellRendererToggleSetActivatable ::
    (MonadIO m, CellRendererToggleK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- setting
    m ()
cellRendererToggleSetActivatable _obj setting = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let setting' = (fromIntegral . fromEnum) setting
    gtk_cell_renderer_toggle_set_activatable _obj' setting'
    touchManagedPtr _obj
    return ()

-- method CellRendererToggle::set_active
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_toggle_set_active" gtk_cell_renderer_toggle_set_active :: 
    Ptr CellRendererToggle ->               -- _obj : TInterface "Gtk" "CellRendererToggle"
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()


cellRendererToggleSetActive ::
    (MonadIO m, CellRendererToggleK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- setting
    m ()
cellRendererToggleSetActive _obj setting = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let setting' = (fromIntegral . fromEnum) setting
    gtk_cell_renderer_toggle_set_active _obj' setting'
    touchManagedPtr _obj
    return ()

-- method CellRendererToggle::set_radio
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "radio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellRendererToggle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "radio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_toggle_set_radio" gtk_cell_renderer_toggle_set_radio :: 
    Ptr CellRendererToggle ->               -- _obj : TInterface "Gtk" "CellRendererToggle"
    CInt ->                                 -- radio : TBasicType TBoolean
    IO ()


cellRendererToggleSetRadio ::
    (MonadIO m, CellRendererToggleK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- radio
    m ()
cellRendererToggleSetRadio _obj radio = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let radio' = (fromIntegral . fromEnum) radio
    gtk_cell_renderer_toggle_set_radio _obj' radio'
    touchManagedPtr _obj
    return ()