{-# 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 ()))))