#!/usr/bin/ruby

require 'Qt4'
 
app = Qt::Application.new(ARGV)
si  = Qt::SystemTrayIcon.new
 
std_icon = Qt::Icon.new('qtsshfsmapper.32.png')
alt_icon = Qt::Icon.new
blinking = false
 
si.icon  = std_icon
si.show
 
Qt::Timer.new(app) do |timer|
  timer.connect(SIGNAL('timeout()')) do
    si.icon = (si.icon.isNull ? std_icon : alt_icon) if blinking
  end
  timer.start(500)
end
 
menu = Qt::Menu.new
quit = Qt::Action.new('&Quit', menu)
 
quit.connect(SIGNAL(:triggered)) { app.quit }
menu.addAction(quit)
 
si.contextMenu = menu
 
si.connect(SIGNAL('activated(QSystemTrayIcon::ActivationReason)')) do |reason|
  case reason
    when Qt::SystemTrayIcon::Trigger
      blinking = !blinking
      si.icon  = blinking ? alt_icon : std_icon
    when Qt::SystemTrayIcon::MiddleClick:   puts 'Middle Click'
    when Qt::SystemTrayIcon::Context:       puts 'Right Click'
    when Qt::SystemTrayIcon::DoubleClick:   puts 'Double Click'
  end
end
 
app.exec