#! /usr/bin/python
# -*- coding: utf-8 -*-

import sys
import os
try:
  import pygtk
  pygtk.require("2.0")
except:
  pass
try:
  import gtk
except:
  print >> sys.stderr, "Error: PyGTK is not installed"
  sys.exit(1)
if gtk.pygtk_version < (2,10,0):
  errtitle = "Error"
  errmsg = "PyGTK >= 2.10.0 required"
  if gtk.pygtk_version < (2,4,0):
    print >> sys.stderr, errtitle + ": " + errmsg
  else:
    errdlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_OK)
    errdlg.set_title(errtitle)
    errdlg.set_markup(errmsg)
    errdlg.run()
  sys.exit(1)


class TrayMenu(gtk.Menu):
  def __init__(self):
    gtk.Menu.__init__(self)

    # 終了
    self.item_quit = gtk.ImageMenuItem(stock_id=gtk.STOCK_QUIT)
    self.item_quit.connect('activate', self.quit_activate)
    self.append(self.item_quit)

    # 表示可能にする
    self.show_all()

  def show_menu(self, widget, event):
    self.popup(None, None, None, event.button, event.time)

  def quit_activate(self, widget):
    gtk.main_quit()

class TestWindow(gtk.Window):
  def __init__(self):
    gtk.Window.__init__(self)

    self.connect('delete-event', self.on_delete_event)

    ebox = gtk.EventBox()
    self.add(ebox)

    img = gtk.Image()
    img.set_from_file('hd.png')
    ebox.add(img)

    menu = TrayMenu()
    self.connect('button-release-event', menu.show_menu)

  def on_delete_event(self, widget, event):
    gtk.main_quit()

if __name__ == "__main__":
  win = TestWindow()
  win.show_all()

  gtk.main()
