{- |
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.CellView
    ( 

-- * Exported types
    CellView(..)                            ,
    CellViewK                               ,
    toCellView                              ,
    noCellView                              ,


 -- * Methods
-- ** cellViewGetDisplayedRow
    cellViewGetDisplayedRow                 ,


-- ** cellViewGetDrawSensitive
    cellViewGetDrawSensitive                ,


-- ** cellViewGetFitModel
    cellViewGetFitModel                     ,


-- ** cellViewGetModel
    cellViewGetModel                        ,


-- ** cellViewGetSizeOfRow
    cellViewGetSizeOfRow                    ,


-- ** cellViewNew
    cellViewNew                             ,


-- ** cellViewNewWithContext
    cellViewNewWithContext                  ,


-- ** cellViewNewWithMarkup
    cellViewNewWithMarkup                   ,


-- ** cellViewNewWithPixbuf
    cellViewNewWithPixbuf                   ,


-- ** cellViewNewWithText
    cellViewNewWithText                     ,


-- ** cellViewSetBackgroundColor
    cellViewSetBackgroundColor              ,


-- ** cellViewSetBackgroundRgba
    cellViewSetBackgroundRgba               ,


-- ** cellViewSetDisplayedRow
    cellViewSetDisplayedRow                 ,


-- ** cellViewSetDrawSensitive
    cellViewSetDrawSensitive                ,


-- ** cellViewSetFitModel
    cellViewSetFitModel                     ,


-- ** cellViewSetModel
    cellViewSetModel                        ,




 -- * Properties
-- ** Background
    CellViewBackgroundPropertyInfo          ,
    constructCellViewBackground             ,
    setCellViewBackground                   ,


-- ** BackgroundGdk
    CellViewBackgroundGdkPropertyInfo       ,
    constructCellViewBackgroundGdk          ,
    getCellViewBackgroundGdk                ,
    setCellViewBackgroundGdk                ,


-- ** BackgroundRgba
    CellViewBackgroundRgbaPropertyInfo      ,
    constructCellViewBackgroundRgba         ,
    getCellViewBackgroundRgba               ,
    setCellViewBackgroundRgba               ,


-- ** BackgroundSet
    CellViewBackgroundSetPropertyInfo       ,
    constructCellViewBackgroundSet          ,
    getCellViewBackgroundSet                ,
    setCellViewBackgroundSet                ,


-- ** CellArea
    CellViewCellAreaPropertyInfo            ,
    constructCellViewCellArea               ,
    getCellViewCellArea                     ,


-- ** CellAreaContext
    CellViewCellAreaContextPropertyInfo     ,
    constructCellViewCellAreaContext        ,
    getCellViewCellAreaContext              ,


-- ** DrawSensitive
    CellViewDrawSensitivePropertyInfo       ,
    constructCellViewDrawSensitive          ,
    getCellViewDrawSensitive                ,
    setCellViewDrawSensitive                ,


-- ** FitModel
    CellViewFitModelPropertyInfo            ,
    constructCellViewFitModel               ,
    getCellViewFitModel                     ,
    setCellViewFitModel                     ,


-- ** Model
    CellViewModelPropertyInfo               ,
    constructCellViewModel                  ,
    getCellViewModel                        ,
    setCellViewModel                        ,




    ) 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.Atk as Atk
import qualified GI.GObject as GObject
import qualified GI.Gdk as Gdk
import qualified GI.GdkPixbuf as GdkPixbuf

newtype CellView = CellView (ForeignPtr CellView)
foreign import ccall "gtk_cell_view_get_type"
    c_gtk_cell_view_get_type :: IO GType

type instance ParentTypes CellView = CellViewParentTypes
type CellViewParentTypes = '[Widget, GObject.Object, Atk.ImplementorIface, Buildable, CellLayout, Orientable]

instance GObject CellView where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_cell_view_get_type
    

class GObject o => CellViewK o
instance (GObject o, IsDescendantOf CellView o) => CellViewK o

toCellView :: CellViewK o => o -> IO CellView
toCellView = unsafeCastTo CellView

noCellView :: Maybe CellView
noCellView = Nothing

-- VVV Prop "background"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyWritable]

setCellViewBackground :: (MonadIO m, CellViewK o) => o -> T.Text -> m ()
setCellViewBackground obj val = liftIO $ setObjectPropertyString obj "background" val

constructCellViewBackground :: T.Text -> IO ([Char], GValue)
constructCellViewBackground val = constructObjectPropertyString "background" val

data CellViewBackgroundPropertyInfo
instance AttrInfo CellViewBackgroundPropertyInfo where
    type AttrAllowedOps CellViewBackgroundPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
    type AttrSetTypeConstraint CellViewBackgroundPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint CellViewBackgroundPropertyInfo = CellViewK
    type AttrGetType CellViewBackgroundPropertyInfo = ()
    type AttrLabel CellViewBackgroundPropertyInfo = "CellView::background"
    attrGet _ = undefined
    attrSet _ = setCellViewBackground
    attrConstruct _ = constructCellViewBackground

-- VVV Prop "background-gdk"
   -- Type: TInterface "Gdk" "Color"
   -- Flags: [PropertyReadable,PropertyWritable]

getCellViewBackgroundGdk :: (MonadIO m, CellViewK o) => o -> m Gdk.Color
getCellViewBackgroundGdk obj = liftIO $ getObjectPropertyBoxed obj "background-gdk" Gdk.Color

setCellViewBackgroundGdk :: (MonadIO m, CellViewK o) => o -> Gdk.Color -> m ()
setCellViewBackgroundGdk obj val = liftIO $ setObjectPropertyBoxed obj "background-gdk" val

constructCellViewBackgroundGdk :: Gdk.Color -> IO ([Char], GValue)
constructCellViewBackgroundGdk val = constructObjectPropertyBoxed "background-gdk" val

data CellViewBackgroundGdkPropertyInfo
instance AttrInfo CellViewBackgroundGdkPropertyInfo where
    type AttrAllowedOps CellViewBackgroundGdkPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewBackgroundGdkPropertyInfo = (~) Gdk.Color
    type AttrBaseTypeConstraint CellViewBackgroundGdkPropertyInfo = CellViewK
    type AttrGetType CellViewBackgroundGdkPropertyInfo = Gdk.Color
    type AttrLabel CellViewBackgroundGdkPropertyInfo = "CellView::background-gdk"
    attrGet _ = getCellViewBackgroundGdk
    attrSet _ = setCellViewBackgroundGdk
    attrConstruct _ = constructCellViewBackgroundGdk

-- VVV Prop "background-rgba"
   -- Type: TInterface "Gdk" "RGBA"
   -- Flags: [PropertyReadable,PropertyWritable]

getCellViewBackgroundRgba :: (MonadIO m, CellViewK o) => o -> m Gdk.RGBA
getCellViewBackgroundRgba obj = liftIO $ getObjectPropertyBoxed obj "background-rgba" Gdk.RGBA

setCellViewBackgroundRgba :: (MonadIO m, CellViewK o) => o -> Gdk.RGBA -> m ()
setCellViewBackgroundRgba obj val = liftIO $ setObjectPropertyBoxed obj "background-rgba" val

constructCellViewBackgroundRgba :: Gdk.RGBA -> IO ([Char], GValue)
constructCellViewBackgroundRgba val = constructObjectPropertyBoxed "background-rgba" val

data CellViewBackgroundRgbaPropertyInfo
instance AttrInfo CellViewBackgroundRgbaPropertyInfo where
    type AttrAllowedOps CellViewBackgroundRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewBackgroundRgbaPropertyInfo = (~) Gdk.RGBA
    type AttrBaseTypeConstraint CellViewBackgroundRgbaPropertyInfo = CellViewK
    type AttrGetType CellViewBackgroundRgbaPropertyInfo = Gdk.RGBA
    type AttrLabel CellViewBackgroundRgbaPropertyInfo = "CellView::background-rgba"
    attrGet _ = getCellViewBackgroundRgba
    attrSet _ = setCellViewBackgroundRgba
    attrConstruct _ = constructCellViewBackgroundRgba

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

getCellViewBackgroundSet :: (MonadIO m, CellViewK o) => o -> m Bool
getCellViewBackgroundSet obj = liftIO $ getObjectPropertyBool obj "background-set"

setCellViewBackgroundSet :: (MonadIO m, CellViewK o) => o -> Bool -> m ()
setCellViewBackgroundSet obj val = liftIO $ setObjectPropertyBool obj "background-set" val

constructCellViewBackgroundSet :: Bool -> IO ([Char], GValue)
constructCellViewBackgroundSet val = constructObjectPropertyBool "background-set" val

data CellViewBackgroundSetPropertyInfo
instance AttrInfo CellViewBackgroundSetPropertyInfo where
    type AttrAllowedOps CellViewBackgroundSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewBackgroundSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellViewBackgroundSetPropertyInfo = CellViewK
    type AttrGetType CellViewBackgroundSetPropertyInfo = Bool
    type AttrLabel CellViewBackgroundSetPropertyInfo = "CellView::background-set"
    attrGet _ = getCellViewBackgroundSet
    attrSet _ = setCellViewBackgroundSet
    attrConstruct _ = constructCellViewBackgroundSet

-- VVV Prop "cell-area"
   -- Type: TInterface "Gtk" "CellArea"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getCellViewCellArea :: (MonadIO m, CellViewK o) => o -> m CellArea
getCellViewCellArea obj = liftIO $ getObjectPropertyObject obj "cell-area" CellArea

constructCellViewCellArea :: (CellAreaK a) => a -> IO ([Char], GValue)
constructCellViewCellArea val = constructObjectPropertyObject "cell-area" val

data CellViewCellAreaPropertyInfo
instance AttrInfo CellViewCellAreaPropertyInfo where
    type AttrAllowedOps CellViewCellAreaPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewCellAreaPropertyInfo = CellAreaK
    type AttrBaseTypeConstraint CellViewCellAreaPropertyInfo = CellViewK
    type AttrGetType CellViewCellAreaPropertyInfo = CellArea
    type AttrLabel CellViewCellAreaPropertyInfo = "CellView::cell-area"
    attrGet _ = getCellViewCellArea
    attrSet _ = undefined
    attrConstruct _ = constructCellViewCellArea

-- VVV Prop "cell-area-context"
   -- Type: TInterface "Gtk" "CellAreaContext"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getCellViewCellAreaContext :: (MonadIO m, CellViewK o) => o -> m CellAreaContext
getCellViewCellAreaContext obj = liftIO $ getObjectPropertyObject obj "cell-area-context" CellAreaContext

constructCellViewCellAreaContext :: (CellAreaContextK a) => a -> IO ([Char], GValue)
constructCellViewCellAreaContext val = constructObjectPropertyObject "cell-area-context" val

data CellViewCellAreaContextPropertyInfo
instance AttrInfo CellViewCellAreaContextPropertyInfo where
    type AttrAllowedOps CellViewCellAreaContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewCellAreaContextPropertyInfo = CellAreaContextK
    type AttrBaseTypeConstraint CellViewCellAreaContextPropertyInfo = CellViewK
    type AttrGetType CellViewCellAreaContextPropertyInfo = CellAreaContext
    type AttrLabel CellViewCellAreaContextPropertyInfo = "CellView::cell-area-context"
    attrGet _ = getCellViewCellAreaContext
    attrSet _ = undefined
    attrConstruct _ = constructCellViewCellAreaContext

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

getCellViewDrawSensitive :: (MonadIO m, CellViewK o) => o -> m Bool
getCellViewDrawSensitive obj = liftIO $ getObjectPropertyBool obj "draw-sensitive"

setCellViewDrawSensitive :: (MonadIO m, CellViewK o) => o -> Bool -> m ()
setCellViewDrawSensitive obj val = liftIO $ setObjectPropertyBool obj "draw-sensitive" val

constructCellViewDrawSensitive :: Bool -> IO ([Char], GValue)
constructCellViewDrawSensitive val = constructObjectPropertyBool "draw-sensitive" val

data CellViewDrawSensitivePropertyInfo
instance AttrInfo CellViewDrawSensitivePropertyInfo where
    type AttrAllowedOps CellViewDrawSensitivePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewDrawSensitivePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellViewDrawSensitivePropertyInfo = CellViewK
    type AttrGetType CellViewDrawSensitivePropertyInfo = Bool
    type AttrLabel CellViewDrawSensitivePropertyInfo = "CellView::draw-sensitive"
    attrGet _ = getCellViewDrawSensitive
    attrSet _ = setCellViewDrawSensitive
    attrConstruct _ = constructCellViewDrawSensitive

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

getCellViewFitModel :: (MonadIO m, CellViewK o) => o -> m Bool
getCellViewFitModel obj = liftIO $ getObjectPropertyBool obj "fit-model"

setCellViewFitModel :: (MonadIO m, CellViewK o) => o -> Bool -> m ()
setCellViewFitModel obj val = liftIO $ setObjectPropertyBool obj "fit-model" val

constructCellViewFitModel :: Bool -> IO ([Char], GValue)
constructCellViewFitModel val = constructObjectPropertyBool "fit-model" val

data CellViewFitModelPropertyInfo
instance AttrInfo CellViewFitModelPropertyInfo where
    type AttrAllowedOps CellViewFitModelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewFitModelPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellViewFitModelPropertyInfo = CellViewK
    type AttrGetType CellViewFitModelPropertyInfo = Bool
    type AttrLabel CellViewFitModelPropertyInfo = "CellView::fit-model"
    attrGet _ = getCellViewFitModel
    attrSet _ = setCellViewFitModel
    attrConstruct _ = constructCellViewFitModel

-- VVV Prop "model"
   -- Type: TInterface "Gtk" "TreeModel"
   -- Flags: [PropertyReadable,PropertyWritable]

getCellViewModel :: (MonadIO m, CellViewK o) => o -> m TreeModel
getCellViewModel obj = liftIO $ getObjectPropertyObject obj "model" TreeModel

setCellViewModel :: (MonadIO m, CellViewK o, TreeModelK a) => o -> a -> m ()
setCellViewModel obj val = liftIO $ setObjectPropertyObject obj "model" val

constructCellViewModel :: (TreeModelK a) => a -> IO ([Char], GValue)
constructCellViewModel val = constructObjectPropertyObject "model" val

data CellViewModelPropertyInfo
instance AttrInfo CellViewModelPropertyInfo where
    type AttrAllowedOps CellViewModelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellViewModelPropertyInfo = TreeModelK
    type AttrBaseTypeConstraint CellViewModelPropertyInfo = CellViewK
    type AttrGetType CellViewModelPropertyInfo = TreeModel
    type AttrLabel CellViewModelPropertyInfo = "CellView::model"
    attrGet _ = getCellViewModel
    attrSet _ = setCellViewModel
    attrConstruct _ = constructCellViewModel

type instance AttributeList CellView = CellViewAttributeList
type CellViewAttributeList = ('[ '("app-paintable", WidgetAppPaintablePropertyInfo), '("background", CellViewBackgroundPropertyInfo), '("background-gdk", CellViewBackgroundGdkPropertyInfo), '("background-rgba", CellViewBackgroundRgbaPropertyInfo), '("background-set", CellViewBackgroundSetPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("cell-area", CellViewCellAreaPropertyInfo), '("cell-area-context", CellViewCellAreaContextPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("draw-sensitive", CellViewDrawSensitivePropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("fit-model", CellViewFitModelPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("model", CellViewModelPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("orientation", OrientableOrientationPropertyInfo), '("parent", WidgetParentPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

type instance SignalList CellView = CellViewSignalList
type CellViewSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("delete-event", WidgetDeleteEventSignalInfo), '("destroy", WidgetDestroySignalInfo), '("destroy-event", WidgetDestroyEventSignalInfo), '("direction-changed", WidgetDirectionChangedSignalInfo), '("drag-begin", WidgetDragBeginSignalInfo), '("drag-data-delete", WidgetDragDataDeleteSignalInfo), '("drag-data-get", WidgetDragDataGetSignalInfo), '("drag-data-received", WidgetDragDataReceivedSignalInfo), '("drag-drop", WidgetDragDropSignalInfo), '("drag-end", WidgetDragEndSignalInfo), '("drag-failed", WidgetDragFailedSignalInfo), '("drag-leave", WidgetDragLeaveSignalInfo), '("drag-motion", WidgetDragMotionSignalInfo), '("draw", WidgetDrawSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("event", WidgetEventSignalInfo), '("event-after", WidgetEventAfterSignalInfo), '("focus", WidgetFocusSignalInfo), '("focus-in-event", WidgetFocusInEventSignalInfo), '("focus-out-event", WidgetFocusOutEventSignalInfo), '("grab-broken-event", WidgetGrabBrokenEventSignalInfo), '("grab-focus", WidgetGrabFocusSignalInfo), '("grab-notify", WidgetGrabNotifySignalInfo), '("hide", WidgetHideSignalInfo), '("hierarchy-changed", WidgetHierarchyChangedSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("popup-menu", WidgetPopupMenuSignalInfo), '("property-notify-event", WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", WidgetProximityInEventSignalInfo), '("proximity-out-event", WidgetProximityOutEventSignalInfo), '("query-tooltip", WidgetQueryTooltipSignalInfo), '("realize", WidgetRealizeSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

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

foreign import ccall "gtk_cell_view_new" gtk_cell_view_new :: 
    IO (Ptr CellView)


cellViewNew ::
    (MonadIO m) =>
    m CellView
cellViewNew  = liftIO $ do
    result <- gtk_cell_view_new
    checkUnexpectedReturnNULL "gtk_cell_view_new" result
    result' <- (newObject CellView) result
    return result'

-- method CellView::new_with_context
-- method type : Constructor
-- Args : [Arg {argName = "area", argType = TInterface "Gtk" "CellArea", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Gtk" "CellAreaContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "area", argType = TInterface "Gtk" "CellArea", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Gtk" "CellAreaContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "CellView"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_view_new_with_context" gtk_cell_view_new_with_context :: 
    Ptr CellArea ->                         -- area : TInterface "Gtk" "CellArea"
    Ptr CellAreaContext ->                  -- context : TInterface "Gtk" "CellAreaContext"
    IO (Ptr CellView)


cellViewNewWithContext ::
    (MonadIO m, CellAreaK a, CellAreaContextK b) =>
    a ->                                    -- area
    b ->                                    -- context
    m CellView
cellViewNewWithContext area context = liftIO $ do
    let area' = unsafeManagedPtrCastPtr area
    let context' = unsafeManagedPtrCastPtr context
    result <- gtk_cell_view_new_with_context area' context'
    checkUnexpectedReturnNULL "gtk_cell_view_new_with_context" result
    result' <- (newObject CellView) result
    touchManagedPtr area
    touchManagedPtr context
    return result'

-- method CellView::new_with_markup
-- method type : Constructor
-- Args : [Arg {argName = "markup", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "markup", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "CellView"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_view_new_with_markup" gtk_cell_view_new_with_markup :: 
    CString ->                              -- markup : TBasicType TUTF8
    IO (Ptr CellView)


cellViewNewWithMarkup ::
    (MonadIO m) =>
    T.Text ->                               -- markup
    m CellView
cellViewNewWithMarkup markup = liftIO $ do
    markup' <- textToCString markup
    result <- gtk_cell_view_new_with_markup markup'
    checkUnexpectedReturnNULL "gtk_cell_view_new_with_markup" result
    result' <- (newObject CellView) result
    freeMem markup'
    return result'

-- method CellView::new_with_pixbuf
-- method type : Constructor
-- Args : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "CellView"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_view_new_with_pixbuf" gtk_cell_view_new_with_pixbuf :: 
    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
    IO (Ptr CellView)


cellViewNewWithPixbuf ::
    (MonadIO m, GdkPixbuf.PixbufK a) =>
    a ->                                    -- pixbuf
    m CellView
cellViewNewWithPixbuf pixbuf = liftIO $ do
    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
    result <- gtk_cell_view_new_with_pixbuf pixbuf'
    checkUnexpectedReturnNULL "gtk_cell_view_new_with_pixbuf" result
    result' <- (newObject CellView) result
    touchManagedPtr pixbuf
    return result'

-- method CellView::new_with_text
-- method type : Constructor
-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "CellView"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_view_new_with_text" gtk_cell_view_new_with_text :: 
    CString ->                              -- text : TBasicType TUTF8
    IO (Ptr CellView)


cellViewNewWithText ::
    (MonadIO m) =>
    T.Text ->                               -- text
    m CellView
cellViewNewWithText text = liftIO $ do
    text' <- textToCString text
    result <- gtk_cell_view_new_with_text text'
    checkUnexpectedReturnNULL "gtk_cell_view_new_with_text" result
    result' <- (newObject CellView) result
    freeMem text'
    return result'

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

foreign import ccall "gtk_cell_view_get_displayed_row" gtk_cell_view_get_displayed_row :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    IO (Ptr TreePath)


cellViewGetDisplayedRow ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    m TreePath
cellViewGetDisplayedRow _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_cell_view_get_displayed_row _obj'
    checkUnexpectedReturnNULL "gtk_cell_view_get_displayed_row" result
    result' <- (wrapBoxed TreePath) result
    touchManagedPtr _obj
    return result'

-- method CellView::get_draw_sensitive
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", 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_view_get_draw_sensitive" gtk_cell_view_get_draw_sensitive :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    IO CInt


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

-- method CellView::get_fit_model
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", 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_view_get_fit_model" gtk_cell_view_get_fit_model :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    IO CInt


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

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

foreign import ccall "gtk_cell_view_get_model" gtk_cell_view_get_model :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    IO (Ptr TreeModel)


cellViewGetModel ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    m TreeModel
cellViewGetModel _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_cell_view_get_model _obj'
    checkUnexpectedReturnNULL "gtk_cell_view_get_model" result
    result' <- (newObject TreeModel) result
    touchManagedPtr _obj
    return result'

-- method CellView::get_size_of_row
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "requisition", argType = TInterface "Gtk" "Requisition", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", 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_view_get_size_of_row" gtk_cell_view_get_size_of_row :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr Requisition ->                      -- requisition : TInterface "Gtk" "Requisition"
    IO CInt

{-# DEPRECATED cellViewGetSizeOfRow ["(Since version 3.0)","Combo box formerly used this to calculate the","sizes for cellviews, now you can achieve this by either using","the #GtkCellView:fit-model property or by setting the currently","displayed row of the #GtkCellView and using gtk_widget_get_preferred_size()."]#-}
cellViewGetSizeOfRow ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    m (Bool,Requisition)
cellViewGetSizeOfRow _obj path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    requisition <- callocBoxedBytes 8 :: IO (Ptr Requisition)
    result <- gtk_cell_view_get_size_of_row _obj' path' requisition
    let result' = (/= 0) result
    requisition' <- (wrapBoxed Requisition) requisition
    touchManagedPtr _obj
    touchManagedPtr path
    return (result', requisition')

-- method CellView::set_background_color
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", 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_view_set_background_color" gtk_cell_view_set_background_color :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    Ptr Gdk.Color ->                        -- color : TInterface "Gdk" "Color"
    IO ()

{-# DEPRECATED cellViewSetBackgroundColor ["(Since version 3.4)","Use gtk_cell_view_set_background_rgba() instead."]#-}
cellViewSetBackgroundColor ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    Gdk.Color ->                            -- color
    m ()
cellViewSetBackgroundColor _obj color = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let color' = unsafeManagedPtrGetPtr color
    gtk_cell_view_set_background_color _obj' color'
    touchManagedPtr _obj
    touchManagedPtr color
    return ()

-- method CellView::set_background_rgba
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", 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_view_set_background_rgba" gtk_cell_view_set_background_rgba :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    Ptr Gdk.RGBA ->                         -- rgba : TInterface "Gdk" "RGBA"
    IO ()


cellViewSetBackgroundRgba ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    Gdk.RGBA ->                             -- rgba
    m ()
cellViewSetBackgroundRgba _obj rgba = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let rgba' = unsafeManagedPtrGetPtr rgba
    gtk_cell_view_set_background_rgba _obj' rgba'
    touchManagedPtr _obj
    touchManagedPtr rgba
    return ()

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

foreign import ccall "gtk_cell_view_set_displayed_row" gtk_cell_view_set_displayed_row :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    IO ()


cellViewSetDisplayedRow ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    Maybe (TreePath) ->                     -- path
    m ()
cellViewSetDisplayedRow _obj path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybePath <- case path of
        Nothing -> return nullPtr
        Just jPath -> do
            let jPath' = unsafeManagedPtrGetPtr jPath
            return jPath'
    gtk_cell_view_set_displayed_row _obj' maybePath
    touchManagedPtr _obj
    whenJust path touchManagedPtr
    return ()

-- method CellView::set_draw_sensitive
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "draw_sensitive", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "draw_sensitive", 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_view_set_draw_sensitive" gtk_cell_view_set_draw_sensitive :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    CInt ->                                 -- draw_sensitive : TBasicType TBoolean
    IO ()


cellViewSetDrawSensitive ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- draw_sensitive
    m ()
cellViewSetDrawSensitive _obj draw_sensitive = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let draw_sensitive' = (fromIntegral . fromEnum) draw_sensitive
    gtk_cell_view_set_draw_sensitive _obj' draw_sensitive'
    touchManagedPtr _obj
    return ()

-- method CellView::set_fit_model
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fit_model", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CellView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fit_model", 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_view_set_fit_model" gtk_cell_view_set_fit_model :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    CInt ->                                 -- fit_model : TBasicType TBoolean
    IO ()


cellViewSetFitModel ::
    (MonadIO m, CellViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- fit_model
    m ()
cellViewSetFitModel _obj fit_model = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let fit_model' = (fromIntegral . fromEnum) fit_model
    gtk_cell_view_set_fit_model _obj' fit_model'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_cell_view_set_model" gtk_cell_view_set_model :: 
    Ptr CellView ->                         -- _obj : TInterface "Gtk" "CellView"
    Ptr TreeModel ->                        -- model : TInterface "Gtk" "TreeModel"
    IO ()


cellViewSetModel ::
    (MonadIO m, CellViewK a, TreeModelK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- model
    m ()
cellViewSetModel _obj model = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeModel <- case model of
        Nothing -> return nullPtr
        Just jModel -> do
            let jModel' = unsafeManagedPtrCastPtr jModel
            return jModel'
    gtk_cell_view_set_model _obj' maybeModel
    touchManagedPtr _obj
    whenJust model touchManagedPtr
    return ()