packages feed

gi-gtk-0.3.18.13: GI/Gtk/Objects/Tooltip.hs


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

-- * Exported types
    Tooltip(..)                             ,
    TooltipK                                ,
    toTooltip                               ,
    noTooltip                               ,


 -- * Methods
-- ** tooltipSetCustom
    TooltipSetCustomMethodInfo              ,
    tooltipSetCustom                        ,


-- ** tooltipSetIcon
    TooltipSetIconMethodInfo                ,
    tooltipSetIcon                          ,


-- ** tooltipSetIconFromGicon
    TooltipSetIconFromGiconMethodInfo       ,
    tooltipSetIconFromGicon                 ,


-- ** tooltipSetIconFromIconName
    TooltipSetIconFromIconNameMethodInfo    ,
    tooltipSetIconFromIconName              ,


-- ** tooltipSetIconFromStock
    TooltipSetIconFromStockMethodInfo       ,
    tooltipSetIconFromStock                 ,


-- ** tooltipSetMarkup
    TooltipSetMarkupMethodInfo              ,
    tooltipSetMarkup                        ,


-- ** tooltipSetText
    TooltipSetTextMethodInfo                ,
    tooltipSetText                          ,


-- ** tooltipSetTipArea
    TooltipSetTipAreaMethodInfo             ,
    tooltipSetTipArea                       ,


-- ** tooltipTriggerTooltipQuery
    tooltipTriggerTooltipQuery              ,




    ) 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.GObject as GObject
import qualified GI.Gdk as Gdk
import qualified GI.GdkPixbuf as GdkPixbuf
import qualified GI.Gio as Gio

newtype Tooltip = Tooltip (ForeignPtr Tooltip)
foreign import ccall "gtk_tooltip_get_type"
    c_gtk_tooltip_get_type :: IO GType

type instance ParentTypes Tooltip = TooltipParentTypes
type TooltipParentTypes = '[GObject.Object]

instance GObject Tooltip where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_tooltip_get_type
    

class GObject o => TooltipK o
instance (GObject o, IsDescendantOf Tooltip o) => TooltipK o

toTooltip :: TooltipK o => o -> IO Tooltip
toTooltip = unsafeCastTo Tooltip

noTooltip :: Maybe Tooltip
noTooltip = Nothing

type family ResolveTooltipMethod (t :: Symbol) (o :: *) :: * where
    ResolveTooltipMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveTooltipMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveTooltipMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveTooltipMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveTooltipMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveTooltipMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveTooltipMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveTooltipMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveTooltipMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveTooltipMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveTooltipMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveTooltipMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveTooltipMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveTooltipMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveTooltipMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveTooltipMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveTooltipMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveTooltipMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveTooltipMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveTooltipMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveTooltipMethod "setCustom" o = TooltipSetCustomMethodInfo
    ResolveTooltipMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveTooltipMethod "setIcon" o = TooltipSetIconMethodInfo
    ResolveTooltipMethod "setIconFromGicon" o = TooltipSetIconFromGiconMethodInfo
    ResolveTooltipMethod "setIconFromIconName" o = TooltipSetIconFromIconNameMethodInfo
    ResolveTooltipMethod "setIconFromStock" o = TooltipSetIconFromStockMethodInfo
    ResolveTooltipMethod "setMarkup" o = TooltipSetMarkupMethodInfo
    ResolveTooltipMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveTooltipMethod "setText" o = TooltipSetTextMethodInfo
    ResolveTooltipMethod "setTipArea" o = TooltipSetTipAreaMethodInfo
    ResolveTooltipMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveTooltipMethod t Tooltip, MethodInfo info Tooltip p) => IsLabelProxy t (Tooltip -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveTooltipMethod t Tooltip, MethodInfo info Tooltip p) => IsLabel t (Tooltip -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

type instance AttributeList Tooltip = TooltipAttributeList
type TooltipAttributeList = ('[ ] :: [(Symbol, *)])

type instance SignalList Tooltip = TooltipSignalList
type TooltipSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method Tooltip::set_custom
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "custom_widget", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_custom" gtk_tooltip_set_custom :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    Ptr Widget ->                           -- custom_widget : TInterface "Gtk" "Widget"
    IO ()


tooltipSetCustom ::
    (MonadIO m, TooltipK a, WidgetK b) =>
    a                                       -- _obj
    -> Maybe (b)                            -- customWidget
    -> m ()                                 -- result
tooltipSetCustom _obj customWidget = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeCustomWidget <- case customWidget of
        Nothing -> return nullPtr
        Just jCustomWidget -> do
            let jCustomWidget' = unsafeManagedPtrCastPtr jCustomWidget
            return jCustomWidget'
    gtk_tooltip_set_custom _obj' maybeCustomWidget
    touchManagedPtr _obj
    whenJust customWidget touchManagedPtr
    return ()

data TooltipSetCustomMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, TooltipK a, WidgetK b) => MethodInfo TooltipSetCustomMethodInfo a signature where
    overloadedMethod _ = tooltipSetCustom

-- method Tooltip::set_icon
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_icon" gtk_tooltip_set_icon :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
    IO ()


tooltipSetIcon ::
    (MonadIO m, TooltipK a, GdkPixbuf.PixbufK b) =>
    a                                       -- _obj
    -> Maybe (b)                            -- pixbuf
    -> m ()                                 -- result
tooltipSetIcon _obj pixbuf = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybePixbuf <- case pixbuf of
        Nothing -> return nullPtr
        Just jPixbuf -> do
            let jPixbuf' = unsafeManagedPtrCastPtr jPixbuf
            return jPixbuf'
    gtk_tooltip_set_icon _obj' maybePixbuf
    touchManagedPtr _obj
    whenJust pixbuf touchManagedPtr
    return ()

data TooltipSetIconMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, TooltipK a, GdkPixbuf.PixbufK b) => MethodInfo TooltipSetIconMethodInfo a signature where
    overloadedMethod _ = tooltipSetIcon

-- method Tooltip::set_icon_from_gicon
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "gicon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_icon_from_gicon" gtk_tooltip_set_icon_from_gicon :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    Ptr Gio.Icon ->                         -- gicon : TInterface "Gio" "Icon"
    Int32 ->                                -- size : TBasicType TInt32
    IO ()


tooltipSetIconFromGicon ::
    (MonadIO m, TooltipK a, Gio.IconK b) =>
    a                                       -- _obj
    -> Maybe (b)                            -- gicon
    -> Int32                                -- size
    -> m ()                                 -- result
tooltipSetIconFromGicon _obj gicon size = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeGicon <- case gicon of
        Nothing -> return nullPtr
        Just jGicon -> do
            let jGicon' = unsafeManagedPtrCastPtr jGicon
            return jGicon'
    gtk_tooltip_set_icon_from_gicon _obj' maybeGicon size
    touchManagedPtr _obj
    whenJust gicon touchManagedPtr
    return ()

data TooltipSetIconFromGiconMethodInfo
instance (signature ~ (Maybe (b) -> Int32 -> m ()), MonadIO m, TooltipK a, Gio.IconK b) => MethodInfo TooltipSetIconFromGiconMethodInfo a signature where
    overloadedMethod _ = tooltipSetIconFromGicon

-- method Tooltip::set_icon_from_icon_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_icon_from_icon_name" gtk_tooltip_set_icon_from_icon_name :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    CString ->                              -- icon_name : TBasicType TUTF8
    Int32 ->                                -- size : TBasicType TInt32
    IO ()


tooltipSetIconFromIconName ::
    (MonadIO m, TooltipK a) =>
    a                                       -- _obj
    -> Maybe (T.Text)                       -- iconName
    -> Int32                                -- size
    -> m ()                                 -- result
tooltipSetIconFromIconName _obj iconName size = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeIconName <- case iconName of
        Nothing -> return nullPtr
        Just jIconName -> do
            jIconName' <- textToCString jIconName
            return jIconName'
    gtk_tooltip_set_icon_from_icon_name _obj' maybeIconName size
    touchManagedPtr _obj
    freeMem maybeIconName
    return ()

data TooltipSetIconFromIconNameMethodInfo
instance (signature ~ (Maybe (T.Text) -> Int32 -> m ()), MonadIO m, TooltipK a) => MethodInfo TooltipSetIconFromIconNameMethodInfo a signature where
    overloadedMethod _ = tooltipSetIconFromIconName

-- method Tooltip::set_icon_from_stock
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stock_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_icon_from_stock" gtk_tooltip_set_icon_from_stock :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    CString ->                              -- stock_id : TBasicType TUTF8
    Int32 ->                                -- size : TBasicType TInt32
    IO ()

{-# DEPRECATED tooltipSetIconFromStock ["(Since version 3.10)","Use gtk_tooltip_set_icon_from_icon_name() instead."]#-}
tooltipSetIconFromStock ::
    (MonadIO m, TooltipK a) =>
    a                                       -- _obj
    -> Maybe (T.Text)                       -- stockId
    -> Int32                                -- size
    -> m ()                                 -- result
tooltipSetIconFromStock _obj stockId size = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeStockId <- case stockId of
        Nothing -> return nullPtr
        Just jStockId -> do
            jStockId' <- textToCString jStockId
            return jStockId'
    gtk_tooltip_set_icon_from_stock _obj' maybeStockId size
    touchManagedPtr _obj
    freeMem maybeStockId
    return ()

data TooltipSetIconFromStockMethodInfo
instance (signature ~ (Maybe (T.Text) -> Int32 -> m ()), MonadIO m, TooltipK a) => MethodInfo TooltipSetIconFromStockMethodInfo a signature where
    overloadedMethod _ = tooltipSetIconFromStock

-- method Tooltip::set_markup
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "markup", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_markup" gtk_tooltip_set_markup :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    CString ->                              -- markup : TBasicType TUTF8
    IO ()


tooltipSetMarkup ::
    (MonadIO m, TooltipK a) =>
    a                                       -- _obj
    -> Maybe (T.Text)                       -- markup
    -> m ()                                 -- result
tooltipSetMarkup _obj markup = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeMarkup <- case markup of
        Nothing -> return nullPtr
        Just jMarkup -> do
            jMarkup' <- textToCString jMarkup
            return jMarkup'
    gtk_tooltip_set_markup _obj' maybeMarkup
    touchManagedPtr _obj
    freeMem maybeMarkup
    return ()

data TooltipSetMarkupMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, TooltipK a) => MethodInfo TooltipSetMarkupMethodInfo a signature where
    overloadedMethod _ = tooltipSetMarkup

-- method Tooltip::set_text
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_text" gtk_tooltip_set_text :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    CString ->                              -- text : TBasicType TUTF8
    IO ()


tooltipSetText ::
    (MonadIO m, TooltipK a) =>
    a                                       -- _obj
    -> Maybe (T.Text)                       -- text
    -> m ()                                 -- result
tooltipSetText _obj text = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeText <- case text of
        Nothing -> return nullPtr
        Just jText -> do
            jText' <- textToCString jText
            return jText'
    gtk_tooltip_set_text _obj' maybeText
    touchManagedPtr _obj
    freeMem maybeText
    return ()

data TooltipSetTextMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, TooltipK a) => MethodInfo TooltipSetTextMethodInfo a signature where
    overloadedMethod _ = tooltipSetText

-- method Tooltip::set_tip_area
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_set_tip_area" gtk_tooltip_set_tip_area :: 
    Ptr Tooltip ->                          -- _obj : TInterface "Gtk" "Tooltip"
    Ptr Gdk.Rectangle ->                    -- rect : TInterface "Gdk" "Rectangle"
    IO ()


tooltipSetTipArea ::
    (MonadIO m, TooltipK a) =>
    a                                       -- _obj
    -> Gdk.Rectangle                        -- rect
    -> m ()                                 -- result
tooltipSetTipArea _obj rect = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let rect' = unsafeManagedPtrGetPtr rect
    gtk_tooltip_set_tip_area _obj' rect'
    touchManagedPtr _obj
    touchManagedPtr rect
    return ()

data TooltipSetTipAreaMethodInfo
instance (signature ~ (Gdk.Rectangle -> m ()), MonadIO m, TooltipK a) => MethodInfo TooltipSetTipAreaMethodInfo a signature where
    overloadedMethod _ = tooltipSetTipArea

-- method Tooltip::trigger_tooltip_query
-- method type : MemberFunction
-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tooltip_trigger_tooltip_query" gtk_tooltip_trigger_tooltip_query :: 
    Ptr Gdk.Display ->                      -- display : TInterface "Gdk" "Display"
    IO ()


tooltipTriggerTooltipQuery ::
    (MonadIO m, Gdk.DisplayK a) =>
    a                                       -- display
    -> m ()                                 -- result
tooltipTriggerTooltipQuery display = liftIO $ do
    let display' = unsafeManagedPtrCastPtr display
    gtk_tooltip_trigger_tooltip_query display'
    touchManagedPtr display
    return ()