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

-- * Exported types
    CellRendererProgress(..)                ,
    CellRendererProgressK                   ,
    toCellRendererProgress                  ,
    noCellRendererProgress                  ,


 -- * Methods
-- ** cellRendererProgressNew
    cellRendererProgressNew                 ,




 -- * Properties
-- ** Inverted
    CellRendererProgressInvertedPropertyInfo,
    constructCellRendererProgressInverted   ,
    getCellRendererProgressInverted         ,
    setCellRendererProgressInverted         ,


-- ** Pulse
    CellRendererProgressPulsePropertyInfo   ,
    constructCellRendererProgressPulse      ,
    getCellRendererProgressPulse            ,
    setCellRendererProgressPulse            ,


-- ** Text
    CellRendererProgressTextPropertyInfo    ,
    constructCellRendererProgressText       ,
    getCellRendererProgressText             ,
    setCellRendererProgressText             ,


-- ** TextXalign
    CellRendererProgressTextXalignPropertyInfo,
    constructCellRendererProgressTextXalign ,
    getCellRendererProgressTextXalign       ,
    setCellRendererProgressTextXalign       ,


-- ** TextYalign
    CellRendererProgressTextYalignPropertyInfo,
    constructCellRendererProgressTextYalign ,
    getCellRendererProgressTextYalign       ,
    setCellRendererProgressTextYalign       ,


-- ** Value
    CellRendererProgressValuePropertyInfo   ,
    constructCellRendererProgressValue      ,
    getCellRendererProgressValue            ,
    setCellRendererProgressValue            ,




    ) where

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

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

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

newtype CellRendererProgress = CellRendererProgress (ForeignPtr CellRendererProgress)
foreign import ccall "gtk_cell_renderer_progress_get_type"
    c_gtk_cell_renderer_progress_get_type :: IO GType

type instance ParentTypes CellRendererProgress = CellRendererProgressParentTypes
type CellRendererProgressParentTypes = '[CellRenderer, GObject.Object, Orientable]

instance GObject CellRendererProgress where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_cell_renderer_progress_get_type
    

class GObject o => CellRendererProgressK o
instance (GObject o, IsDescendantOf CellRendererProgress o) => CellRendererProgressK o

toCellRendererProgress :: CellRendererProgressK o => o -> IO CellRendererProgress
toCellRendererProgress = unsafeCastTo CellRendererProgress

noCellRendererProgress :: Maybe CellRendererProgress
noCellRendererProgress = Nothing

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

getCellRendererProgressInverted :: (MonadIO m, CellRendererProgressK o) => o -> m Bool
getCellRendererProgressInverted obj = liftIO $ getObjectPropertyBool obj "inverted"

setCellRendererProgressInverted :: (MonadIO m, CellRendererProgressK o) => o -> Bool -> m ()
setCellRendererProgressInverted obj val = liftIO $ setObjectPropertyBool obj "inverted" val

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

data CellRendererProgressInvertedPropertyInfo
instance AttrInfo CellRendererProgressInvertedPropertyInfo where
    type AttrAllowedOps CellRendererProgressInvertedPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererProgressInvertedPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint CellRendererProgressInvertedPropertyInfo = CellRendererProgressK
    type AttrGetType CellRendererProgressInvertedPropertyInfo = Bool
    type AttrLabel CellRendererProgressInvertedPropertyInfo = "CellRendererProgress::inverted"
    attrGet _ = getCellRendererProgressInverted
    attrSet _ = setCellRendererProgressInverted
    attrConstruct _ = constructCellRendererProgressInverted

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

getCellRendererProgressPulse :: (MonadIO m, CellRendererProgressK o) => o -> m Int32
getCellRendererProgressPulse obj = liftIO $ getObjectPropertyCInt obj "pulse"

setCellRendererProgressPulse :: (MonadIO m, CellRendererProgressK o) => o -> Int32 -> m ()
setCellRendererProgressPulse obj val = liftIO $ setObjectPropertyCInt obj "pulse" val

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

data CellRendererProgressPulsePropertyInfo
instance AttrInfo CellRendererProgressPulsePropertyInfo where
    type AttrAllowedOps CellRendererProgressPulsePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererProgressPulsePropertyInfo = (~) Int32
    type AttrBaseTypeConstraint CellRendererProgressPulsePropertyInfo = CellRendererProgressK
    type AttrGetType CellRendererProgressPulsePropertyInfo = Int32
    type AttrLabel CellRendererProgressPulsePropertyInfo = "CellRendererProgress::pulse"
    attrGet _ = getCellRendererProgressPulse
    attrSet _ = setCellRendererProgressPulse
    attrConstruct _ = constructCellRendererProgressPulse

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

getCellRendererProgressText :: (MonadIO m, CellRendererProgressK o) => o -> m T.Text
getCellRendererProgressText obj = liftIO $ getObjectPropertyString obj "text"

setCellRendererProgressText :: (MonadIO m, CellRendererProgressK o) => o -> T.Text -> m ()
setCellRendererProgressText obj val = liftIO $ setObjectPropertyString obj "text" val

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

data CellRendererProgressTextPropertyInfo
instance AttrInfo CellRendererProgressTextPropertyInfo where
    type AttrAllowedOps CellRendererProgressTextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererProgressTextPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint CellRendererProgressTextPropertyInfo = CellRendererProgressK
    type AttrGetType CellRendererProgressTextPropertyInfo = T.Text
    type AttrLabel CellRendererProgressTextPropertyInfo = "CellRendererProgress::text"
    attrGet _ = getCellRendererProgressText
    attrSet _ = setCellRendererProgressText
    attrConstruct _ = constructCellRendererProgressText

-- VVV Prop "text-xalign"
   -- Type: TBasicType TFloat
   -- Flags: [PropertyReadable,PropertyWritable]

getCellRendererProgressTextXalign :: (MonadIO m, CellRendererProgressK o) => o -> m Float
getCellRendererProgressTextXalign obj = liftIO $ getObjectPropertyFloat obj "text-xalign"

setCellRendererProgressTextXalign :: (MonadIO m, CellRendererProgressK o) => o -> Float -> m ()
setCellRendererProgressTextXalign obj val = liftIO $ setObjectPropertyFloat obj "text-xalign" val

constructCellRendererProgressTextXalign :: Float -> IO ([Char], GValue)
constructCellRendererProgressTextXalign val = constructObjectPropertyFloat "text-xalign" val

data CellRendererProgressTextXalignPropertyInfo
instance AttrInfo CellRendererProgressTextXalignPropertyInfo where
    type AttrAllowedOps CellRendererProgressTextXalignPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererProgressTextXalignPropertyInfo = (~) Float
    type AttrBaseTypeConstraint CellRendererProgressTextXalignPropertyInfo = CellRendererProgressK
    type AttrGetType CellRendererProgressTextXalignPropertyInfo = Float
    type AttrLabel CellRendererProgressTextXalignPropertyInfo = "CellRendererProgress::text-xalign"
    attrGet _ = getCellRendererProgressTextXalign
    attrSet _ = setCellRendererProgressTextXalign
    attrConstruct _ = constructCellRendererProgressTextXalign

-- VVV Prop "text-yalign"
   -- Type: TBasicType TFloat
   -- Flags: [PropertyReadable,PropertyWritable]

getCellRendererProgressTextYalign :: (MonadIO m, CellRendererProgressK o) => o -> m Float
getCellRendererProgressTextYalign obj = liftIO $ getObjectPropertyFloat obj "text-yalign"

setCellRendererProgressTextYalign :: (MonadIO m, CellRendererProgressK o) => o -> Float -> m ()
setCellRendererProgressTextYalign obj val = liftIO $ setObjectPropertyFloat obj "text-yalign" val

constructCellRendererProgressTextYalign :: Float -> IO ([Char], GValue)
constructCellRendererProgressTextYalign val = constructObjectPropertyFloat "text-yalign" val

data CellRendererProgressTextYalignPropertyInfo
instance AttrInfo CellRendererProgressTextYalignPropertyInfo where
    type AttrAllowedOps CellRendererProgressTextYalignPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererProgressTextYalignPropertyInfo = (~) Float
    type AttrBaseTypeConstraint CellRendererProgressTextYalignPropertyInfo = CellRendererProgressK
    type AttrGetType CellRendererProgressTextYalignPropertyInfo = Float
    type AttrLabel CellRendererProgressTextYalignPropertyInfo = "CellRendererProgress::text-yalign"
    attrGet _ = getCellRendererProgressTextYalign
    attrSet _ = setCellRendererProgressTextYalign
    attrConstruct _ = constructCellRendererProgressTextYalign

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

getCellRendererProgressValue :: (MonadIO m, CellRendererProgressK o) => o -> m Int32
getCellRendererProgressValue obj = liftIO $ getObjectPropertyCInt obj "value"

setCellRendererProgressValue :: (MonadIO m, CellRendererProgressK o) => o -> Int32 -> m ()
setCellRendererProgressValue obj val = liftIO $ setObjectPropertyCInt obj "value" val

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

data CellRendererProgressValuePropertyInfo
instance AttrInfo CellRendererProgressValuePropertyInfo where
    type AttrAllowedOps CellRendererProgressValuePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint CellRendererProgressValuePropertyInfo = (~) Int32
    type AttrBaseTypeConstraint CellRendererProgressValuePropertyInfo = CellRendererProgressK
    type AttrGetType CellRendererProgressValuePropertyInfo = Int32
    type AttrLabel CellRendererProgressValuePropertyInfo = "CellRendererProgress::value"
    attrGet _ = getCellRendererProgressValue
    attrSet _ = setCellRendererProgressValue
    attrConstruct _ = constructCellRendererProgressValue

type instance AttributeList CellRendererProgress = CellRendererProgressAttributeList
type CellRendererProgressAttributeList = ('[ '("cell-background", CellRendererCellBackgroundPropertyInfo), '("cell-background-gdk", CellRendererCellBackgroundGdkPropertyInfo), '("cell-background-rgba", CellRendererCellBackgroundRgbaPropertyInfo), '("cell-background-set", CellRendererCellBackgroundSetPropertyInfo), '("editing", CellRendererEditingPropertyInfo), '("height", CellRendererHeightPropertyInfo), '("inverted", CellRendererProgressInvertedPropertyInfo), '("is-expanded", CellRendererIsExpandedPropertyInfo), '("is-expander", CellRendererIsExpanderPropertyInfo), '("mode", CellRendererModePropertyInfo), '("orientation", OrientableOrientationPropertyInfo), '("pulse", CellRendererProgressPulsePropertyInfo), '("sensitive", CellRendererSensitivePropertyInfo), '("text", CellRendererProgressTextPropertyInfo), '("text-xalign", CellRendererProgressTextXalignPropertyInfo), '("text-yalign", CellRendererProgressTextYalignPropertyInfo), '("value", CellRendererProgressValuePropertyInfo), '("visible", CellRendererVisiblePropertyInfo), '("width", CellRendererWidthPropertyInfo), '("xalign", CellRendererXalignPropertyInfo), '("xpad", CellRendererXpadPropertyInfo), '("yalign", CellRendererYalignPropertyInfo), '("ypad", CellRendererYpadPropertyInfo)] :: [(Symbol, *)])

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

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

foreign import ccall "gtk_cell_renderer_progress_new" gtk_cell_renderer_progress_new :: 
    IO (Ptr CellRendererProgress)


cellRendererProgressNew ::
    (MonadIO m) =>
    m CellRendererProgress
cellRendererProgressNew  = liftIO $ do
    result <- gtk_cell_renderer_progress_new
    checkUnexpectedReturnNULL "gtk_cell_renderer_progress_new" result
    result' <- (newObject CellRendererProgress) result
    return result'