    {-# LINE 2 "./Graphics/UI/Gtk/MenuComboToolbar/SeparatorToolItem.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) Widget SeparatorToolItem
    --
    -- Author : Duncan Coutts
    --
    -- Created: 7 April 2005
    --
    -- Copyright (C) 2005 Duncan Coutts
    --
    -- This library is free software; you can redistribute it and/or
    -- modify it under the terms of the GNU Lesser General Public
    -- License as published by the Free Software Foundation; either
    -- version 2.1 of the License, or (at your option) any later version.
    --
    -- This library is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    -- Lesser General Public License for more details.
    --
    -- |
    -- Maintainer : gtk2hs-users@lists.sourceforge.net
    -- Stability : provisional
    -- Portability : portable (depends on GHC)
    --
    -- A toolbar item that separates groups of other toolbar items
    --
    -- * Module available since Gtk+ version 2.4
    --
    module Graphics.UI.Gtk.MenuComboToolbar.SeparatorToolItem (
    -- * Detail
    --
    -- | A 'SeparatorToolItem' is a 'ToolItem' that separates groups of other
    -- 'ToolItem's. Depending on the theme, a 'SeparatorToolItem' will often look
    -- like a vertical line on horizontally docked toolbars.
    --
    -- If the property \"expand\" is @True@ and the property \"draw\" is
    -- @False@, a 'SeparatorToolItem' will act as a \"spring\" that forces other
    -- items to the ends of the toolbar.
    --
    -- Use 'separatorToolItemNew' to create a new 'SeparatorToolItem'.

    -- * Class Hierarchy
    -- |
    -- @
    -- | 'GObject'
    -- | +----'Object'
    -- | +----'Widget'
    -- | +----'Container'
    -- | +----'Bin'
    -- | +----'ToolItem'
    -- | +----SeparatorToolItem
    -- @

    -- * Types
      SeparatorToolItem,
      SeparatorToolItemClass,
      castToSeparatorToolItem, gTypeSeparatorToolItem,
      toSeparatorToolItem,

    -- * Constructors
      separatorToolItemNew,

    -- * Methods
      separatorToolItemSetDraw,
      separatorToolItemGetDraw,

    -- * Attributes
      separatorToolItemDraw,

      ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.Attributes
    import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
    import Graphics.UI.Gtk.Types
    {-# LINE 80 "./Graphics/UI/Gtk/MenuComboToolbar/SeparatorToolItem.chs" #-}

    {-# LINE 82 "./Graphics/UI/Gtk/MenuComboToolbar/SeparatorToolItem.chs" #-}

    --------------------
    -- Constructors

    -- | Create a new 'SeparatorToolItem'
    --
    separatorToolItemNew :: IO SeparatorToolItem
    separatorToolItemNew :: IO SeparatorToolItem
    separatorToolItemNew =
      (ForeignPtr SeparatorToolItem -> SeparatorToolItem,
     FinalizerPtr SeparatorToolItem)
    -> IO (Ptr SeparatorToolItem) -> IO SeparatorToolItem
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr SeparatorToolItem -> SeparatorToolItem,
     FinalizerPtr SeparatorToolItem)
    forall {a}.
    (ForeignPtr SeparatorToolItem -> SeparatorToolItem, FinalizerPtr a)
    mkSeparatorToolItem (IO (Ptr SeparatorToolItem) -> IO SeparatorToolItem)
    -> IO (Ptr SeparatorToolItem) -> IO SeparatorToolItem
    forall a b. (a -> b) -> a -> b
    $
      (Ptr ToolItem -> Ptr SeparatorToolItem)
    -> IO (Ptr ToolItem) -> IO (Ptr SeparatorToolItem)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Ptr ToolItem -> Ptr SeparatorToolItem
    forall a b. Ptr a -> Ptr b
    castPtr :: Ptr ToolItem -> Ptr SeparatorToolItem) (IO (Ptr ToolItem) -> IO (Ptr SeparatorToolItem))
    -> IO (Ptr ToolItem) -> IO (Ptr SeparatorToolItem)
    forall a b. (a -> b) -> a -> b
    $
      IO (Ptr ToolItem)
    gtk_separator_tool_item_new
    {-# LINE 94 "./Graphics/UI/Gtk/MenuComboToolbar/SeparatorToolItem.chs" #-}

    --------------------
    -- Methods

    -- | Whether the separator tool item is drawn as a vertical line, or just
    -- blank. Setting this @False@ along with
    -- 'Graphics.UI.Gtk.MenuComboToolbar.ToolItem.toolItemSetExpand' is useful to
    -- create an item that forces following items to the end of the toolbar.
    --
    separatorToolItemSetDraw :: SeparatorToolItemClass self => self -> Bool -> IO ()
    separatorToolItemSetDraw :: forall self. SeparatorToolItemClass self => self -> Bool -> IO ()
    separatorToolItemSetDraw self
    self Bool
    draw =
      (\(SeparatorToolItem ForeignPtr SeparatorToolItem
    arg1) CInt
    arg2 -> ForeignPtr SeparatorToolItem
    -> (Ptr SeparatorToolItem -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr SeparatorToolItem
    arg1 ((Ptr SeparatorToolItem -> IO ()) -> IO ())
    -> (Ptr SeparatorToolItem -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr SeparatorToolItem
    argPtr1 ->Ptr SeparatorToolItem -> CInt -> IO ()
    gtk_separator_tool_item_set_draw Ptr SeparatorToolItem
    argPtr1 CInt
    arg2)
    {-# LINE 106 "./Graphics/UI/Gtk/MenuComboToolbar/SeparatorToolItem.chs" #-}
        (toSeparatorToolItem self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    draw)

    -- | Returns whether the separator tool item is drawn as a line, or just blank.
    -- See 'separatorToolItemSetDraw'.
    --
    separatorToolItemGetDraw :: SeparatorToolItemClass self => self -> IO Bool
    separatorToolItemGetDraw :: forall self. SeparatorToolItemClass self => self -> IO Bool
    separatorToolItemGetDraw self
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(SeparatorToolItem ForeignPtr SeparatorToolItem
    arg1) -> ForeignPtr SeparatorToolItem
    -> (Ptr SeparatorToolItem -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr SeparatorToolItem
    arg1 ((Ptr SeparatorToolItem -> IO CInt) -> IO CInt)
    -> (Ptr SeparatorToolItem -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr SeparatorToolItem
    argPtr1 ->Ptr SeparatorToolItem -> IO CInt
    gtk_separator_tool_item_get_draw Ptr SeparatorToolItem
    argPtr1)
    {-# LINE 116 "./Graphics/UI/Gtk/MenuComboToolbar/SeparatorToolItem.chs" #-}
        (toSeparatorToolItem self)

    --------------------
    -- Attributes

    -- | Whether the separator is drawn, or just blank.
    --
    -- Default value: @True@
    --
    separatorToolItemDraw :: SeparatorToolItemClass self => Attr self Bool
    separatorToolItemDraw :: forall self. SeparatorToolItemClass self => Attr self Bool
    separatorToolItemDraw = (self -> IO Bool)
    -> (self -> Bool -> IO ()) -> ReadWriteAttr self Bool Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Bool
    forall self. SeparatorToolItemClass self => self -> IO Bool
    separatorToolItemGetDraw
      self -> Bool -> IO ()
    forall self. SeparatorToolItemClass self => self -> Bool -> IO ()
    separatorToolItemSetDraw

    foreign import ccall safe "gtk_separator_tool_item_new"
      gtk_separator_tool_item_new :: (IO (Ptr ToolItem))

    foreign import ccall safe "gtk_separator_tool_item_set_draw"
      gtk_separator_tool_item_set_draw :: ((Ptr SeparatorToolItem) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_separator_tool_item_get_draw"
      gtk_separator_tool_item_get_draw :: ((Ptr SeparatorToolItem) -> (IO CInt))