    {-# LINE 2 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) Widget Tooltip
    --
    -- Author : Andy Stewart
    --
    -- Created: 24 Mar 2010
    --
    -- Copyright (C) 2010 Andy Stewart
    --
    -- 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)
    --
    -- Add tips to your widgets
    --
    -- * Module available since Gtk+ version 2.12
    --
    module Graphics.UI.Gtk.Misc.Tooltip (

    -- * Detail
    --
    -- | 'Tooltip' belongs to the new tooltips API that was introduced in Gtk+
    -- 2.12 and which deprecates the old 'Tooltips' API.
    --
    -- Basic tooltips can be realized simply by using 'widgetTooltipText' or
    -- 'widgetTooltipMarkup' without any explicit tooltip object.
    --
    -- When you need a tooltip with a little more fancy contents, like adding an
    -- image, or you want the tooltip to have different contents per 'TreeView' row
    -- or cell, you will have to do a little more work:
    --
    -- * Set the 'hasTooltip' property to 'True', this will make GTK+ monitor the widget for motion and
    -- related events which are needed to determine when and where to show a tooltip.
    --
    -- * Connect to the 'queryTooltip' signal. This signal will be emitted when a tooltip is supposed to
    -- be shown. One of the arguments passed to the signal handler is a 'Tooltip' object. This is the
    -- object that we are about to display as a tooltip, and can be manipulated in your callback using
    -- functions like 'tooltipSetIcon'. There are functions for setting the tooltip's markup,
    -- setting an image from a stock icon, or even putting in a custom widget.
    --
    -- * Return 'True' from your query-tooltip handler. This causes the tooltip to be show. If you return
    -- 'False', it will not be shown.
    --
    -- In the probably rare case where you want to have even more control over the tooltip that is about to
    -- be shown, you can set your own 'Window' which will be used as tooltip window. This works as
    -- follows:
    --
    -- * Set 'hasTooltip' and connect to 'queryTooltip' as before.
    --
    -- * Use 'widgetSetTooltipWindow' to set a 'Window' created by you as tooltip window.
    --
    -- * In the 'queryTooltip' callback you can access your window using 'widgetGetTooltipWindow'
    -- and manipulate as you wish. The semantics of the return value are exactly as before, return 'True'
    -- to show the window, 'False' to not show it.

    -- * Class Hierarchy
    --
    -- |
    -- @
    -- | 'GObject'
    -- | +----Tooltip
    -- @

    -- * Types
      Tooltip,
      TooltipClass,
      castToTooltip,
      toTooltip,

    -- * Methods
      tooltipSetMarkup,
      tooltipSetText,
      tooltipSetIcon,
      tooltipSetIconFromStock,

      tooltipSetIconFromIconName,

      tooltipSetCustom,
      tooltipTriggerTooltipQuery,
      tooltipSetTipArea,

      tooltipSetIconFromGIcon,

      ) where

    import Data.Maybe (fromMaybe)

    import System.Glib.FFI
    import System.Glib.UTFString
    import Graphics.UI.Gtk.General.Structs (IconSize(..), Rectangle)
    import Graphics.UI.Gtk.Types
    {-# LINE 110 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}

    import System.GIO.Types
    {-# LINE 112 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}

    {-# LINE 115 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}

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

    -- | Sets the text of the tooltip to be @markup@, which is marked up with the
    -- Pango text markup language. If @markup@ is 'Nothing', the label will be hidden.
    --
    tooltipSetMarkup :: (TooltipClass self, GlibString markup) => self
     -> Maybe markup -- ^ @markup@ - a markup string (see Pango markup format) or 'Nothing'
     -> IO ()
    tooltipSetMarkup :: forall self markup.
    (TooltipClass self, GlibString markup) =>
    self -> Maybe markup -> IO ()
    tooltipSetMarkup self
    self Maybe markup
    markup =
      (markup -> (Ptr CChar -> IO ()) -> IO ())
    -> Maybe markup -> (Ptr CChar -> IO ()) -> IO ()
    forall a b c.
    (a -> (Ptr b -> IO c) -> IO c)
    -> Maybe a -> (Ptr b -> IO c) -> IO c
    maybeWith markup -> (Ptr CChar -> IO ()) -> IO ()
    forall a. markup -> (Ptr CChar -> IO a) -> IO a
    forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
    withUTFString Maybe markup
    markup ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CChar
    markupPtr ->
      (\(Tooltip ForeignPtr Tooltip
    arg1) Ptr CChar
    arg2 -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->Ptr Tooltip -> Ptr CChar -> IO ()
    gtk_tooltip_set_markup Ptr Tooltip
    argPtr1 Ptr CChar
    arg2)
    {-# LINE 128 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip self)
        Ptr CChar
    markupPtr

    -- | Sets the text of the tooltip to be @text@. If @text@ is 'Nothing'
    -- the label will be hidden. See also 'tooltipSetMarkup'.
    --
    tooltipSetText :: (TooltipClass self, GlibString string) => self
     -> Maybe string -- ^ @text@ - a text string or 'Nothing'
     -> IO ()
    tooltipSetText :: forall self markup.
    (TooltipClass self, GlibString markup) =>
    self -> Maybe markup -> IO ()
    tooltipSetText self
    self Maybe string
    text =
      (string -> (Ptr CChar -> IO ()) -> IO ())
    -> Maybe string -> (Ptr CChar -> IO ()) -> IO ()
    forall a b c.
    (a -> (Ptr b -> IO c) -> IO c)
    -> Maybe a -> (Ptr b -> IO c) -> IO c
    maybeWith string -> (Ptr CChar -> IO ()) -> IO ()
    forall a. string -> (Ptr CChar -> IO a) -> IO a
    forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
    withUTFString Maybe string
    text ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CChar
    textPtr ->
      (\(Tooltip ForeignPtr Tooltip
    arg1) Ptr CChar
    arg2 -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->Ptr Tooltip -> Ptr CChar -> IO ()
    gtk_tooltip_set_text Ptr Tooltip
    argPtr1 Ptr CChar
    arg2)
    {-# LINE 140 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip self)
        Ptr CChar
    textPtr

    -- | Sets the icon of the tooltip (which is in front of the text) to be
    -- @pixbuf@. If @pixbuf@ is 'Nothing' the image will be hidden.
    --
    tooltipSetIcon :: TooltipClass self => self
      -> Maybe Pixbuf -- ^ @pixbuf@ - a 'Pixbuf' or 'Nothing'
      -> IO ()
    tooltipSetIcon :: forall self. TooltipClass self => self -> Maybe Pixbuf -> IO ()
    tooltipSetIcon self
    self Maybe Pixbuf
    pixbuf =
      (\(Tooltip ForeignPtr Tooltip
    arg1) (Pixbuf ForeignPtr Pixbuf
    arg2) -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->ForeignPtr Pixbuf -> (Ptr Pixbuf -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Pixbuf
    arg2 ((Ptr Pixbuf -> IO ()) -> IO ()) -> (Ptr Pixbuf -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Pixbuf
    argPtr2 ->Ptr Tooltip -> Ptr Pixbuf -> IO ()
    gtk_tooltip_set_icon Ptr Tooltip
    argPtr1 Ptr Pixbuf
    argPtr2)
    {-# LINE 151 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip self)
        (Pixbuf -> Maybe Pixbuf -> Pixbuf
    forall a. a -> Maybe a -> a
    fromMaybe (ForeignPtr Pixbuf -> Pixbuf
    Pixbuf ForeignPtr Pixbuf
    forall a. ForeignPtr a
    nullForeignPtr) Maybe Pixbuf
    pixbuf)

    -- | Sets the icon of the tooltip (which is in front of the text) to be the
    -- stock item indicated by @stockId@ with the size indicated by @size@. If
    -- @stockId@ is 'Nothing' the image will be hidden.
    --
    tooltipSetIconFromStock :: (TooltipClass self, GlibString string) => self
      -> Maybe string -- ^ @id@ a stock id, or 'Nothing'
      -> IconSize -- ^ @size@ a stock icon size
      -> IO ()
    tooltipSetIconFromStock :: forall self string.
    (TooltipClass self, GlibString string) =>
    self -> Maybe string -> IconSize -> IO ()
    tooltipSetIconFromStock self
    self Maybe string
    id IconSize
    size =
      (string -> (Ptr CChar -> IO ()) -> IO ())
    -> Maybe string -> (Ptr CChar -> IO ()) -> IO ()
    forall a b c.
    (a -> (Ptr b -> IO c) -> IO c)
    -> Maybe a -> (Ptr b -> IO c) -> IO c
    maybeWith string -> (Ptr CChar -> IO ()) -> IO ()
    forall a. string -> (Ptr CChar -> IO a) -> IO a
    forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
    withUTFString Maybe string
    id ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \ Ptr CChar
    idPtr ->
      (\(Tooltip ForeignPtr Tooltip
    arg1) Ptr CChar
    arg2 CInt
    arg3 -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->Ptr Tooltip -> Ptr CChar -> CInt -> IO ()
    gtk_tooltip_set_icon_from_stock Ptr Tooltip
    argPtr1 Ptr CChar
    arg2 CInt
    arg3)
    {-# LINE 165 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip self)
        Ptr CChar
    idPtr
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (IconSize -> Int) -> IconSize -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . IconSize -> Int
    forall a. Enum a => a -> Int
    fromEnum) IconSize
    size)

    -- | Sets the icon of the tooltip (which is in front of the text) to be the
    -- icon indicated by @iconName@ with the size indicated by @size@. If
    -- @iconName@ is 'Nothing' the image will be hidden.
    --
    -- * Available since Gtk+ version 2.14
    --
    tooltipSetIconFromIconName :: (TooltipClass self, GlibString string) => self
      -> Maybe string -- ^ @iconName@ an icon name, or 'Nothing'
      -> IconSize -- ^ @size@ a stock icon size
      -> IO ()
    tooltipSetIconFromIconName :: forall self string.
    (TooltipClass self, GlibString string) =>
    self -> Maybe string -> IconSize -> IO ()
    tooltipSetIconFromIconName self
    self Maybe string
    iconName IconSize
    size =
      (string -> (Ptr CChar -> IO ()) -> IO ())
    -> Maybe string -> (Ptr CChar -> IO ()) -> IO ()
    forall a b c.
    (a -> (Ptr b -> IO c) -> IO c)
    -> Maybe a -> (Ptr b -> IO c) -> IO c
    maybeWith string -> (Ptr CChar -> IO ()) -> IO ()
    forall a. string -> (Ptr CChar -> IO a) -> IO a
    forall s a. GlibString s => s -> (Ptr CChar -> IO a) -> IO a
    withUTFString Maybe string
    iconName ((Ptr CChar -> IO ()) -> IO ()) -> (Ptr CChar -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \ Ptr CChar
    iconPtr ->
      (\(Tooltip ForeignPtr Tooltip
    arg1) Ptr CChar
    arg2 CInt
    arg3 -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->Ptr Tooltip -> Ptr CChar -> CInt -> IO ()
    gtk_tooltip_set_icon_from_icon_name Ptr Tooltip
    argPtr1 Ptr CChar
    arg2 CInt
    arg3)
    {-# LINE 183 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip self)
        Ptr CChar
    iconPtr
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (IconSize -> Int) -> IconSize -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . IconSize -> Int
    forall a. Enum a => a -> Int
    fromEnum) IconSize
    size)

    -- | Replaces the widget packed into the tooltip with @customWidget@.
    -- @customWidget@ does not get destroyed when the tooltip goes away. By default
    -- a box with a 'Image' and 'Label' is embedded in the tooltip, which can be
    -- configured using 'tooltipSetMarkup' and 'tooltipSetIcon'.
    --
    tooltipSetCustom :: (TooltipClass self, WidgetClass widget) => self
      -> Maybe widget -- ^ @customWidget@ a 'Widget', or 'Nothing' to unset the old custom widget.
      -> IO ()
    tooltipSetCustom :: forall self widget.
    (TooltipClass self, WidgetClass widget) =>
    self -> Maybe widget -> IO ()
    tooltipSetCustom self
    self Maybe widget
    customWidget =
      (\(Tooltip ForeignPtr Tooltip
    arg1) (Widget ForeignPtr Widget
    arg2) -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->ForeignPtr Widget -> (Ptr Widget -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Widget
    arg2 ((Ptr Widget -> IO ()) -> IO ()) -> (Ptr Widget -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Widget
    argPtr2 ->Ptr Tooltip -> Ptr Widget -> IO ()
    gtk_tooltip_set_custom Ptr Tooltip
    argPtr1 Ptr Widget
    argPtr2)
    {-# LINE 198 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip self)
        (Widget -> (widget -> Widget) -> Maybe widget -> Widget
    forall b a. b -> (a -> b) -> Maybe a -> b
    maybe (ForeignPtr Widget -> Widget
    Widget ForeignPtr Widget
    forall a. ForeignPtr a
    nullForeignPtr) widget -> Widget
    forall o. WidgetClass o => o -> Widget
    toWidget Maybe widget
    customWidget)

    -- | Triggers a new tooltip query on @display@, in order to update the current
    -- visible tooltip, or to show\/hide the current tooltip. This function is
    -- useful to call when, for example, the state of the widget changed by a key
    -- press.
    --
    tooltipTriggerTooltipQuery ::
        Display -- ^ @display@ - a 'Display'
     -> IO ()
    tooltipTriggerTooltipQuery :: Display -> IO ()
    tooltipTriggerTooltipQuery Display
    display =
      (\(Display ForeignPtr Display
    arg1) -> ForeignPtr Display -> (Ptr Display -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Display
    arg1 ((Ptr Display -> IO ()) -> IO ())
    -> (Ptr Display -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Display
    argPtr1 ->Ptr Display -> IO ()
    gtk_tooltip_trigger_tooltip_query Ptr Display
    argPtr1)
    {-# LINE 211 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        display

    -- | Sets the area of the widget, where the contents of this tooltip apply, to
    -- be @rect@ (in widget coordinates). This is especially useful for properly
    -- setting tooltips on 'TreeView' rows and cells, 'IconView'
    --
    -- For setting tooltips on 'TreeView', please refer to the convenience
    -- functions for this: 'treeViewSetTooltipRow' and 'treeViewSetTooltipCell'.
    --
    tooltipSetTipArea :: TooltipClass self => self -> Rectangle -> IO ()
    tooltipSetTipArea :: forall self. TooltipClass self => self -> Rectangle -> IO ()
    tooltipSetTipArea self
    self Rectangle
    rect =
      Rectangle -> (Ptr Rectangle -> IO ()) -> IO ()
    forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
    with Rectangle
    rect ((Ptr Rectangle -> IO ()) -> IO ())
    -> (Ptr Rectangle -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \ Ptr Rectangle
    rectPtr ->
      (\(Tooltip ForeignPtr Tooltip
    arg1) Ptr ()
    arg2 -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->Ptr Tooltip -> Ptr () -> IO ()
    gtk_tooltip_set_tip_area Ptr Tooltip
    argPtr1 Ptr ()
    arg2)
    {-# LINE 224 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip self)
        (Ptr Rectangle -> Ptr ()
    forall a b. Ptr a -> Ptr b
    castPtr Ptr Rectangle
    rectPtr)

    -- | Sets the icon of the tooltip (which is in front of the text) to be the icon indicated by gicon with
    -- the size indicated by size. If gicon is 'Nothing', the image will be hidden.
    tooltipSetIconFromGIcon :: TooltipClass self => self
                            -> Maybe Icon -- ^ @gicon@ a GIcon representing the icon, or 'Nothing'. allow-none.
                            -> IconSize
                            -> IO ()
    tooltipSetIconFromGIcon :: forall self.
    TooltipClass self =>
    self -> Maybe Icon -> IconSize -> IO ()
    tooltipSetIconFromGIcon self
    tooltip Maybe Icon
    icon IconSize
    size =
      (\(Tooltip ForeignPtr Tooltip
    arg1) (Icon ForeignPtr Icon
    arg2) CInt
    arg3 -> ForeignPtr Tooltip -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Tooltip
    arg1 ((Ptr Tooltip -> IO ()) -> IO ())
    -> (Ptr Tooltip -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Tooltip
    argPtr1 ->ForeignPtr Icon -> (Ptr Icon -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Icon
    arg2 ((Ptr Icon -> IO ()) -> IO ()) -> (Ptr Icon -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Icon
    argPtr2 ->Ptr Tooltip -> Ptr Icon -> CInt -> IO ()
    gtk_tooltip_set_icon_from_gicon Ptr Tooltip
    argPtr1 Ptr Icon
    argPtr2 CInt
    arg3)
    {-# LINE 238 "./Graphics/UI/Gtk/Misc/Tooltip.chs" #-}
        (toTooltip tooltip)
        (Icon -> Maybe Icon -> Icon
    forall a. a -> Maybe a -> a
    fromMaybe (ForeignPtr Icon -> Icon
    Icon ForeignPtr Icon
    forall a. ForeignPtr a
    nullForeignPtr) Maybe Icon
    icon)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (IconSize -> Int) -> IconSize -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . IconSize -> Int
    forall a. Enum a => a -> Int
    fromEnum) IconSize
    size)

    foreign import ccall safe "gtk_tooltip_set_markup"
      gtk_tooltip_set_markup :: ((Ptr Tooltip) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_tooltip_set_text"
      gtk_tooltip_set_text :: ((Ptr Tooltip) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_tooltip_set_icon"
      gtk_tooltip_set_icon :: ((Ptr Tooltip) -> ((Ptr Pixbuf) -> (IO ())))

    foreign import ccall safe "gtk_tooltip_set_icon_from_stock"
      gtk_tooltip_set_icon_from_stock :: ((Ptr Tooltip) -> ((Ptr CChar) -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_tooltip_set_icon_from_icon_name"
      gtk_tooltip_set_icon_from_icon_name :: ((Ptr Tooltip) -> ((Ptr CChar) -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_tooltip_set_custom"
      gtk_tooltip_set_custom :: ((Ptr Tooltip) -> ((Ptr Widget) -> (IO ())))

    foreign import ccall safe "gtk_tooltip_trigger_tooltip_query"
      gtk_tooltip_trigger_tooltip_query :: ((Ptr Display) -> (IO ()))

    foreign import ccall safe "gtk_tooltip_set_tip_area"
      gtk_tooltip_set_tip_area :: ((Ptr Tooltip) -> ((Ptr ()) -> (IO ())))

    foreign import ccall safe "gtk_tooltip_set_icon_from_gicon"
      gtk_tooltip_set_icon_from_gicon :: ((Ptr Tooltip) -> ((Ptr Icon) -> (CInt -> (IO ()))))