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

-- * Exported types
    NumerableIcon(..)                       ,
    NumerableIconK                          ,
    toNumerableIcon                         ,
    noNumerableIcon                         ,


 -- * Methods
-- ** numerableIconGetBackgroundGicon
    numerableIconGetBackgroundGicon         ,


-- ** numerableIconGetBackgroundIconName
    numerableIconGetBackgroundIconName      ,


-- ** numerableIconGetCount
    numerableIconGetCount                   ,


-- ** numerableIconGetLabel
    numerableIconGetLabel                   ,


-- ** numerableIconGetStyleContext
    numerableIconGetStyleContext            ,


-- ** numerableIconNew
    numerableIconNew                        ,


-- ** numerableIconNewWithStyleContext
    numerableIconNewWithStyleContext        ,


-- ** numerableIconSetBackgroundGicon
    numerableIconSetBackgroundGicon         ,


-- ** numerableIconSetBackgroundIconName
    numerableIconSetBackgroundIconName      ,


-- ** numerableIconSetCount
    numerableIconSetCount                   ,


-- ** numerableIconSetLabel
    numerableIconSetLabel                   ,


-- ** numerableIconSetStyleContext
    numerableIconSetStyleContext            ,




 -- * Properties
-- ** BackgroundIcon
    NumerableIconBackgroundIconPropertyInfo ,
    constructNumerableIconBackgroundIcon    ,
    getNumerableIconBackgroundIcon          ,
    setNumerableIconBackgroundIcon          ,


-- ** BackgroundIconName
    NumerableIconBackgroundIconNamePropertyInfo,
    constructNumerableIconBackgroundIconName,
    getNumerableIconBackgroundIconName      ,
    setNumerableIconBackgroundIconName      ,


-- ** Count
    NumerableIconCountPropertyInfo          ,
    constructNumerableIconCount             ,
    getNumerableIconCount                   ,
    setNumerableIconCount                   ,


-- ** Label
    NumerableIconLabelPropertyInfo          ,
    constructNumerableIconLabel             ,
    getNumerableIconLabel                   ,
    setNumerableIconLabel                   ,


-- ** StyleContext
    NumerableIconStyleContextPropertyInfo   ,
    constructNumerableIconStyleContext      ,
    getNumerableIconStyleContext            ,
    setNumerableIconStyleContext            ,




    ) 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
import qualified GI.Gio as Gio

newtype NumerableIcon = NumerableIcon (ForeignPtr NumerableIcon)
foreign import ccall "gtk_numerable_icon_get_type"
    c_gtk_numerable_icon_get_type :: IO GType

type instance ParentTypes NumerableIcon = NumerableIconParentTypes
type NumerableIconParentTypes = '[Gio.EmblemedIcon, GObject.Object, Gio.Icon]

instance GObject NumerableIcon where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_numerable_icon_get_type
    

class GObject o => NumerableIconK o
instance (GObject o, IsDescendantOf NumerableIcon o) => NumerableIconK o

toNumerableIcon :: NumerableIconK o => o -> IO NumerableIcon
toNumerableIcon = unsafeCastTo NumerableIcon

noNumerableIcon :: Maybe NumerableIcon
noNumerableIcon = Nothing

-- VVV Prop "background-icon"
   -- Type: TInterface "Gio" "Icon"
   -- Flags: [PropertyReadable,PropertyWritable]

getNumerableIconBackgroundIcon :: (MonadIO m, NumerableIconK o) => o -> m Gio.Icon
getNumerableIconBackgroundIcon obj = liftIO $ getObjectPropertyObject obj "background-icon" Gio.Icon

setNumerableIconBackgroundIcon :: (MonadIO m, NumerableIconK o, Gio.IconK a) => o -> a -> m ()
setNumerableIconBackgroundIcon obj val = liftIO $ setObjectPropertyObject obj "background-icon" val

constructNumerableIconBackgroundIcon :: (Gio.IconK a) => a -> IO ([Char], GValue)
constructNumerableIconBackgroundIcon val = constructObjectPropertyObject "background-icon" val

data NumerableIconBackgroundIconPropertyInfo
instance AttrInfo NumerableIconBackgroundIconPropertyInfo where
    type AttrAllowedOps NumerableIconBackgroundIconPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint NumerableIconBackgroundIconPropertyInfo = Gio.IconK
    type AttrBaseTypeConstraint NumerableIconBackgroundIconPropertyInfo = NumerableIconK
    type AttrGetType NumerableIconBackgroundIconPropertyInfo = Gio.Icon
    type AttrLabel NumerableIconBackgroundIconPropertyInfo = "NumerableIcon::background-icon"
    attrGet _ = getNumerableIconBackgroundIcon
    attrSet _ = setNumerableIconBackgroundIcon
    attrConstruct _ = constructNumerableIconBackgroundIcon

-- VVV Prop "background-icon-name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getNumerableIconBackgroundIconName :: (MonadIO m, NumerableIconK o) => o -> m T.Text
getNumerableIconBackgroundIconName obj = liftIO $ getObjectPropertyString obj "background-icon-name"

setNumerableIconBackgroundIconName :: (MonadIO m, NumerableIconK o) => o -> T.Text -> m ()
setNumerableIconBackgroundIconName obj val = liftIO $ setObjectPropertyString obj "background-icon-name" val

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

data NumerableIconBackgroundIconNamePropertyInfo
instance AttrInfo NumerableIconBackgroundIconNamePropertyInfo where
    type AttrAllowedOps NumerableIconBackgroundIconNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint NumerableIconBackgroundIconNamePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint NumerableIconBackgroundIconNamePropertyInfo = NumerableIconK
    type AttrGetType NumerableIconBackgroundIconNamePropertyInfo = T.Text
    type AttrLabel NumerableIconBackgroundIconNamePropertyInfo = "NumerableIcon::background-icon-name"
    attrGet _ = getNumerableIconBackgroundIconName
    attrSet _ = setNumerableIconBackgroundIconName
    attrConstruct _ = constructNumerableIconBackgroundIconName

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

getNumerableIconCount :: (MonadIO m, NumerableIconK o) => o -> m Int32
getNumerableIconCount obj = liftIO $ getObjectPropertyCInt obj "count"

setNumerableIconCount :: (MonadIO m, NumerableIconK o) => o -> Int32 -> m ()
setNumerableIconCount obj val = liftIO $ setObjectPropertyCInt obj "count" val

constructNumerableIconCount :: Int32 -> IO ([Char], GValue)
constructNumerableIconCount val = constructObjectPropertyCInt "count" val

data NumerableIconCountPropertyInfo
instance AttrInfo NumerableIconCountPropertyInfo where
    type AttrAllowedOps NumerableIconCountPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint NumerableIconCountPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint NumerableIconCountPropertyInfo = NumerableIconK
    type AttrGetType NumerableIconCountPropertyInfo = Int32
    type AttrLabel NumerableIconCountPropertyInfo = "NumerableIcon::count"
    attrGet _ = getNumerableIconCount
    attrSet _ = setNumerableIconCount
    attrConstruct _ = constructNumerableIconCount

-- VVV Prop "label"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getNumerableIconLabel :: (MonadIO m, NumerableIconK o) => o -> m T.Text
getNumerableIconLabel obj = liftIO $ getObjectPropertyString obj "label"

setNumerableIconLabel :: (MonadIO m, NumerableIconK o) => o -> T.Text -> m ()
setNumerableIconLabel obj val = liftIO $ setObjectPropertyString obj "label" val

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

data NumerableIconLabelPropertyInfo
instance AttrInfo NumerableIconLabelPropertyInfo where
    type AttrAllowedOps NumerableIconLabelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint NumerableIconLabelPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint NumerableIconLabelPropertyInfo = NumerableIconK
    type AttrGetType NumerableIconLabelPropertyInfo = T.Text
    type AttrLabel NumerableIconLabelPropertyInfo = "NumerableIcon::label"
    attrGet _ = getNumerableIconLabel
    attrSet _ = setNumerableIconLabel
    attrConstruct _ = constructNumerableIconLabel

-- VVV Prop "style-context"
   -- Type: TInterface "Gtk" "StyleContext"
   -- Flags: [PropertyReadable,PropertyWritable]

getNumerableIconStyleContext :: (MonadIO m, NumerableIconK o) => o -> m StyleContext
getNumerableIconStyleContext obj = liftIO $ getObjectPropertyObject obj "style-context" StyleContext

setNumerableIconStyleContext :: (MonadIO m, NumerableIconK o, StyleContextK a) => o -> a -> m ()
setNumerableIconStyleContext obj val = liftIO $ setObjectPropertyObject obj "style-context" val

constructNumerableIconStyleContext :: (StyleContextK a) => a -> IO ([Char], GValue)
constructNumerableIconStyleContext val = constructObjectPropertyObject "style-context" val

data NumerableIconStyleContextPropertyInfo
instance AttrInfo NumerableIconStyleContextPropertyInfo where
    type AttrAllowedOps NumerableIconStyleContextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint NumerableIconStyleContextPropertyInfo = StyleContextK
    type AttrBaseTypeConstraint NumerableIconStyleContextPropertyInfo = NumerableIconK
    type AttrGetType NumerableIconStyleContextPropertyInfo = StyleContext
    type AttrLabel NumerableIconStyleContextPropertyInfo = "NumerableIcon::style-context"
    attrGet _ = getNumerableIconStyleContext
    attrSet _ = setNumerableIconStyleContext
    attrConstruct _ = constructNumerableIconStyleContext

type instance AttributeList NumerableIcon = NumerableIconAttributeList
type NumerableIconAttributeList = ('[ '("background-icon", NumerableIconBackgroundIconPropertyInfo), '("background-icon-name", NumerableIconBackgroundIconNamePropertyInfo), '("count", NumerableIconCountPropertyInfo), '("gicon", Gio.EmblemedIconGiconPropertyInfo), '("label", NumerableIconLabelPropertyInfo), '("style-context", NumerableIconStyleContextPropertyInfo)] :: [(Symbol, *)])

type instance SignalList NumerableIcon = NumerableIconSignalList
type NumerableIconSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

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

foreign import ccall "gtk_numerable_icon_get_background_gicon" gtk_numerable_icon_get_background_gicon :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    IO (Ptr Gio.Icon)

{-# DEPRECATED numerableIconGetBackgroundGicon ["(Since version 3.14)"]#-}
numerableIconGetBackgroundGicon ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    m Gio.Icon
numerableIconGetBackgroundGicon _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_numerable_icon_get_background_gicon _obj'
    checkUnexpectedReturnNULL "gtk_numerable_icon_get_background_gicon" result
    result' <- (newObject Gio.Icon) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_numerable_icon_get_background_icon_name" gtk_numerable_icon_get_background_icon_name :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    IO CString

{-# DEPRECATED numerableIconGetBackgroundIconName ["(Since version 3.14)"]#-}
numerableIconGetBackgroundIconName ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    m T.Text
numerableIconGetBackgroundIconName _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_numerable_icon_get_background_icon_name _obj'
    checkUnexpectedReturnNULL "gtk_numerable_icon_get_background_icon_name" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_numerable_icon_get_count" gtk_numerable_icon_get_count :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    IO Int32

{-# DEPRECATED numerableIconGetCount ["(Since version 3.14)"]#-}
numerableIconGetCount ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    m Int32
numerableIconGetCount _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_numerable_icon_get_count _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_numerable_icon_get_label" gtk_numerable_icon_get_label :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    IO CString

{-# DEPRECATED numerableIconGetLabel ["(Since version 3.14)"]#-}
numerableIconGetLabel ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    m T.Text
numerableIconGetLabel _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_numerable_icon_get_label _obj'
    checkUnexpectedReturnNULL "gtk_numerable_icon_get_label" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_numerable_icon_get_style_context" gtk_numerable_icon_get_style_context :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    IO (Ptr StyleContext)

{-# DEPRECATED numerableIconGetStyleContext ["(Since version 3.14)"]#-}
numerableIconGetStyleContext ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    m StyleContext
numerableIconGetStyleContext _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_numerable_icon_get_style_context _obj'
    checkUnexpectedReturnNULL "gtk_numerable_icon_get_style_context" result
    result' <- (newObject StyleContext) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_numerable_icon_set_background_gicon" gtk_numerable_icon_set_background_gicon :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    Ptr Gio.Icon ->                         -- icon : TInterface "Gio" "Icon"
    IO ()

{-# DEPRECATED numerableIconSetBackgroundGicon ["(Since version 3.14)"]#-}
numerableIconSetBackgroundGicon ::
    (MonadIO m, NumerableIconK a, Gio.IconK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- icon
    m ()
numerableIconSetBackgroundGicon _obj icon = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeIcon <- case icon of
        Nothing -> return nullPtr
        Just jIcon -> do
            let jIcon' = unsafeManagedPtrCastPtr jIcon
            return jIcon'
    gtk_numerable_icon_set_background_gicon _obj' maybeIcon
    touchManagedPtr _obj
    whenJust icon touchManagedPtr
    return ()

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

foreign import ccall "gtk_numerable_icon_set_background_icon_name" gtk_numerable_icon_set_background_icon_name :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    CString ->                              -- icon_name : TBasicType TUTF8
    IO ()

{-# DEPRECATED numerableIconSetBackgroundIconName ["(Since version 3.14)"]#-}
numerableIconSetBackgroundIconName ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- icon_name
    m ()
numerableIconSetBackgroundIconName _obj icon_name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeIcon_name <- case icon_name of
        Nothing -> return nullPtr
        Just jIcon_name -> do
            jIcon_name' <- textToCString jIcon_name
            return jIcon_name'
    gtk_numerable_icon_set_background_icon_name _obj' maybeIcon_name
    touchManagedPtr _obj
    freeMem maybeIcon_name
    return ()

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

foreign import ccall "gtk_numerable_icon_set_count" gtk_numerable_icon_set_count :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    Int32 ->                                -- count : TBasicType TInt32
    IO ()

{-# DEPRECATED numerableIconSetCount ["(Since version 3.14)"]#-}
numerableIconSetCount ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- count
    m ()
numerableIconSetCount _obj count = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_numerable_icon_set_count _obj' count
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_numerable_icon_set_label" gtk_numerable_icon_set_label :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    CString ->                              -- label : TBasicType TUTF8
    IO ()

{-# DEPRECATED numerableIconSetLabel ["(Since version 3.14)"]#-}
numerableIconSetLabel ::
    (MonadIO m, NumerableIconK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- label
    m ()
numerableIconSetLabel _obj label = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeLabel <- case label of
        Nothing -> return nullPtr
        Just jLabel -> do
            jLabel' <- textToCString jLabel
            return jLabel'
    gtk_numerable_icon_set_label _obj' maybeLabel
    touchManagedPtr _obj
    freeMem maybeLabel
    return ()

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

foreign import ccall "gtk_numerable_icon_set_style_context" gtk_numerable_icon_set_style_context :: 
    Ptr NumerableIcon ->                    -- _obj : TInterface "Gtk" "NumerableIcon"
    Ptr StyleContext ->                     -- style : TInterface "Gtk" "StyleContext"
    IO ()

{-# DEPRECATED numerableIconSetStyleContext ["(Since version 3.14)"]#-}
numerableIconSetStyleContext ::
    (MonadIO m, NumerableIconK a, StyleContextK b) =>
    a ->                                    -- _obj
    b ->                                    -- style
    m ()
numerableIconSetStyleContext _obj style = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let style' = unsafeManagedPtrCastPtr style
    gtk_numerable_icon_set_style_context _obj' style'
    touchManagedPtr _obj
    touchManagedPtr style
    return ()

-- method NumerableIcon::new
-- method type : MemberFunction
-- Args : [Arg {argName = "base_icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "base_icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gio" "Icon"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_numerable_icon_new" gtk_numerable_icon_new :: 
    Ptr Gio.Icon ->                         -- base_icon : TInterface "Gio" "Icon"
    IO (Ptr Gio.Icon)

{-# DEPRECATED numerableIconNew ["(Since version 3.14)"]#-}
numerableIconNew ::
    (MonadIO m, Gio.IconK a) =>
    a ->                                    -- base_icon
    m Gio.Icon
numerableIconNew base_icon = liftIO $ do
    let base_icon' = unsafeManagedPtrCastPtr base_icon
    result <- gtk_numerable_icon_new base_icon'
    checkUnexpectedReturnNULL "gtk_numerable_icon_new" result
    result' <- (wrapObject Gio.Icon) result
    touchManagedPtr base_icon
    return result'

-- method NumerableIcon::new_with_style_context
-- method type : MemberFunction
-- Args : [Arg {argName = "base_icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Gtk" "StyleContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "base_icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Gtk" "StyleContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gio" "Icon"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_numerable_icon_new_with_style_context" gtk_numerable_icon_new_with_style_context :: 
    Ptr Gio.Icon ->                         -- base_icon : TInterface "Gio" "Icon"
    Ptr StyleContext ->                     -- context : TInterface "Gtk" "StyleContext"
    IO (Ptr Gio.Icon)

{-# DEPRECATED numerableIconNewWithStyleContext ["(Since version 3.14)"]#-}
numerableIconNewWithStyleContext ::
    (MonadIO m, Gio.IconK a, StyleContextK b) =>
    a ->                                    -- base_icon
    b ->                                    -- context
    m Gio.Icon
numerableIconNewWithStyleContext base_icon context = liftIO $ do
    let base_icon' = unsafeManagedPtrCastPtr base_icon
    let context' = unsafeManagedPtrCastPtr context
    result <- gtk_numerable_icon_new_with_style_context base_icon' context'
    checkUnexpectedReturnNULL "gtk_numerable_icon_new_with_style_context" result
    result' <- (wrapObject Gio.Icon) result
    touchManagedPtr base_icon
    touchManagedPtr context
    return result'