    {-# LINE 2 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) Widget CheckMenuItem
    --
    -- Author : Axel Simon
    --
    -- Created: 23 May 2001
    --
    -- Copyright (C) 1999-2005 Axel Simon
    --
    -- 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 menu item with a check box
    --
    module Graphics.UI.Gtk.MenuComboToolbar.CheckMenuItem (
    -- * Detail
    --
    -- | A 'CheckMenuItem' is a menu item that maintains the state of a boolean
    -- value in addition to a 'MenuItem's usual role in activating application
    -- code.
    --
    -- A check box indicating the state of the boolean value is displayed at the
    -- left side of the 'MenuItem'. Activating the 'MenuItem' toggles the value.

    -- * Class Hierarchy
    -- |
    -- @
    -- | 'GObject'
    -- | +----'Object'
    -- | +----'Widget'
    -- | +----'Container'
    -- | +----'Bin'
    -- | +----'Item'
    -- | +----'MenuItem'
    -- | +----CheckMenuItem
    -- | +----'RadioMenuItem'
    -- @

    -- * Types
      CheckMenuItem,
      CheckMenuItemClass,
      castToCheckMenuItem, gTypeCheckMenuItem,
      toCheckMenuItem,

    -- * Constructors
      checkMenuItemNew,
      checkMenuItemNewWithLabel,
      checkMenuItemNewWithMnemonic,

    -- * Methods
      checkMenuItemSetActive,
      checkMenuItemGetActive,
      checkMenuItemEmitToggled,
      checkMenuItemSetInconsistent,
      checkMenuItemGetInconsistent,

      checkMenuItemGetDrawAsRadio,
      checkMenuItemSetDrawAsRadio,

    -- * Attributes
      checkMenuItemActive,
      checkMenuItemInconsistent,

      checkMenuItemDrawAsRadio,

    -- * Signals
      checkMenuItemToggled
      ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.UTFString
    import System.Glib.Attributes
    import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
    import Graphics.UI.Gtk.Signals
    {-# LINE 92 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
    import Graphics.UI.Gtk.Types
    {-# LINE 93 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}

    {-# LINE 95 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}

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

    -- | Creates a new 'CheckMenuItem'.
    --
    checkMenuItemNew :: IO CheckMenuItem
    checkMenuItemNew :: IO CheckMenuItem
    checkMenuItemNew =
      (ForeignPtr CheckMenuItem -> CheckMenuItem,
     FinalizerPtr CheckMenuItem)
    -> IO (Ptr CheckMenuItem) -> IO CheckMenuItem
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr CheckMenuItem -> CheckMenuItem,
     FinalizerPtr CheckMenuItem)
    forall {a}.
    (ForeignPtr CheckMenuItem -> CheckMenuItem, FinalizerPtr a)
    mkCheckMenuItem (IO (Ptr CheckMenuItem) -> IO CheckMenuItem)
    -> IO (Ptr CheckMenuItem) -> IO CheckMenuItem
    forall a b. (a -> b) -> a -> b
    $
      (Ptr Widget -> Ptr CheckMenuItem)
    -> IO (Ptr Widget) -> IO (Ptr CheckMenuItem)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Ptr Widget -> Ptr CheckMenuItem
    forall a b. Ptr a -> Ptr b
    castPtr :: Ptr Widget -> Ptr CheckMenuItem) (IO (Ptr Widget) -> IO (Ptr CheckMenuItem))
    -> IO (Ptr Widget) -> IO (Ptr CheckMenuItem)
    forall a b. (a -> b) -> a -> b
    $
      IO (Ptr Widget)
    gtk_check_menu_item_new
    {-# LINE 106 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}

    -- | Creates a new 'CheckMenuItem' with a label.
    --
    checkMenuItemNewWithLabel :: GlibString string
     => string -- ^ @label@ - the string to use for the label.
     -> IO CheckMenuItem
    checkMenuItemNewWithLabel :: forall string. GlibString string => string -> IO CheckMenuItem
    checkMenuItemNewWithLabel string
    label =
      (ForeignPtr CheckMenuItem -> CheckMenuItem,
     FinalizerPtr CheckMenuItem)
    -> IO (Ptr CheckMenuItem) -> IO CheckMenuItem
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr CheckMenuItem -> CheckMenuItem,
     FinalizerPtr CheckMenuItem)
    forall {a}.
    (ForeignPtr CheckMenuItem -> CheckMenuItem, FinalizerPtr a)
    mkCheckMenuItem (IO (Ptr CheckMenuItem) -> IO CheckMenuItem)
    -> IO (Ptr CheckMenuItem) -> IO CheckMenuItem
    forall a b. (a -> b) -> a -> b
    $
      (Ptr Widget -> Ptr CheckMenuItem)
    -> IO (Ptr Widget) -> IO (Ptr CheckMenuItem)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Ptr Widget -> Ptr CheckMenuItem
    forall a b. Ptr a -> Ptr b
    castPtr :: Ptr Widget -> Ptr CheckMenuItem) (IO (Ptr Widget) -> IO (Ptr CheckMenuItem))
    -> IO (Ptr Widget) -> IO (Ptr CheckMenuItem)
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    label ((CString -> IO (Ptr Widget)) -> IO (Ptr Widget))
    -> (CString -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a b. (a -> b) -> a -> b
    $ \CString
    labelPtr ->
      CString -> IO (Ptr Widget)
    gtk_check_menu_item_new_with_label
    {-# LINE 117 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        labelPtr

    -- | Creates a new 'CheckMenuItem' containing a label. The label will be
    -- created using 'Graphics.UI.Gtk.Display.Label.labelNewWithMnemonic', so
    -- underscores in @label@ indicate the mnemonic for the menu item.
    --
    checkMenuItemNewWithMnemonic :: GlibString string
     => string -- ^ @label@ - The text of the button, with an underscore
                         -- in front of the mnemonic character
     -> IO CheckMenuItem
    checkMenuItemNewWithMnemonic :: forall string. GlibString string => string -> IO CheckMenuItem
    checkMenuItemNewWithMnemonic string
    label =
      (ForeignPtr CheckMenuItem -> CheckMenuItem,
     FinalizerPtr CheckMenuItem)
    -> IO (Ptr CheckMenuItem) -> IO CheckMenuItem
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr CheckMenuItem -> CheckMenuItem,
     FinalizerPtr CheckMenuItem)
    forall {a}.
    (ForeignPtr CheckMenuItem -> CheckMenuItem, FinalizerPtr a)
    mkCheckMenuItem (IO (Ptr CheckMenuItem) -> IO CheckMenuItem)
    -> IO (Ptr CheckMenuItem) -> IO CheckMenuItem
    forall a b. (a -> b) -> a -> b
    $
      (Ptr Widget -> Ptr CheckMenuItem)
    -> IO (Ptr Widget) -> IO (Ptr CheckMenuItem)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Ptr Widget -> Ptr CheckMenuItem
    forall a b. Ptr a -> Ptr b
    castPtr :: Ptr Widget -> Ptr CheckMenuItem) (IO (Ptr Widget) -> IO (Ptr CheckMenuItem))
    -> IO (Ptr Widget) -> IO (Ptr CheckMenuItem)
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    label ((CString -> IO (Ptr Widget)) -> IO (Ptr Widget))
    -> (CString -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a b. (a -> b) -> a -> b
    $ \CString
    labelPtr ->
      CString -> IO (Ptr Widget)
    gtk_check_menu_item_new_with_mnemonic
    {-# LINE 132 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        labelPtr

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

    -- | Sets the active state of the menu item's check box.
    --
    checkMenuItemSetActive :: CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetActive :: forall self. CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetActive self
    self Bool
    isActive =
      (\(CheckMenuItem ForeignPtr CheckMenuItem
    arg1) CInt
    arg2 -> ForeignPtr CheckMenuItem -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CheckMenuItem
    arg1 ((Ptr CheckMenuItem -> IO ()) -> IO ())
    -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CheckMenuItem
    argPtr1 ->Ptr CheckMenuItem -> CInt -> IO ()
    gtk_check_menu_item_set_active Ptr CheckMenuItem
    argPtr1 CInt
    arg2)
    {-# LINE 142 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        (toCheckMenuItem self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    isActive)

    -- | Returns whether the check menu item is active. See
    -- 'checkMenuItemSetActive'.
    --
    checkMenuItemGetActive :: CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetActive :: forall self. CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetActive 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
    $
      (\(CheckMenuItem ForeignPtr CheckMenuItem
    arg1) -> ForeignPtr CheckMenuItem
    -> (Ptr CheckMenuItem -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CheckMenuItem
    arg1 ((Ptr CheckMenuItem -> IO CInt) -> IO CInt)
    -> (Ptr CheckMenuItem -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr CheckMenuItem
    argPtr1 ->Ptr CheckMenuItem -> IO CInt
    gtk_check_menu_item_get_active Ptr CheckMenuItem
    argPtr1)
    {-# LINE 152 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        (toCheckMenuItem self)

    -- | Emits the toggled signal.
    --
    checkMenuItemEmitToggled :: CheckMenuItemClass self => self -> IO ()
    checkMenuItemEmitToggled :: forall self. CheckMenuItemClass self => self -> IO ()
    checkMenuItemEmitToggled self
    self =
      (\(CheckMenuItem ForeignPtr CheckMenuItem
    arg1) -> ForeignPtr CheckMenuItem -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CheckMenuItem
    arg1 ((Ptr CheckMenuItem -> IO ()) -> IO ())
    -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CheckMenuItem
    argPtr1 ->Ptr CheckMenuItem -> IO ()
    gtk_check_menu_item_toggled Ptr CheckMenuItem
    argPtr1)
    {-# LINE 159 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        (toCheckMenuItem self)

    -- | If the user has selected a range of elements (such as some text or
    -- spreadsheet cells) that are affected by a boolean setting, and the current
    -- values in that range are inconsistent, you may want to display the check in
    -- an \"in between\" state. This function turns on \"in between\" display.
    -- Normally you would turn off the inconsistent state again if the user
    -- explicitly selects a setting. This has to be done manually,
    -- 'checkMenuItemSetInconsistent' only affects visual appearance, it doesn't
    -- affect the semantics of the widget.
    --
    checkMenuItemSetInconsistent :: CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetInconsistent :: forall self. CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetInconsistent self
    self Bool
    setting =
      (\(CheckMenuItem ForeignPtr CheckMenuItem
    arg1) CInt
    arg2 -> ForeignPtr CheckMenuItem -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CheckMenuItem
    arg1 ((Ptr CheckMenuItem -> IO ()) -> IO ())
    -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CheckMenuItem
    argPtr1 ->Ptr CheckMenuItem -> CInt -> IO ()
    gtk_check_menu_item_set_inconsistent Ptr CheckMenuItem
    argPtr1 CInt
    arg2)
    {-# LINE 173 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        (toCheckMenuItem self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    setting)

    -- | Query if the menu check is drawn as inconsistent (in between). See
    -- 'checkMenuItemSetInconsistent'.
    --
    checkMenuItemGetInconsistent :: CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetInconsistent :: forall self. CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetInconsistent 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
    $
      (\(CheckMenuItem ForeignPtr CheckMenuItem
    arg1) -> ForeignPtr CheckMenuItem
    -> (Ptr CheckMenuItem -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CheckMenuItem
    arg1 ((Ptr CheckMenuItem -> IO CInt) -> IO CInt)
    -> (Ptr CheckMenuItem -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr CheckMenuItem
    argPtr1 ->Ptr CheckMenuItem -> IO CInt
    gtk_check_menu_item_get_inconsistent Ptr CheckMenuItem
    argPtr1)
    {-# LINE 183 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        (toCheckMenuItem self)

    -- | Sets whether the menu item is drawn like a 'RadioMenuItem'.
    --
    -- * Available since Gtk+ version 2.4
    --
    checkMenuItemSetDrawAsRadio :: CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetDrawAsRadio :: forall self. CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetDrawAsRadio self
    self Bool
    drawAsRadio =
      (\(CheckMenuItem ForeignPtr CheckMenuItem
    arg1) CInt
    arg2 -> ForeignPtr CheckMenuItem -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CheckMenuItem
    arg1 ((Ptr CheckMenuItem -> IO ()) -> IO ())
    -> (Ptr CheckMenuItem -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CheckMenuItem
    argPtr1 ->Ptr CheckMenuItem -> CInt -> IO ()
    gtk_check_menu_item_set_draw_as_radio Ptr CheckMenuItem
    argPtr1 CInt
    arg2)
    {-# LINE 193 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        (toCheckMenuItem self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    drawAsRadio)

    -- | Returns whether the menu item is drawn like a 'RadioMenuItem'.
    --
    -- * Available since Gtk+ version 2.4
    --
    checkMenuItemGetDrawAsRadio :: CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetDrawAsRadio :: forall self. CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetDrawAsRadio 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
    $
      (\(CheckMenuItem ForeignPtr CheckMenuItem
    arg1) -> ForeignPtr CheckMenuItem
    -> (Ptr CheckMenuItem -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CheckMenuItem
    arg1 ((Ptr CheckMenuItem -> IO CInt) -> IO CInt)
    -> (Ptr CheckMenuItem -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr CheckMenuItem
    argPtr1 ->Ptr CheckMenuItem -> IO CInt
    gtk_check_menu_item_get_draw_as_radio Ptr CheckMenuItem
    argPtr1)
    {-# LINE 204 "./Graphics/UI/Gtk/MenuComboToolbar/CheckMenuItem.chs" #-}
        (toCheckMenuItem self)

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

    -- | Whether the menu item is checked.
    --
    -- Default value: @False@
    --
    checkMenuItemActive :: CheckMenuItemClass self => Attr self Bool
    checkMenuItemActive :: forall self. CheckMenuItemClass self => Attr self Bool
    checkMenuItemActive = (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. CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetActive
      self -> Bool -> IO ()
    forall self. CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetActive

    -- | Whether to display an \"inconsistent\" state.
    --
    -- Default value: @False@
    --
    checkMenuItemInconsistent :: CheckMenuItemClass self => Attr self Bool
    checkMenuItemInconsistent :: forall self. CheckMenuItemClass self => Attr self Bool
    checkMenuItemInconsistent = (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. CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetInconsistent
      self -> Bool -> IO ()
    forall self. CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetInconsistent

    -- | Whether the menu item looks like a radio menu item.
    --
    -- Default value: @False@
    --
    checkMenuItemDrawAsRadio :: CheckMenuItemClass self => Attr self Bool
    checkMenuItemDrawAsRadio :: forall self. CheckMenuItemClass self => Attr self Bool
    checkMenuItemDrawAsRadio = (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. CheckMenuItemClass self => self -> IO Bool
    checkMenuItemGetDrawAsRadio
      self -> Bool -> IO ()
    forall self. CheckMenuItemClass self => self -> Bool -> IO ()
    checkMenuItemSetDrawAsRadio

    -- | This signal is emitted when the state of the check box is changed.
    --
    checkMenuItemToggled :: CheckMenuItemClass self => Signal self (IO ())
    checkMenuItemToggled :: forall self. CheckMenuItemClass self => Signal self (IO ())
    checkMenuItemToggled = (Bool -> self -> IO () -> IO (ConnectId self))
    -> Signal self (IO ())
    forall object handler.
    (Bool -> object -> handler -> IO (ConnectId object))
    -> Signal object handler
    Signal (SignalName -> Bool -> self -> IO () -> IO (ConnectId self)
    forall obj.
    GObjectClass obj =>
    SignalName -> Bool -> obj -> IO () -> IO (ConnectId obj)
    connect_NONE__NONE SignalName
    "toggled")

    foreign import ccall unsafe "gtk_check_menu_item_new"
      gtk_check_menu_item_new :: (IO (Ptr Widget))

    foreign import ccall unsafe "gtk_check_menu_item_new_with_label"
      gtk_check_menu_item_new_with_label :: ((Ptr CChar) -> (IO (Ptr Widget)))

    foreign import ccall unsafe "gtk_check_menu_item_new_with_mnemonic"
      gtk_check_menu_item_new_with_mnemonic :: ((Ptr CChar) -> (IO (Ptr Widget)))

    foreign import ccall safe "gtk_check_menu_item_set_active"
      gtk_check_menu_item_set_active :: ((Ptr CheckMenuItem) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_check_menu_item_get_active"
      gtk_check_menu_item_get_active :: ((Ptr CheckMenuItem) -> (IO CInt))

    foreign import ccall safe "gtk_check_menu_item_toggled"
      gtk_check_menu_item_toggled :: ((Ptr CheckMenuItem) -> (IO ()))

    foreign import ccall safe "gtk_check_menu_item_set_inconsistent"
      gtk_check_menu_item_set_inconsistent :: ((Ptr CheckMenuItem) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_check_menu_item_get_inconsistent"
      gtk_check_menu_item_get_inconsistent :: ((Ptr CheckMenuItem) -> (IO CInt))

    foreign import ccall safe "gtk_check_menu_item_set_draw_as_radio"
      gtk_check_menu_item_set_draw_as_radio :: ((Ptr CheckMenuItem) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_check_menu_item_get_draw_as_radio"
      gtk_check_menu_item_get_draw_as_radio :: ((Ptr CheckMenuItem) -> (IO CInt))