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

-- * Exported types
    Paned(..)                               ,
    PanedK                                  ,
    toPaned                                 ,
    noPaned                                 ,


 -- * Methods
-- ** panedAdd1
    panedAdd1                               ,


-- ** panedAdd2
    panedAdd2                               ,


-- ** panedGetChild1
    panedGetChild1                          ,


-- ** panedGetChild2
    panedGetChild2                          ,


-- ** panedGetHandleWindow
    panedGetHandleWindow                    ,


-- ** panedGetPosition
    panedGetPosition                        ,


-- ** panedGetWideHandle
    panedGetWideHandle                      ,


-- ** panedNew
    panedNew                                ,


-- ** panedPack1
    panedPack1                              ,


-- ** panedPack2
    panedPack2                              ,


-- ** panedSetPosition
    panedSetPosition                        ,


-- ** panedSetWideHandle
    panedSetWideHandle                      ,




 -- * Properties
-- ** MaxPosition
    PanedMaxPositionPropertyInfo            ,
    getPanedMaxPosition                     ,


-- ** MinPosition
    PanedMinPositionPropertyInfo            ,
    getPanedMinPosition                     ,


-- ** Position
    PanedPositionPropertyInfo               ,
    constructPanedPosition                  ,
    getPanedPosition                        ,
    setPanedPosition                        ,


-- ** PositionSet
    PanedPositionSetPropertyInfo            ,
    constructPanedPositionSet               ,
    getPanedPositionSet                     ,
    setPanedPositionSet                     ,


-- ** WideHandle
    PanedWideHandlePropertyInfo             ,
    constructPanedWideHandle                ,
    getPanedWideHandle                      ,
    setPanedWideHandle                      ,




 -- * Signals
-- ** AcceptPosition
    PanedAcceptPositionCallback             ,
    PanedAcceptPositionCallbackC            ,
    PanedAcceptPositionSignalInfo           ,
    afterPanedAcceptPosition                ,
    mkPanedAcceptPositionCallback           ,
    noPanedAcceptPositionCallback           ,
    onPanedAcceptPosition                   ,
    panedAcceptPositionCallbackWrapper      ,
    panedAcceptPositionClosure              ,


-- ** CancelPosition
    PanedCancelPositionCallback             ,
    PanedCancelPositionCallbackC            ,
    PanedCancelPositionSignalInfo           ,
    afterPanedCancelPosition                ,
    mkPanedCancelPositionCallback           ,
    noPanedCancelPositionCallback           ,
    onPanedCancelPosition                   ,
    panedCancelPositionCallbackWrapper      ,
    panedCancelPositionClosure              ,


-- ** CycleChildFocus
    PanedCycleChildFocusCallback            ,
    PanedCycleChildFocusCallbackC           ,
    PanedCycleChildFocusSignalInfo          ,
    afterPanedCycleChildFocus               ,
    mkPanedCycleChildFocusCallback          ,
    noPanedCycleChildFocusCallback          ,
    onPanedCycleChildFocus                  ,
    panedCycleChildFocusCallbackWrapper     ,
    panedCycleChildFocusClosure             ,


-- ** CycleHandleFocus
    PanedCycleHandleFocusCallback           ,
    PanedCycleHandleFocusCallbackC          ,
    PanedCycleHandleFocusSignalInfo         ,
    afterPanedCycleHandleFocus              ,
    mkPanedCycleHandleFocusCallback         ,
    noPanedCycleHandleFocusCallback         ,
    onPanedCycleHandleFocus                 ,
    panedCycleHandleFocusCallbackWrapper    ,
    panedCycleHandleFocusClosure            ,


-- ** MoveHandle
    PanedMoveHandleCallback                 ,
    PanedMoveHandleCallbackC                ,
    PanedMoveHandleSignalInfo               ,
    afterPanedMoveHandle                    ,
    mkPanedMoveHandleCallback               ,
    noPanedMoveHandleCallback               ,
    onPanedMoveHandle                       ,
    panedMoveHandleCallbackWrapper          ,
    panedMoveHandleClosure                  ,


-- ** ToggleHandleFocus
    PanedToggleHandleFocusCallback          ,
    PanedToggleHandleFocusCallbackC         ,
    PanedToggleHandleFocusSignalInfo        ,
    afterPanedToggleHandleFocus             ,
    mkPanedToggleHandleFocusCallback        ,
    noPanedToggleHandleFocusCallback        ,
    onPanedToggleHandleFocus                ,
    panedToggleHandleFocusCallbackWrapper   ,
    panedToggleHandleFocusClosure           ,




    ) 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

newtype Paned = Paned (ForeignPtr Paned)
foreign import ccall "gtk_paned_get_type"
    c_gtk_paned_get_type :: IO GType

type instance ParentTypes Paned = PanedParentTypes
type PanedParentTypes = '[Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable, Orientable]

instance GObject Paned where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_paned_get_type
    

class GObject o => PanedK o
instance (GObject o, IsDescendantOf Paned o) => PanedK o

toPaned :: PanedK o => o -> IO Paned
toPaned = unsafeCastTo Paned

noPaned :: Maybe Paned
noPaned = Nothing

-- signal Paned::accept-position
type PanedAcceptPositionCallback =
    IO Bool

noPanedAcceptPositionCallback :: Maybe PanedAcceptPositionCallback
noPanedAcceptPositionCallback = Nothing

type PanedAcceptPositionCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkPanedAcceptPositionCallback :: PanedAcceptPositionCallbackC -> IO (FunPtr PanedAcceptPositionCallbackC)

panedAcceptPositionClosure :: PanedAcceptPositionCallback -> IO Closure
panedAcceptPositionClosure cb = newCClosure =<< mkPanedAcceptPositionCallback wrapped
    where wrapped = panedAcceptPositionCallbackWrapper cb

panedAcceptPositionCallbackWrapper ::
    PanedAcceptPositionCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
panedAcceptPositionCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onPanedAcceptPosition :: (GObject a, MonadIO m) => a -> PanedAcceptPositionCallback -> m SignalHandlerId
onPanedAcceptPosition obj cb = liftIO $ connectPanedAcceptPosition obj cb SignalConnectBefore
afterPanedAcceptPosition :: (GObject a, MonadIO m) => a -> PanedAcceptPositionCallback -> m SignalHandlerId
afterPanedAcceptPosition obj cb = connectPanedAcceptPosition obj cb SignalConnectAfter

connectPanedAcceptPosition :: (GObject a, MonadIO m) =>
                              a -> PanedAcceptPositionCallback -> SignalConnectMode -> m SignalHandlerId
connectPanedAcceptPosition obj cb after = liftIO $ do
    cb' <- mkPanedAcceptPositionCallback (panedAcceptPositionCallbackWrapper cb)
    connectSignalFunPtr obj "accept-position" cb' after

-- signal Paned::cancel-position
type PanedCancelPositionCallback =
    IO Bool

noPanedCancelPositionCallback :: Maybe PanedCancelPositionCallback
noPanedCancelPositionCallback = Nothing

type PanedCancelPositionCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkPanedCancelPositionCallback :: PanedCancelPositionCallbackC -> IO (FunPtr PanedCancelPositionCallbackC)

panedCancelPositionClosure :: PanedCancelPositionCallback -> IO Closure
panedCancelPositionClosure cb = newCClosure =<< mkPanedCancelPositionCallback wrapped
    where wrapped = panedCancelPositionCallbackWrapper cb

panedCancelPositionCallbackWrapper ::
    PanedCancelPositionCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
panedCancelPositionCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onPanedCancelPosition :: (GObject a, MonadIO m) => a -> PanedCancelPositionCallback -> m SignalHandlerId
onPanedCancelPosition obj cb = liftIO $ connectPanedCancelPosition obj cb SignalConnectBefore
afterPanedCancelPosition :: (GObject a, MonadIO m) => a -> PanedCancelPositionCallback -> m SignalHandlerId
afterPanedCancelPosition obj cb = connectPanedCancelPosition obj cb SignalConnectAfter

connectPanedCancelPosition :: (GObject a, MonadIO m) =>
                              a -> PanedCancelPositionCallback -> SignalConnectMode -> m SignalHandlerId
connectPanedCancelPosition obj cb after = liftIO $ do
    cb' <- mkPanedCancelPositionCallback (panedCancelPositionCallbackWrapper cb)
    connectSignalFunPtr obj "cancel-position" cb' after

-- signal Paned::cycle-child-focus
type PanedCycleChildFocusCallback =
    Bool ->
    IO Bool

noPanedCycleChildFocusCallback :: Maybe PanedCycleChildFocusCallback
noPanedCycleChildFocusCallback = Nothing

type PanedCycleChildFocusCallbackC =
    Ptr () ->                               -- object
    CInt ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkPanedCycleChildFocusCallback :: PanedCycleChildFocusCallbackC -> IO (FunPtr PanedCycleChildFocusCallbackC)

panedCycleChildFocusClosure :: PanedCycleChildFocusCallback -> IO Closure
panedCycleChildFocusClosure cb = newCClosure =<< mkPanedCycleChildFocusCallback wrapped
    where wrapped = panedCycleChildFocusCallbackWrapper cb

panedCycleChildFocusCallbackWrapper ::
    PanedCycleChildFocusCallback ->
    Ptr () ->
    CInt ->
    Ptr () ->
    IO CInt
panedCycleChildFocusCallbackWrapper _cb _ reversed _ = do
    let reversed' = (/= 0) reversed
    result <- _cb  reversed'
    let result' = (fromIntegral . fromEnum) result
    return result'

onPanedCycleChildFocus :: (GObject a, MonadIO m) => a -> PanedCycleChildFocusCallback -> m SignalHandlerId
onPanedCycleChildFocus obj cb = liftIO $ connectPanedCycleChildFocus obj cb SignalConnectBefore
afterPanedCycleChildFocus :: (GObject a, MonadIO m) => a -> PanedCycleChildFocusCallback -> m SignalHandlerId
afterPanedCycleChildFocus obj cb = connectPanedCycleChildFocus obj cb SignalConnectAfter

connectPanedCycleChildFocus :: (GObject a, MonadIO m) =>
                               a -> PanedCycleChildFocusCallback -> SignalConnectMode -> m SignalHandlerId
connectPanedCycleChildFocus obj cb after = liftIO $ do
    cb' <- mkPanedCycleChildFocusCallback (panedCycleChildFocusCallbackWrapper cb)
    connectSignalFunPtr obj "cycle-child-focus" cb' after

-- signal Paned::cycle-handle-focus
type PanedCycleHandleFocusCallback =
    Bool ->
    IO Bool

noPanedCycleHandleFocusCallback :: Maybe PanedCycleHandleFocusCallback
noPanedCycleHandleFocusCallback = Nothing

type PanedCycleHandleFocusCallbackC =
    Ptr () ->                               -- object
    CInt ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkPanedCycleHandleFocusCallback :: PanedCycleHandleFocusCallbackC -> IO (FunPtr PanedCycleHandleFocusCallbackC)

panedCycleHandleFocusClosure :: PanedCycleHandleFocusCallback -> IO Closure
panedCycleHandleFocusClosure cb = newCClosure =<< mkPanedCycleHandleFocusCallback wrapped
    where wrapped = panedCycleHandleFocusCallbackWrapper cb

panedCycleHandleFocusCallbackWrapper ::
    PanedCycleHandleFocusCallback ->
    Ptr () ->
    CInt ->
    Ptr () ->
    IO CInt
panedCycleHandleFocusCallbackWrapper _cb _ reversed _ = do
    let reversed' = (/= 0) reversed
    result <- _cb  reversed'
    let result' = (fromIntegral . fromEnum) result
    return result'

onPanedCycleHandleFocus :: (GObject a, MonadIO m) => a -> PanedCycleHandleFocusCallback -> m SignalHandlerId
onPanedCycleHandleFocus obj cb = liftIO $ connectPanedCycleHandleFocus obj cb SignalConnectBefore
afterPanedCycleHandleFocus :: (GObject a, MonadIO m) => a -> PanedCycleHandleFocusCallback -> m SignalHandlerId
afterPanedCycleHandleFocus obj cb = connectPanedCycleHandleFocus obj cb SignalConnectAfter

connectPanedCycleHandleFocus :: (GObject a, MonadIO m) =>
                                a -> PanedCycleHandleFocusCallback -> SignalConnectMode -> m SignalHandlerId
connectPanedCycleHandleFocus obj cb after = liftIO $ do
    cb' <- mkPanedCycleHandleFocusCallback (panedCycleHandleFocusCallbackWrapper cb)
    connectSignalFunPtr obj "cycle-handle-focus" cb' after

-- signal Paned::move-handle
type PanedMoveHandleCallback =
    ScrollType ->
    IO Bool

noPanedMoveHandleCallback :: Maybe PanedMoveHandleCallback
noPanedMoveHandleCallback = Nothing

type PanedMoveHandleCallbackC =
    Ptr () ->                               -- object
    CUInt ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkPanedMoveHandleCallback :: PanedMoveHandleCallbackC -> IO (FunPtr PanedMoveHandleCallbackC)

panedMoveHandleClosure :: PanedMoveHandleCallback -> IO Closure
panedMoveHandleClosure cb = newCClosure =<< mkPanedMoveHandleCallback wrapped
    where wrapped = panedMoveHandleCallbackWrapper cb

panedMoveHandleCallbackWrapper ::
    PanedMoveHandleCallback ->
    Ptr () ->
    CUInt ->
    Ptr () ->
    IO CInt
panedMoveHandleCallbackWrapper _cb _ scroll_type _ = do
    let scroll_type' = (toEnum . fromIntegral) scroll_type
    result <- _cb  scroll_type'
    let result' = (fromIntegral . fromEnum) result
    return result'

onPanedMoveHandle :: (GObject a, MonadIO m) => a -> PanedMoveHandleCallback -> m SignalHandlerId
onPanedMoveHandle obj cb = liftIO $ connectPanedMoveHandle obj cb SignalConnectBefore
afterPanedMoveHandle :: (GObject a, MonadIO m) => a -> PanedMoveHandleCallback -> m SignalHandlerId
afterPanedMoveHandle obj cb = connectPanedMoveHandle obj cb SignalConnectAfter

connectPanedMoveHandle :: (GObject a, MonadIO m) =>
                          a -> PanedMoveHandleCallback -> SignalConnectMode -> m SignalHandlerId
connectPanedMoveHandle obj cb after = liftIO $ do
    cb' <- mkPanedMoveHandleCallback (panedMoveHandleCallbackWrapper cb)
    connectSignalFunPtr obj "move-handle" cb' after

-- signal Paned::toggle-handle-focus
type PanedToggleHandleFocusCallback =
    IO Bool

noPanedToggleHandleFocusCallback :: Maybe PanedToggleHandleFocusCallback
noPanedToggleHandleFocusCallback = Nothing

type PanedToggleHandleFocusCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkPanedToggleHandleFocusCallback :: PanedToggleHandleFocusCallbackC -> IO (FunPtr PanedToggleHandleFocusCallbackC)

panedToggleHandleFocusClosure :: PanedToggleHandleFocusCallback -> IO Closure
panedToggleHandleFocusClosure cb = newCClosure =<< mkPanedToggleHandleFocusCallback wrapped
    where wrapped = panedToggleHandleFocusCallbackWrapper cb

panedToggleHandleFocusCallbackWrapper ::
    PanedToggleHandleFocusCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
panedToggleHandleFocusCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onPanedToggleHandleFocus :: (GObject a, MonadIO m) => a -> PanedToggleHandleFocusCallback -> m SignalHandlerId
onPanedToggleHandleFocus obj cb = liftIO $ connectPanedToggleHandleFocus obj cb SignalConnectBefore
afterPanedToggleHandleFocus :: (GObject a, MonadIO m) => a -> PanedToggleHandleFocusCallback -> m SignalHandlerId
afterPanedToggleHandleFocus obj cb = connectPanedToggleHandleFocus obj cb SignalConnectAfter

connectPanedToggleHandleFocus :: (GObject a, MonadIO m) =>
                                 a -> PanedToggleHandleFocusCallback -> SignalConnectMode -> m SignalHandlerId
connectPanedToggleHandleFocus obj cb after = liftIO $ do
    cb' <- mkPanedToggleHandleFocusCallback (panedToggleHandleFocusCallbackWrapper cb)
    connectSignalFunPtr obj "toggle-handle-focus" cb' after

-- VVV Prop "max-position"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable]

getPanedMaxPosition :: (MonadIO m, PanedK o) => o -> m Int32
getPanedMaxPosition obj = liftIO $ getObjectPropertyCInt obj "max-position"

data PanedMaxPositionPropertyInfo
instance AttrInfo PanedMaxPositionPropertyInfo where
    type AttrAllowedOps PanedMaxPositionPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint PanedMaxPositionPropertyInfo = (~) ()
    type AttrBaseTypeConstraint PanedMaxPositionPropertyInfo = PanedK
    type AttrGetType PanedMaxPositionPropertyInfo = Int32
    type AttrLabel PanedMaxPositionPropertyInfo = "Paned::max-position"
    attrGet _ = getPanedMaxPosition
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "min-position"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable]

getPanedMinPosition :: (MonadIO m, PanedK o) => o -> m Int32
getPanedMinPosition obj = liftIO $ getObjectPropertyCInt obj "min-position"

data PanedMinPositionPropertyInfo
instance AttrInfo PanedMinPositionPropertyInfo where
    type AttrAllowedOps PanedMinPositionPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint PanedMinPositionPropertyInfo = (~) ()
    type AttrBaseTypeConstraint PanedMinPositionPropertyInfo = PanedK
    type AttrGetType PanedMinPositionPropertyInfo = Int32
    type AttrLabel PanedMinPositionPropertyInfo = "Paned::min-position"
    attrGet _ = getPanedMinPosition
    attrSet _ = undefined
    attrConstruct _ = undefined

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

getPanedPosition :: (MonadIO m, PanedK o) => o -> m Int32
getPanedPosition obj = liftIO $ getObjectPropertyCInt obj "position"

setPanedPosition :: (MonadIO m, PanedK o) => o -> Int32 -> m ()
setPanedPosition obj val = liftIO $ setObjectPropertyCInt obj "position" val

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

data PanedPositionPropertyInfo
instance AttrInfo PanedPositionPropertyInfo where
    type AttrAllowedOps PanedPositionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PanedPositionPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint PanedPositionPropertyInfo = PanedK
    type AttrGetType PanedPositionPropertyInfo = Int32
    type AttrLabel PanedPositionPropertyInfo = "Paned::position"
    attrGet _ = getPanedPosition
    attrSet _ = setPanedPosition
    attrConstruct _ = constructPanedPosition

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

getPanedPositionSet :: (MonadIO m, PanedK o) => o -> m Bool
getPanedPositionSet obj = liftIO $ getObjectPropertyBool obj "position-set"

setPanedPositionSet :: (MonadIO m, PanedK o) => o -> Bool -> m ()
setPanedPositionSet obj val = liftIO $ setObjectPropertyBool obj "position-set" val

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

data PanedPositionSetPropertyInfo
instance AttrInfo PanedPositionSetPropertyInfo where
    type AttrAllowedOps PanedPositionSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PanedPositionSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint PanedPositionSetPropertyInfo = PanedK
    type AttrGetType PanedPositionSetPropertyInfo = Bool
    type AttrLabel PanedPositionSetPropertyInfo = "Paned::position-set"
    attrGet _ = getPanedPositionSet
    attrSet _ = setPanedPositionSet
    attrConstruct _ = constructPanedPositionSet

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

getPanedWideHandle :: (MonadIO m, PanedK o) => o -> m Bool
getPanedWideHandle obj = liftIO $ getObjectPropertyBool obj "wide-handle"

setPanedWideHandle :: (MonadIO m, PanedK o) => o -> Bool -> m ()
setPanedWideHandle obj val = liftIO $ setObjectPropertyBool obj "wide-handle" val

constructPanedWideHandle :: Bool -> IO ([Char], GValue)
constructPanedWideHandle val = constructObjectPropertyBool "wide-handle" val

data PanedWideHandlePropertyInfo
instance AttrInfo PanedWideHandlePropertyInfo where
    type AttrAllowedOps PanedWideHandlePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PanedWideHandlePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint PanedWideHandlePropertyInfo = PanedK
    type AttrGetType PanedWideHandlePropertyInfo = Bool
    type AttrLabel PanedWideHandlePropertyInfo = "Paned::wide-handle"
    attrGet _ = getPanedWideHandle
    attrSet _ = setPanedWideHandle
    attrConstruct _ = constructPanedWideHandle

type instance AttributeList Paned = PanedAttributeList
type PanedAttributeList = ('[ '("app-paintable", WidgetAppPaintablePropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("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), '("max-position", PanedMaxPositionPropertyInfo), '("min-position", PanedMinPositionPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("orientation", OrientableOrientationPropertyInfo), '("parent", WidgetParentPropertyInfo), '("position", PanedPositionPropertyInfo), '("position-set", PanedPositionSetPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("wide-handle", PanedWideHandlePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

data PanedAcceptPositionSignalInfo
instance SignalInfo PanedAcceptPositionSignalInfo where
    type HaskellCallbackType PanedAcceptPositionSignalInfo = PanedAcceptPositionCallback
    connectSignal _ = connectPanedAcceptPosition

data PanedCancelPositionSignalInfo
instance SignalInfo PanedCancelPositionSignalInfo where
    type HaskellCallbackType PanedCancelPositionSignalInfo = PanedCancelPositionCallback
    connectSignal _ = connectPanedCancelPosition

data PanedCycleChildFocusSignalInfo
instance SignalInfo PanedCycleChildFocusSignalInfo where
    type HaskellCallbackType PanedCycleChildFocusSignalInfo = PanedCycleChildFocusCallback
    connectSignal _ = connectPanedCycleChildFocus

data PanedCycleHandleFocusSignalInfo
instance SignalInfo PanedCycleHandleFocusSignalInfo where
    type HaskellCallbackType PanedCycleHandleFocusSignalInfo = PanedCycleHandleFocusCallback
    connectSignal _ = connectPanedCycleHandleFocus

data PanedMoveHandleSignalInfo
instance SignalInfo PanedMoveHandleSignalInfo where
    type HaskellCallbackType PanedMoveHandleSignalInfo = PanedMoveHandleCallback
    connectSignal _ = connectPanedMoveHandle

data PanedToggleHandleFocusSignalInfo
instance SignalInfo PanedToggleHandleFocusSignalInfo where
    type HaskellCallbackType PanedToggleHandleFocusSignalInfo = PanedToggleHandleFocusCallback
    connectSignal _ = connectPanedToggleHandleFocus

type instance SignalList Paned = PanedSignalList
type PanedSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("accept-position", PanedAcceptPositionSignalInfo), '("add", ContainerAddSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("cancel-position", PanedCancelPositionSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("cycle-child-focus", PanedCycleChildFocusSignalInfo), '("cycle-handle-focus", PanedCycleHandleFocusSignalInfo), '("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), '("move-handle", PanedMoveHandleSignalInfo), '("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), '("remove", ContainerRemoveSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("set-focus-child", ContainerSetFocusChildSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("toggle-handle-focus", PanedToggleHandleFocusSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method Paned::new
-- method type : Constructor
-- Args : [Arg {argName = "orientation", argType = TInterface "Gtk" "Orientation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "orientation", argType = TInterface "Gtk" "Orientation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Paned"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_paned_new" gtk_paned_new :: 
    CUInt ->                                -- orientation : TInterface "Gtk" "Orientation"
    IO (Ptr Paned)


panedNew ::
    (MonadIO m) =>
    Orientation ->                          -- orientation
    m Paned
panedNew orientation = liftIO $ do
    let orientation' = (fromIntegral . fromEnum) orientation
    result <- gtk_paned_new orientation'
    checkUnexpectedReturnNULL "gtk_paned_new" result
    result' <- (newObject Paned) result
    return result'

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

foreign import ccall "gtk_paned_add1" gtk_paned_add1 :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    Ptr Widget ->                           -- child : TInterface "Gtk" "Widget"
    IO ()


panedAdd1 ::
    (MonadIO m, PanedK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- child
    m ()
panedAdd1 _obj child = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let child' = unsafeManagedPtrCastPtr child
    gtk_paned_add1 _obj' child'
    touchManagedPtr _obj
    touchManagedPtr child
    return ()

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

foreign import ccall "gtk_paned_add2" gtk_paned_add2 :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    Ptr Widget ->                           -- child : TInterface "Gtk" "Widget"
    IO ()


panedAdd2 ::
    (MonadIO m, PanedK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- child
    m ()
panedAdd2 _obj child = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let child' = unsafeManagedPtrCastPtr child
    gtk_paned_add2 _obj' child'
    touchManagedPtr _obj
    touchManagedPtr child
    return ()

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

foreign import ccall "gtk_paned_get_child1" gtk_paned_get_child1 :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    IO (Ptr Widget)


panedGetChild1 ::
    (MonadIO m, PanedK a) =>
    a ->                                    -- _obj
    m Widget
panedGetChild1 _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_paned_get_child1 _obj'
    checkUnexpectedReturnNULL "gtk_paned_get_child1" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_paned_get_child2" gtk_paned_get_child2 :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    IO (Ptr Widget)


panedGetChild2 ::
    (MonadIO m, PanedK a) =>
    a ->                                    -- _obj
    m Widget
panedGetChild2 _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_paned_get_child2 _obj'
    checkUnexpectedReturnNULL "gtk_paned_get_child2" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_paned_get_handle_window" gtk_paned_get_handle_window :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    IO (Ptr Gdk.Window)


panedGetHandleWindow ::
    (MonadIO m, PanedK a) =>
    a ->                                    -- _obj
    m Gdk.Window
panedGetHandleWindow _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_paned_get_handle_window _obj'
    checkUnexpectedReturnNULL "gtk_paned_get_handle_window" result
    result' <- (newObject Gdk.Window) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_paned_get_position" gtk_paned_get_position :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    IO Int32


panedGetPosition ::
    (MonadIO m, PanedK a) =>
    a ->                                    -- _obj
    m Int32
panedGetPosition _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_paned_get_position _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_paned_get_wide_handle" gtk_paned_get_wide_handle :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    IO CInt


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

-- method Paned::pack1
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Paned", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resize", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shrink", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Paned", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resize", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shrink", 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_paned_pack1" gtk_paned_pack1 :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    Ptr Widget ->                           -- child : TInterface "Gtk" "Widget"
    CInt ->                                 -- resize : TBasicType TBoolean
    CInt ->                                 -- shrink : TBasicType TBoolean
    IO ()


panedPack1 ::
    (MonadIO m, PanedK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- child
    Bool ->                                 -- resize
    Bool ->                                 -- shrink
    m ()
panedPack1 _obj child resize shrink = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let child' = unsafeManagedPtrCastPtr child
    let resize' = (fromIntegral . fromEnum) resize
    let shrink' = (fromIntegral . fromEnum) shrink
    gtk_paned_pack1 _obj' child' resize' shrink'
    touchManagedPtr _obj
    touchManagedPtr child
    return ()

-- method Paned::pack2
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Paned", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resize", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shrink", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Paned", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resize", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shrink", 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_paned_pack2" gtk_paned_pack2 :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    Ptr Widget ->                           -- child : TInterface "Gtk" "Widget"
    CInt ->                                 -- resize : TBasicType TBoolean
    CInt ->                                 -- shrink : TBasicType TBoolean
    IO ()


panedPack2 ::
    (MonadIO m, PanedK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- child
    Bool ->                                 -- resize
    Bool ->                                 -- shrink
    m ()
panedPack2 _obj child resize shrink = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let child' = unsafeManagedPtrCastPtr child
    let resize' = (fromIntegral . fromEnum) resize
    let shrink' = (fromIntegral . fromEnum) shrink
    gtk_paned_pack2 _obj' child' resize' shrink'
    touchManagedPtr _obj
    touchManagedPtr child
    return ()

-- method Paned::set_position
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Paned", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Paned", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", 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_paned_set_position" gtk_paned_set_position :: 
    Ptr Paned ->                            -- _obj : TInterface "Gtk" "Paned"
    Int32 ->                                -- position : TBasicType TInt32
    IO ()


panedSetPosition ::
    (MonadIO m, PanedK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- position
    m ()
panedSetPosition _obj position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_paned_set_position _obj' position
    touchManagedPtr _obj
    return ()

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


panedSetWideHandle ::
    (MonadIO m, PanedK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- wide
    m ()
panedSetWideHandle _obj wide = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let wide' = (fromIntegral . fromEnum) wide
    gtk_paned_set_wide_handle _obj' wide'
    touchManagedPtr _obj
    return ()