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

'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin' renders text in a cell like 'GI.Gtk.Objects.CellRendererText.CellRendererText' from
which it is derived. But while 'GI.Gtk.Objects.CellRendererText.CellRendererText' offers a simple entry to
edit the text, 'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin' offers a 'GI.Gtk.Objects.SpinButton.SpinButton' widget. Of course,
that means that the text has to be parseable as a floating point number.

The range of the spinbutton is taken from the adjustment property of the
cell renderer, which can be set explicitly or mapped to a column in the
tree model, like all properties of cell renders. 'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin'
also has properties for the 'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin':@/climb-rate/@ and the number
of 'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin':@/digits/@ to display. Other 'GI.Gtk.Objects.SpinButton.SpinButton' properties
can be set in a handler for the 'GI.Gtk.Objects.CellRenderer.CellRenderer'::@/editing-started/@ signal.

The 'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin' cell renderer was added in GTK+ 2.10.
-}

module GI.Gtk.Objects.CellRendererSpin
    ( 

-- * Exported types
    CellRendererSpin(..)                    ,
    IsCellRendererSpin                      ,
    toCellRendererSpin                      ,
    noCellRendererSpin                      ,


 -- * Methods
-- ** new #method:new#
    cellRendererSpinNew                     ,




 -- * Properties
-- ** adjustment #attr:adjustment#
    CellRendererSpinAdjustmentPropertyInfo  ,
    cellRendererSpinAdjustment              ,
    clearCellRendererSpinAdjustment         ,
    constructCellRendererSpinAdjustment     ,
    getCellRendererSpinAdjustment           ,
    setCellRendererSpinAdjustment           ,


-- ** climbRate #attr:climbRate#
    CellRendererSpinClimbRatePropertyInfo   ,
    cellRendererSpinClimbRate               ,
    constructCellRendererSpinClimbRate      ,
    getCellRendererSpinClimbRate            ,
    setCellRendererSpinClimbRate            ,


-- ** digits #attr:digits#
    CellRendererSpinDigitsPropertyInfo      ,
    cellRendererSpinDigits                  ,
    constructCellRendererSpinDigits         ,
    getCellRendererSpinDigits               ,
    setCellRendererSpinDigits               ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gtk.Objects.Adjustment as Gtk.Adjustment
import {-# SOURCE #-} qualified GI.Gtk.Objects.CellRenderer as Gtk.CellRenderer
import {-# SOURCE #-} qualified GI.Gtk.Objects.CellRendererText as Gtk.CellRendererText

newtype CellRendererSpin = CellRendererSpin (ManagedPtr CellRendererSpin)
foreign import ccall "gtk_cell_renderer_spin_get_type"
    c_gtk_cell_renderer_spin_get_type :: IO GType

instance GObject CellRendererSpin where
    gobjectType _ = c_gtk_cell_renderer_spin_get_type
    

class GObject o => IsCellRendererSpin o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError CellRendererSpin a) =>
    IsCellRendererSpin a
#endif
instance IsCellRendererSpin CellRendererSpin
instance Gtk.CellRendererText.IsCellRendererText CellRendererSpin
instance Gtk.CellRenderer.IsCellRenderer CellRendererSpin
instance GObject.Object.IsObject CellRendererSpin

toCellRendererSpin :: IsCellRendererSpin o => o -> IO CellRendererSpin
toCellRendererSpin = unsafeCastTo CellRendererSpin

noCellRendererSpin :: Maybe CellRendererSpin
noCellRendererSpin = Nothing

type family ResolveCellRendererSpinMethod (t :: Symbol) (o :: *) :: * where
    ResolveCellRendererSpinMethod "activate" o = Gtk.CellRenderer.CellRendererActivateMethodInfo
    ResolveCellRendererSpinMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveCellRendererSpinMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveCellRendererSpinMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveCellRendererSpinMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveCellRendererSpinMethod "isActivatable" o = Gtk.CellRenderer.CellRendererIsActivatableMethodInfo
    ResolveCellRendererSpinMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveCellRendererSpinMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveCellRendererSpinMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveCellRendererSpinMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveCellRendererSpinMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveCellRendererSpinMethod "render" o = Gtk.CellRenderer.CellRendererRenderMethodInfo
    ResolveCellRendererSpinMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveCellRendererSpinMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveCellRendererSpinMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveCellRendererSpinMethod "startEditing" o = Gtk.CellRenderer.CellRendererStartEditingMethodInfo
    ResolveCellRendererSpinMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveCellRendererSpinMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveCellRendererSpinMethod "stopEditing" o = Gtk.CellRenderer.CellRendererStopEditingMethodInfo
    ResolveCellRendererSpinMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveCellRendererSpinMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveCellRendererSpinMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveCellRendererSpinMethod "getAlignedArea" o = Gtk.CellRenderer.CellRendererGetAlignedAreaMethodInfo
    ResolveCellRendererSpinMethod "getAlignment" o = Gtk.CellRenderer.CellRendererGetAlignmentMethodInfo
    ResolveCellRendererSpinMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveCellRendererSpinMethod "getFixedSize" o = Gtk.CellRenderer.CellRendererGetFixedSizeMethodInfo
    ResolveCellRendererSpinMethod "getPadding" o = Gtk.CellRenderer.CellRendererGetPaddingMethodInfo
    ResolveCellRendererSpinMethod "getPreferredHeight" o = Gtk.CellRenderer.CellRendererGetPreferredHeightMethodInfo
    ResolveCellRendererSpinMethod "getPreferredHeightForWidth" o = Gtk.CellRenderer.CellRendererGetPreferredHeightForWidthMethodInfo
    ResolveCellRendererSpinMethod "getPreferredSize" o = Gtk.CellRenderer.CellRendererGetPreferredSizeMethodInfo
    ResolveCellRendererSpinMethod "getPreferredWidth" o = Gtk.CellRenderer.CellRendererGetPreferredWidthMethodInfo
    ResolveCellRendererSpinMethod "getPreferredWidthForHeight" o = Gtk.CellRenderer.CellRendererGetPreferredWidthForHeightMethodInfo
    ResolveCellRendererSpinMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveCellRendererSpinMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveCellRendererSpinMethod "getRequestMode" o = Gtk.CellRenderer.CellRendererGetRequestModeMethodInfo
    ResolveCellRendererSpinMethod "getSensitive" o = Gtk.CellRenderer.CellRendererGetSensitiveMethodInfo
    ResolveCellRendererSpinMethod "getSize" o = Gtk.CellRenderer.CellRendererGetSizeMethodInfo
    ResolveCellRendererSpinMethod "getState" o = Gtk.CellRenderer.CellRendererGetStateMethodInfo
    ResolveCellRendererSpinMethod "getVisible" o = Gtk.CellRenderer.CellRendererGetVisibleMethodInfo
    ResolveCellRendererSpinMethod "setAlignment" o = Gtk.CellRenderer.CellRendererSetAlignmentMethodInfo
    ResolveCellRendererSpinMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveCellRendererSpinMethod "setFixedHeightFromFont" o = Gtk.CellRendererText.CellRendererTextSetFixedHeightFromFontMethodInfo
    ResolveCellRendererSpinMethod "setFixedSize" o = Gtk.CellRenderer.CellRendererSetFixedSizeMethodInfo
    ResolveCellRendererSpinMethod "setPadding" o = Gtk.CellRenderer.CellRendererSetPaddingMethodInfo
    ResolveCellRendererSpinMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveCellRendererSpinMethod "setSensitive" o = Gtk.CellRenderer.CellRendererSetSensitiveMethodInfo
    ResolveCellRendererSpinMethod "setVisible" o = Gtk.CellRenderer.CellRendererSetVisibleMethodInfo
    ResolveCellRendererSpinMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveCellRendererSpinMethod t CellRendererSpin, O.MethodInfo info CellRendererSpin p) => O.IsLabelProxy t (CellRendererSpin -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveCellRendererSpinMethod t CellRendererSpin, O.MethodInfo info CellRendererSpin p) => O.IsLabel t (CellRendererSpin -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

-- VVV Prop "adjustment"
   -- Type: TInterface (Name {namespace = "Gtk", name = "Adjustment"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getCellRendererSpinAdjustment :: (MonadIO m, IsCellRendererSpin o) => o -> m (Maybe Gtk.Adjustment.Adjustment)
getCellRendererSpinAdjustment obj = liftIO $ getObjectPropertyObject obj "adjustment" Gtk.Adjustment.Adjustment

setCellRendererSpinAdjustment :: (MonadIO m, IsCellRendererSpin o, Gtk.Adjustment.IsAdjustment a) => o -> a -> m ()
setCellRendererSpinAdjustment obj val = liftIO $ setObjectPropertyObject obj "adjustment" (Just val)

constructCellRendererSpinAdjustment :: (IsCellRendererSpin o, Gtk.Adjustment.IsAdjustment a) => a -> IO (GValueConstruct o)
constructCellRendererSpinAdjustment val = constructObjectPropertyObject "adjustment" (Just val)

clearCellRendererSpinAdjustment :: (MonadIO m, IsCellRendererSpin o) => o -> m ()
clearCellRendererSpinAdjustment obj = liftIO $ setObjectPropertyObject obj "adjustment" (Nothing :: Maybe Gtk.Adjustment.Adjustment)

data CellRendererSpinAdjustmentPropertyInfo
instance AttrInfo CellRendererSpinAdjustmentPropertyInfo where
    type AttrAllowedOps CellRendererSpinAdjustmentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint CellRendererSpinAdjustmentPropertyInfo = Gtk.Adjustment.IsAdjustment
    type AttrBaseTypeConstraint CellRendererSpinAdjustmentPropertyInfo = IsCellRendererSpin
    type AttrGetType CellRendererSpinAdjustmentPropertyInfo = (Maybe Gtk.Adjustment.Adjustment)
    type AttrLabel CellRendererSpinAdjustmentPropertyInfo = "adjustment"
    type AttrOrigin CellRendererSpinAdjustmentPropertyInfo = CellRendererSpin
    attrGet _ = getCellRendererSpinAdjustment
    attrSet _ = setCellRendererSpinAdjustment
    attrConstruct _ = constructCellRendererSpinAdjustment
    attrClear _ = clearCellRendererSpinAdjustment

-- VVV Prop "climb-rate"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getCellRendererSpinClimbRate :: (MonadIO m, IsCellRendererSpin o) => o -> m Double
getCellRendererSpinClimbRate obj = liftIO $ getObjectPropertyDouble obj "climb-rate"

setCellRendererSpinClimbRate :: (MonadIO m, IsCellRendererSpin o) => o -> Double -> m ()
setCellRendererSpinClimbRate obj val = liftIO $ setObjectPropertyDouble obj "climb-rate" val

constructCellRendererSpinClimbRate :: (IsCellRendererSpin o) => Double -> IO (GValueConstruct o)
constructCellRendererSpinClimbRate val = constructObjectPropertyDouble "climb-rate" val

data CellRendererSpinClimbRatePropertyInfo
instance AttrInfo CellRendererSpinClimbRatePropertyInfo where
    type AttrAllowedOps CellRendererSpinClimbRatePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererSpinClimbRatePropertyInfo = (~) Double
    type AttrBaseTypeConstraint CellRendererSpinClimbRatePropertyInfo = IsCellRendererSpin
    type AttrGetType CellRendererSpinClimbRatePropertyInfo = Double
    type AttrLabel CellRendererSpinClimbRatePropertyInfo = "climb-rate"
    type AttrOrigin CellRendererSpinClimbRatePropertyInfo = CellRendererSpin
    attrGet _ = getCellRendererSpinClimbRate
    attrSet _ = setCellRendererSpinClimbRate
    attrConstruct _ = constructCellRendererSpinClimbRate
    attrClear _ = undefined

-- VVV Prop "digits"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getCellRendererSpinDigits :: (MonadIO m, IsCellRendererSpin o) => o -> m Word32
getCellRendererSpinDigits obj = liftIO $ getObjectPropertyUInt32 obj "digits"

setCellRendererSpinDigits :: (MonadIO m, IsCellRendererSpin o) => o -> Word32 -> m ()
setCellRendererSpinDigits obj val = liftIO $ setObjectPropertyUInt32 obj "digits" val

constructCellRendererSpinDigits :: (IsCellRendererSpin o) => Word32 -> IO (GValueConstruct o)
constructCellRendererSpinDigits val = constructObjectPropertyUInt32 "digits" val

data CellRendererSpinDigitsPropertyInfo
instance AttrInfo CellRendererSpinDigitsPropertyInfo where
    type AttrAllowedOps CellRendererSpinDigitsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererSpinDigitsPropertyInfo = (~) Word32
    type AttrBaseTypeConstraint CellRendererSpinDigitsPropertyInfo = IsCellRendererSpin
    type AttrGetType CellRendererSpinDigitsPropertyInfo = Word32
    type AttrLabel CellRendererSpinDigitsPropertyInfo = "digits"
    type AttrOrigin CellRendererSpinDigitsPropertyInfo = CellRendererSpin
    attrGet _ = getCellRendererSpinDigits
    attrSet _ = setCellRendererSpinDigits
    attrConstruct _ = constructCellRendererSpinDigits
    attrClear _ = undefined

instance O.HasAttributeList CellRendererSpin
type instance O.AttributeList CellRendererSpin = CellRendererSpinAttributeList
type CellRendererSpinAttributeList = ('[ '("adjustment", CellRendererSpinAdjustmentPropertyInfo), '("alignSet", Gtk.CellRendererText.CellRendererTextAlignSetPropertyInfo), '("alignment", Gtk.CellRendererText.CellRendererTextAlignmentPropertyInfo), '("attributes", Gtk.CellRendererText.CellRendererTextAttributesPropertyInfo), '("background", Gtk.CellRendererText.CellRendererTextBackgroundPropertyInfo), '("backgroundGdk", Gtk.CellRendererText.CellRendererTextBackgroundGdkPropertyInfo), '("backgroundRgba", Gtk.CellRendererText.CellRendererTextBackgroundRgbaPropertyInfo), '("backgroundSet", Gtk.CellRendererText.CellRendererTextBackgroundSetPropertyInfo), '("cellBackground", Gtk.CellRenderer.CellRendererCellBackgroundPropertyInfo), '("cellBackgroundGdk", Gtk.CellRenderer.CellRendererCellBackgroundGdkPropertyInfo), '("cellBackgroundRgba", Gtk.CellRenderer.CellRendererCellBackgroundRgbaPropertyInfo), '("cellBackgroundSet", Gtk.CellRenderer.CellRendererCellBackgroundSetPropertyInfo), '("climbRate", CellRendererSpinClimbRatePropertyInfo), '("digits", CellRendererSpinDigitsPropertyInfo), '("editable", Gtk.CellRendererText.CellRendererTextEditablePropertyInfo), '("editableSet", Gtk.CellRendererText.CellRendererTextEditableSetPropertyInfo), '("editing", Gtk.CellRenderer.CellRendererEditingPropertyInfo), '("ellipsize", Gtk.CellRendererText.CellRendererTextEllipsizePropertyInfo), '("ellipsizeSet", Gtk.CellRendererText.CellRendererTextEllipsizeSetPropertyInfo), '("family", Gtk.CellRendererText.CellRendererTextFamilyPropertyInfo), '("familySet", Gtk.CellRendererText.CellRendererTextFamilySetPropertyInfo), '("font", Gtk.CellRendererText.CellRendererTextFontPropertyInfo), '("fontDesc", Gtk.CellRendererText.CellRendererTextFontDescPropertyInfo), '("foreground", Gtk.CellRendererText.CellRendererTextForegroundPropertyInfo), '("foregroundGdk", Gtk.CellRendererText.CellRendererTextForegroundGdkPropertyInfo), '("foregroundRgba", Gtk.CellRendererText.CellRendererTextForegroundRgbaPropertyInfo), '("foregroundSet", Gtk.CellRendererText.CellRendererTextForegroundSetPropertyInfo), '("height", Gtk.CellRenderer.CellRendererHeightPropertyInfo), '("isExpanded", Gtk.CellRenderer.CellRendererIsExpandedPropertyInfo), '("isExpander", Gtk.CellRenderer.CellRendererIsExpanderPropertyInfo), '("language", Gtk.CellRendererText.CellRendererTextLanguagePropertyInfo), '("languageSet", Gtk.CellRendererText.CellRendererTextLanguageSetPropertyInfo), '("markup", Gtk.CellRendererText.CellRendererTextMarkupPropertyInfo), '("maxWidthChars", Gtk.CellRendererText.CellRendererTextMaxWidthCharsPropertyInfo), '("mode", Gtk.CellRenderer.CellRendererModePropertyInfo), '("placeholderText", Gtk.CellRendererText.CellRendererTextPlaceholderTextPropertyInfo), '("rise", Gtk.CellRendererText.CellRendererTextRisePropertyInfo), '("riseSet", Gtk.CellRendererText.CellRendererTextRiseSetPropertyInfo), '("scale", Gtk.CellRendererText.CellRendererTextScalePropertyInfo), '("scaleSet", Gtk.CellRendererText.CellRendererTextScaleSetPropertyInfo), '("sensitive", Gtk.CellRenderer.CellRendererSensitivePropertyInfo), '("singleParagraphMode", Gtk.CellRendererText.CellRendererTextSingleParagraphModePropertyInfo), '("size", Gtk.CellRendererText.CellRendererTextSizePropertyInfo), '("sizePoints", Gtk.CellRendererText.CellRendererTextSizePointsPropertyInfo), '("sizeSet", Gtk.CellRendererText.CellRendererTextSizeSetPropertyInfo), '("stretch", Gtk.CellRendererText.CellRendererTextStretchPropertyInfo), '("stretchSet", Gtk.CellRendererText.CellRendererTextStretchSetPropertyInfo), '("strikethrough", Gtk.CellRendererText.CellRendererTextStrikethroughPropertyInfo), '("strikethroughSet", Gtk.CellRendererText.CellRendererTextStrikethroughSetPropertyInfo), '("style", Gtk.CellRendererText.CellRendererTextStylePropertyInfo), '("styleSet", Gtk.CellRendererText.CellRendererTextStyleSetPropertyInfo), '("text", Gtk.CellRendererText.CellRendererTextTextPropertyInfo), '("underline", Gtk.CellRendererText.CellRendererTextUnderlinePropertyInfo), '("underlineSet", Gtk.CellRendererText.CellRendererTextUnderlineSetPropertyInfo), '("variant", Gtk.CellRendererText.CellRendererTextVariantPropertyInfo), '("variantSet", Gtk.CellRendererText.CellRendererTextVariantSetPropertyInfo), '("visible", Gtk.CellRenderer.CellRendererVisiblePropertyInfo), '("weight", Gtk.CellRendererText.CellRendererTextWeightPropertyInfo), '("weightSet", Gtk.CellRendererText.CellRendererTextWeightSetPropertyInfo), '("width", Gtk.CellRenderer.CellRendererWidthPropertyInfo), '("widthChars", Gtk.CellRendererText.CellRendererTextWidthCharsPropertyInfo), '("wrapMode", Gtk.CellRendererText.CellRendererTextWrapModePropertyInfo), '("wrapWidth", Gtk.CellRendererText.CellRendererTextWrapWidthPropertyInfo), '("xalign", Gtk.CellRenderer.CellRendererXalignPropertyInfo), '("xpad", Gtk.CellRenderer.CellRendererXpadPropertyInfo), '("yalign", Gtk.CellRenderer.CellRendererYalignPropertyInfo), '("ypad", Gtk.CellRenderer.CellRendererYpadPropertyInfo)] :: [(Symbol, *)])

cellRendererSpinAdjustment :: AttrLabelProxy "adjustment"
cellRendererSpinAdjustment = AttrLabelProxy

cellRendererSpinClimbRate :: AttrLabelProxy "climbRate"
cellRendererSpinClimbRate = AttrLabelProxy

cellRendererSpinDigits :: AttrLabelProxy "digits"
cellRendererSpinDigits = AttrLabelProxy

type instance O.SignalList CellRendererSpin = CellRendererSpinSignalList
type CellRendererSpinSignalList = ('[ '("edited", Gtk.CellRendererText.CellRendererTextEditedSignalInfo), '("editingCanceled", Gtk.CellRenderer.CellRendererEditingCanceledSignalInfo), '("editingStarted", Gtk.CellRenderer.CellRendererEditingStartedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method CellRendererSpin::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "CellRendererSpin"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_cell_renderer_spin_new" gtk_cell_renderer_spin_new :: 
    IO (Ptr CellRendererSpin)

{- |
Creates a new 'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin'.

@since 2.10
-}
cellRendererSpinNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m CellRendererSpin
    {- ^ __Returns:__ a new 'GI.Gtk.Objects.CellRendererSpin.CellRendererSpin' -}
cellRendererSpinNew  = liftIO $ do
    result <- gtk_cell_renderer_spin_new
    checkUnexpectedReturnNULL "cellRendererSpinNew" result
    result' <- (newObject CellRendererSpin) result
    return result'