Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 404d46ca9bb341d7a0e7e04bc69da9df > files > 690

ghc-gtk-devel-0.12.0-4.fc15.i686.rpm

-- Simple StatusIcon example
import Graphics.UI.Gtk
import qualified Graphics.UI.Gtk.Display.StatusIcon as I


main = do
  initGUI
  icon <- statusIconNewFromStock stockQuit
  statusIconSetVisible icon True
  statusIconSetTooltip icon "This is a test"
  menu <- mkmenu icon
  I.onPopupMenu icon $ \b a -> do
         widgetShowAll menu
         print (b,a)
         menuPopup menu $ maybe Nothing (\b' -> Just (b',a)) b
  I.onActivate icon $ do
         putStrLn "'activate' signal triggered"
  mainGUI

mkmenu s = do
  m <- menuNew
  mapM_ (mkitem m) [("Let's blink!",statusIconSetBlinking s True)
                   ,("Let's stop blink!",statusIconSetBlinking s False)
                   ,("Quit",mainQuit)]
  return m
    where
        mkitem menu (label,act) =
            do i <- menuItemNewWithLabel label
               menuShellAppend menu i
               i `onActivateLeaf` act