{-# LINE 2 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
module Graphics.UI.Gtk.Display.StatusIcon (
  StatusIcon,
  StatusIconClass,
  castToStatusIcon, gTypeStatusIcon,
  toStatusIcon,
  statusIconNew,
  statusIconNewFromPixbuf,
  statusIconNewFromFile,
  statusIconNewFromStock,
  statusIconNewFromIconName,
  statusIconSetFromPixbuf,
  statusIconSetFromFile,
  statusIconSetFromStock,
  statusIconSetFromIconName,
  statusIconGetStorageType,
  statusIconGetPixbuf,
  statusIconGetStock,
  statusIconGetIconName,
  statusIconGetSize,
  statusIconSetTooltip,
  statusIconSetVisible,
  statusIconGetVisible,
  statusIconSetBlinking,
  statusIconGetBlinking,
  statusIconIsEmbedded,
  statusIconPositionMenu,
  statusIconGetGeometry,
  statusIconSetScreen,
  statusIconGetScreen,
  statusIconSetTooltipText,
  statusIconGetTooltipText,
  statusIconSetTooltipMarkup,
  statusIconGetTooltipMarkup,
  statusIconSetHasTooltip,
  statusIconGetHasTooltip,
  statusIconSetTitle,
  statusIconGetTitle,
  statusIconSetName,
  statusIconPixbuf,
  statusIconFile,
  statusIconStock,
  statusIconIconName,
  statusIconStorageType,
  statusIconSize,
  statusIconBlinking,
  statusIconVisible,
  statusIconScreen,
  statusIconTooltipText,
  statusIconTooltipMarkup,
  statusIconHasTooltip,
  statusIconTitle,
  statusIconSizeChanged,
  statusIconActivated,
  statusIconActivate,
  statusIconPopupMenu,
  onActivate,
  afterActivate,
  onPopupMenu,
  afterPopupMenu,
  onSizeChanged,
  afterSizeChanged,
  ) where
import Control.Monad (liftM)
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes
import System.Glib.Properties
import Graphics.UI.Gtk.Types
{-# LINE 169 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
import Graphics.UI.Gtk.General.Enums
{-# LINE 170 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
import Graphics.UI.Gtk.General.Structs
import Graphics.UI.Gtk.Display.Image (ImageType)
import Graphics.UI.Gtk.Signals
{-# LINE 173 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
import Graphics.UI.Gtk.General.StockItems
import Graphics.UI.Gtk.Gdk.Events
{-# LINE 178 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
statusIconNew :: IO StatusIcon
statusIconNew =
  wrapNewGObject mkStatusIcon $
  gtk_status_icon_new
{-# LINE 190 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
statusIconNewFromPixbuf ::
    Pixbuf 
 -> IO StatusIcon
statusIconNewFromPixbuf pixbuf =
  wrapNewGObject mkStatusIcon $
  (\(Pixbuf arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_new_from_pixbuf argPtr1)
{-# LINE 203 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    pixbuf
statusIconNewFromFile :: GlibString string
 => string 
 -> IO StatusIcon
statusIconNewFromFile filename =
  wrapNewGObject mkStatusIcon $
  withUTFString filename $ \filenamePtr ->
  gtk_status_icon_new_from_file
{-# LINE 218 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    filenamePtr
statusIconNewFromStock ::
    StockId 
 -> IO StatusIcon
statusIconNewFromStock stockId =
  wrapNewGObject mkStatusIcon $
  withUTFString stockId $ \stockIdPtr ->
  gtk_status_icon_new_from_stock
{-# LINE 233 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    stockIdPtr
statusIconNewFromIconName :: GlibString string
 => string 
 -> IO StatusIcon
statusIconNewFromIconName iconName =
  wrapNewGObject mkStatusIcon $
  withUTFString iconName $ \iconNamePtr ->
  gtk_status_icon_new_from_icon_name
{-# LINE 246 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    iconNamePtr
statusIconSetFromPixbuf :: StatusIconClass self => self
 -> Pixbuf 
 -> IO ()
statusIconSetFromPixbuf self pixbuf =
  (\(StatusIcon arg1) (Pixbuf arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_status_icon_set_from_pixbuf argPtr1 argPtr2)
{-# LINE 260 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    pixbuf
statusIconSetFromFile :: (StatusIconClass self, GlibString string) => self
 -> string 
 -> IO ()
statusIconSetFromFile self filename =
  withUTFString filename $ \filenamePtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_from_file argPtr1 arg2)
{-# LINE 273 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    filenamePtr
statusIconSetFromStock :: StatusIconClass self => self
 -> StockId 
 -> IO ()
statusIconSetFromStock self stockId =
  withUTFString stockId $ \stockIdPtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_from_stock argPtr1 arg2)
{-# LINE 286 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    stockIdPtr
statusIconSetFromIconName :: (StatusIconClass self, GlibString string) => self
 -> string 
 -> IO ()
statusIconSetFromIconName self iconName =
  withUTFString iconName $ \iconNamePtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_from_icon_name argPtr1 arg2)
{-# LINE 299 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    iconNamePtr
statusIconGetStorageType :: StatusIconClass self => self
 -> IO ImageType 
statusIconGetStorageType self =
  liftM (toEnum . fromIntegral) $
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_storage_type argPtr1)
{-# LINE 312 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
statusIconGetPixbuf :: StatusIconClass self => self
 -> IO (Maybe Pixbuf) 
                      
statusIconGetPixbuf self = do
  ptr <- (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_pixbuf argPtr1)
{-# LINE 326 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
       (toStatusIcon self)
  maybePeek (makeNewGObject mkPixbuf . return) ptr
statusIconGetStock :: StatusIconClass self => self
 -> IO (Maybe StockId) 
                      
statusIconGetStock self =
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_stock argPtr1)
{-# LINE 342 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
  >>= maybePeek peekUTFString
statusIconGetIconName :: (StatusIconClass self, GlibString string) => self
 -> IO (Maybe string) 
                      
statusIconGetIconName self =
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_icon_name argPtr1)
{-# LINE 357 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
  >>= maybePeek peekUTFString
statusIconGetSize :: StatusIconClass self => self
 -> IO Int 
statusIconGetSize self =
  liftM fromIntegral $
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_size argPtr1)
{-# LINE 371 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
statusIconSetTooltip :: (StatusIconClass self, GlibString string) => self
 -> string 
 -> IO ()
statusIconSetTooltip self tooltipText =
  withUTFString tooltipText $ \tooltipTextPtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_tooltip argPtr1 arg2)
{-# LINE 384 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    tooltipTextPtr
statusIconSetVisible :: StatusIconClass self => self
 -> Bool 
 -> IO ()
statusIconSetVisible self visible =
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_visible argPtr1 arg2)
{-# LINE 396 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    (fromBool visible)
statusIconGetVisible :: StatusIconClass self => self
 -> IO Bool 
statusIconGetVisible self =
  liftM toBool $
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_visible argPtr1)
{-# LINE 409 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
statusIconSetBlinking :: StatusIconClass self => self
 -> Bool 
 -> IO ()
statusIconSetBlinking self blinking =
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_blinking argPtr1 arg2)
{-# LINE 423 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    (fromBool blinking)
statusIconGetBlinking :: StatusIconClass self => self
 -> IO Bool 
statusIconGetBlinking self =
  liftM toBool $
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_blinking argPtr1)
{-# LINE 435 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
statusIconIsEmbedded :: StatusIconClass self => self
 -> IO Bool 
            
statusIconIsEmbedded self =
  liftM toBool $
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_is_embedded argPtr1)
{-# LINE 447 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
statusIconPositionMenu :: (MenuClass menu, StatusIconClass self) =>
    menu 
 -> self 
                           
 -> IO (Int,Int,Bool) 
                           
                           
                           
                           
                           
statusIconPositionMenu menu userData =
  alloca $ \xPtr ->
  alloca $ \yPtr ->
  alloca $ \pushInPtr -> do
  (\(Menu arg1) arg2 arg3 arg4 arg5 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_position_menu argPtr1 arg2 arg3 arg4 arg5)
{-# LINE 468 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toMenu menu)
    xPtr
    yPtr
    pushInPtr
    (castPtr . unsafeForeignPtrToPtr . unStatusIcon $ toStatusIcon userData)
  x <- peek xPtr
  y <- peek yPtr
  pushIn <- peek pushInPtr
  return (fromIntegral x, fromIntegral y, toBool pushIn)
statusIconGetGeometry :: StatusIconClass self => self -> IO (Maybe (Rectangle,Orientation))
statusIconGetGeometry self =
  alloca $ \recPtr ->
  alloca $ \orPtr ->
        (liftM toBool $ (\(StatusIcon arg1) arg2 arg3 arg4 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_geometry argPtr1 arg2 arg3 arg4)
{-# LINE 493 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
         (toStatusIcon self) nullPtr (castPtr recPtr) orPtr) >>= \b ->
        if b
          then do
            rec_ <- peek recPtr
            or <- peek orPtr
            return $ Just (rec_,toEnum $ fromIntegral or)
        else return Nothing
statusIconSetScreen :: (StatusIconClass self, ScreenClass screen) => self
 -> Maybe screen
 -> IO ()
statusIconSetScreen self screen =
  (\(StatusIcon arg1) (Screen arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_status_icon_set_screen argPtr1 argPtr2)
{-# LINE 510 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    (maybe (Screen nullForeignPtr) toScreen screen)
statusIconGetScreen :: StatusIconClass self => self
 -> IO (Maybe Screen)
statusIconGetScreen self =
  maybeNull (makeNewGObject mkScreen) $
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_screen argPtr1)
{-# LINE 520 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
statusIconSetTooltipText :: (StatusIconClass self, GlibString string) => self
 -> Maybe string
 -> IO ()
statusIconSetTooltipText self text =
  maybeWith withUTFString text $ \textPtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_tooltip_text argPtr1 arg2)
{-# LINE 537 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    textPtr
statusIconGetTooltipText :: (StatusIconClass self, GlibString string) => self
 -> IO (Maybe string)
statusIconGetTooltipText self =
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_tooltip_text argPtr1)
{-# LINE 546 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
  >>= maybePeek peekUTFString
statusIconSetTooltipMarkup :: (StatusIconClass self, GlibString string) => self
 -> Maybe string
 -> IO ()
statusIconSetTooltipMarkup self markup =
  maybeWith withUTFString markup $ \markupPtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_tooltip_markup argPtr1 arg2)
{-# LINE 563 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    markupPtr
statusIconGetTooltipMarkup :: (StatusIconClass self, GlibString string) => self
 -> IO (Maybe string)
statusIconGetTooltipMarkup self =
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_tooltip_markup argPtr1)
{-# LINE 572 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
  >>= maybePeek peekUTFString
statusIconSetHasTooltip :: StatusIconClass self => self
 -> Bool
 -> IO ()
statusIconSetHasTooltip self hasTooltip =
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_has_tooltip argPtr1 arg2)
{-# LINE 583 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    (fromBool hasTooltip)
statusIconGetHasTooltip :: StatusIconClass self => self
 -> IO Bool
statusIconGetHasTooltip self =
  liftM toBool $
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_has_tooltip argPtr1)
{-# LINE 593 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
statusIconSetTitle :: (StatusIconClass self, GlibString string) => self
 -> Maybe string
 -> IO ()
statusIconSetTitle self title =
  maybeWith withUTFString title $ \titlePtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_title argPtr1 arg2)
{-# LINE 607 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    titlePtr
statusIconGetTitle :: (StatusIconClass self, GlibString string) => self
 -> IO (Maybe string)
statusIconGetTitle self =
  (\(StatusIcon arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_get_title argPtr1)
{-# LINE 616 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
  >>= maybePeek peekUTFString
statusIconSetName :: (StatusIconClass self, GlibString string) => self -> string -> IO ()
statusIconSetName self name =
  withUTFString name $ \ namePtr ->
  (\(StatusIcon arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_status_icon_set_name argPtr1 arg2)
{-# LINE 627 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
    (toStatusIcon self)
    namePtr
statusIconPixbuf :: StatusIconClass self => Attr self Pixbuf
statusIconPixbuf = newAttrFromObjectProperty "pixbuf"
                     gdk_pixbuf_get_type
{-# LINE 640 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
statusIconFile :: (StatusIconClass self, GlibString string) => WriteAttr self (Maybe string)
statusIconFile = writeAttrFromMaybeStringProperty "file"
statusIconStock :: (StatusIconClass self, GlibString string) => Attr self (Maybe string)
statusIconStock = newAttrFromMaybeStringProperty "stock"
statusIconIconName :: (StatusIconClass self, GlibString string) => Attr self (Maybe string)
statusIconIconName = newAttrFromMaybeStringProperty "icon-name"
statusIconStorageType :: StatusIconClass self => ReadAttr self ImageType
statusIconStorageType = readAttrFromEnumProperty "storage-type"
                          gtk_image_type_get_type
{-# LINE 673 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
statusIconSize :: StatusIconClass self => ReadAttr self Int
statusIconSize = readAttrFromIntProperty "size"
statusIconBlinking :: StatusIconClass self => Attr self Bool
statusIconBlinking = newAttrFromBoolProperty "blinking"
statusIconVisible :: StatusIconClass self => Attr self Bool
statusIconVisible = newAttrFromBoolProperty "visible"
statusIconScreen :: StatusIconClass self => Attr self Screen
statusIconScreen = newAttrFromObjectProperty "screen"
                          gdk_screen_get_type
{-# LINE 708 "./Graphics/UI/Gtk/Display/StatusIcon.chs" #-}
statusIconTooltipText :: (StatusIconClass self, GlibString string) => Attr self (Maybe string)
statusIconTooltipText = newAttrFromMaybeStringProperty "tooltip-text"
statusIconTooltipMarkup :: (StatusIconClass self, GlibString string) => Attr self (Maybe string)
statusIconTooltipMarkup = newAttrFromMaybeStringProperty "tooltip-markup"
statusIconHasTooltip :: StatusIconClass self => Attr self Bool
statusIconHasTooltip = newAttrFromBoolProperty "has-tooltip"
statusIconTitle :: (StatusIconClass self, GlibString string) => Attr self (Maybe string)
statusIconTitle = newAttrFromMaybeStringProperty "title"
statusIconSizeChanged :: StatusIconClass self => Signal self (Int -> IO Bool)
statusIconSizeChanged = Signal (connect_INT__BOOL "size-changed")
statusIconActivated :: StatusIconClass self => Signal self (IO ())
statusIconActivated = Signal (connect_NONE__NONE "activate")
statusIconActivate :: StatusIconClass self => Signal self (IO ())
statusIconActivate = statusIconActivated
statusIconPopupMenu :: StatusIconClass self => Signal self (Maybe MouseButton -> TimeStamp -> IO ())
statusIconPopupMenu = Signal wrap
wrap flag self f = connect_WORD_WORD__NONE "popup_menu" flag self (\m t -> f (toMB m) (fromIntegral t))
    where toMB 0 = Nothing
          toMB n = Just . toEnum . fromIntegral $ n
onActivate :: StatusIconClass self => self
 -> IO ()
 -> IO (ConnectId self)
onActivate = connect_NONE__NONE "activate" False
{-# DEPRECATED onActivate "instead of 'onActivate obj' use 'on obj activate'" #-}
afterActivate :: StatusIconClass self => self
 -> IO ()
 -> IO (ConnectId self)
afterActivate = connect_NONE__NONE "activate" True
{-# DEPRECATED afterActivate "instead of 'afterActivate obj' use 'after obj activate'" #-}
onPopupMenu :: StatusIconClass self => self
 -> (Maybe MouseButton -> TimeStamp -> IO ())
 -> IO (ConnectId self)
onPopupMenu = wrap False
{-# DEPRECATED onPopupMenu "instead of 'onPopupMenu obj' use 'on obj popupMenu'" #-}
afterPopupMenu :: StatusIconClass self => self
 -> (Maybe MouseButton -> TimeStamp -> IO ())
 -> IO (ConnectId self)
afterPopupMenu = wrap True
{-# DEPRECATED afterPopupMenu "instead of 'afterPopupMenu obj' use 'after obj popupMenu'" #-}
onSizeChanged :: StatusIconClass self => self
 -> (Int -> IO Bool)
 -> IO (ConnectId self)
onSizeChanged = connect_INT__BOOL "size_changed" False
{-# DEPRECATED onSizeChanged "instead of 'onSizeChanged obj' use 'on obj sizeChanged'" #-}
afterSizeChanged :: StatusIconClass self => self
 -> (Int -> IO Bool)
 -> IO (ConnectId self)
afterSizeChanged = connect_INT__BOOL "size_changed" True
{-# DEPRECATED afterSizeChanged "instead of 'afterSizeChanged obj' use 'after obj sizeChanged'" #-}
foreign import ccall safe "gtk_status_icon_new"
  gtk_status_icon_new :: (IO (Ptr StatusIcon))
foreign import ccall safe "gtk_status_icon_new_from_pixbuf"
  gtk_status_icon_new_from_pixbuf :: ((Ptr Pixbuf) -> (IO (Ptr StatusIcon)))
foreign import ccall safe "gtk_status_icon_new_from_file"
  gtk_status_icon_new_from_file :: ((Ptr CChar) -> (IO (Ptr StatusIcon)))
foreign import ccall safe "gtk_status_icon_new_from_stock"
  gtk_status_icon_new_from_stock :: ((Ptr CChar) -> (IO (Ptr StatusIcon)))
foreign import ccall safe "gtk_status_icon_new_from_icon_name"
  gtk_status_icon_new_from_icon_name :: ((Ptr CChar) -> (IO (Ptr StatusIcon)))
foreign import ccall safe "gtk_status_icon_set_from_pixbuf"
  gtk_status_icon_set_from_pixbuf :: ((Ptr StatusIcon) -> ((Ptr Pixbuf) -> (IO ())))
foreign import ccall safe "gtk_status_icon_set_from_file"
  gtk_status_icon_set_from_file :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "gtk_status_icon_set_from_stock"
  gtk_status_icon_set_from_stock :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "gtk_status_icon_set_from_icon_name"
  gtk_status_icon_set_from_icon_name :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_storage_type"
  gtk_status_icon_get_storage_type :: ((Ptr StatusIcon) -> (IO CInt))
foreign import ccall safe "gtk_status_icon_get_pixbuf"
  gtk_status_icon_get_pixbuf :: ((Ptr StatusIcon) -> (IO (Ptr Pixbuf)))
foreign import ccall safe "gtk_status_icon_get_stock"
  gtk_status_icon_get_stock :: ((Ptr StatusIcon) -> (IO (Ptr CChar)))
foreign import ccall safe "gtk_status_icon_get_icon_name"
  gtk_status_icon_get_icon_name :: ((Ptr StatusIcon) -> (IO (Ptr CChar)))
foreign import ccall safe "gtk_status_icon_get_size"
  gtk_status_icon_get_size :: ((Ptr StatusIcon) -> (IO CInt))
foreign import ccall safe "gtk_status_icon_set_tooltip"
  gtk_status_icon_set_tooltip :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "gtk_status_icon_set_visible"
  gtk_status_icon_set_visible :: ((Ptr StatusIcon) -> (CInt -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_visible"
  gtk_status_icon_get_visible :: ((Ptr StatusIcon) -> (IO CInt))
foreign import ccall safe "gtk_status_icon_set_blinking"
  gtk_status_icon_set_blinking :: ((Ptr StatusIcon) -> (CInt -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_blinking"
  gtk_status_icon_get_blinking :: ((Ptr StatusIcon) -> (IO CInt))
foreign import ccall safe "gtk_status_icon_is_embedded"
  gtk_status_icon_is_embedded :: ((Ptr StatusIcon) -> (IO CInt))
foreign import ccall safe "gtk_status_icon_position_menu"
  gtk_status_icon_position_menu :: ((Ptr Menu) -> ((Ptr CInt) -> ((Ptr CInt) -> ((Ptr CInt) -> ((Ptr ()) -> (IO ()))))))
foreign import ccall safe "gtk_status_icon_get_geometry"
  gtk_status_icon_get_geometry :: ((Ptr StatusIcon) -> ((Ptr Screen) -> ((Ptr ()) -> ((Ptr CInt) -> (IO CInt)))))
foreign import ccall safe "gtk_status_icon_set_screen"
  gtk_status_icon_set_screen :: ((Ptr StatusIcon) -> ((Ptr Screen) -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_screen"
  gtk_status_icon_get_screen :: ((Ptr StatusIcon) -> (IO (Ptr Screen)))
foreign import ccall safe "gtk_status_icon_set_tooltip_text"
  gtk_status_icon_set_tooltip_text :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_tooltip_text"
  gtk_status_icon_get_tooltip_text :: ((Ptr StatusIcon) -> (IO (Ptr CChar)))
foreign import ccall safe "gtk_status_icon_set_tooltip_markup"
  gtk_status_icon_set_tooltip_markup :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_tooltip_markup"
  gtk_status_icon_get_tooltip_markup :: ((Ptr StatusIcon) -> (IO (Ptr CChar)))
foreign import ccall safe "gtk_status_icon_set_has_tooltip"
  gtk_status_icon_set_has_tooltip :: ((Ptr StatusIcon) -> (CInt -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_has_tooltip"
  gtk_status_icon_get_has_tooltip :: ((Ptr StatusIcon) -> (IO CInt))
foreign import ccall safe "gtk_status_icon_set_title"
  gtk_status_icon_set_title :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "gtk_status_icon_get_title"
  gtk_status_icon_get_title :: ((Ptr StatusIcon) -> (IO (Ptr CChar)))
foreign import ccall safe "gtk_status_icon_set_name"
  gtk_status_icon_set_name :: ((Ptr StatusIcon) -> ((Ptr CChar) -> (IO ())))
foreign import ccall unsafe "gdk_pixbuf_get_type"
  gdk_pixbuf_get_type :: CULong
foreign import ccall unsafe "gtk_image_type_get_type"
  gtk_image_type_get_type :: CULong
foreign import ccall unsafe "gdk_screen_get_type"
  gdk_screen_get_type :: CULong