~jconti/recent-notifications/trunk

« back to all changes in this revision

Viewing changes to appindicator-test.py

  • Committer: Jason Conti
  • Date: 2010-08-16 21:15:37 UTC
  • Revision ID: jason.conti@gmail.com-20100816211537-ee3ncrkeagw04zze
Adding an experimental, hacked-together appindicator version of recent notifications. Currently adds an icon to the indicator applet showing the last 5 message summaries, and an inactive Show Message Window menu item.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""
 
2
appindicator-test.py
 
3
August 16, 2010
 
4
"""
 
5
 
 
6
import appindicator
 
7
import gtk
 
8
 
 
9
from recent_notifications.Notification import Notification
 
10
 
 
11
main_menu = None
 
12
indicator = None
 
13
message_items = []
 
14
 
 
15
def on_message_received(monitor, message):
 
16
  global main_menu
 
17
  global indicator
 
18
  if len(message_items) >= 5:
 
19
    last_item = message_items.pop()
 
20
    main_menu.remove(last_item)
 
21
    last_item.destroy()
 
22
  main_menu.prepend(gtk.SeparatorMenuItem())
 
23
  current_item = gtk.MenuItem(message.summary)
 
24
  main_menu.prepend(current_item)
 
25
  message_items.insert(0, current_item)
 
26
  main_menu.show_all()
 
27
  indicator.set_menu(main_menu)
 
28
 
 
29
def main():
 
30
  global main_menu
 
31
  global indicator
 
32
  main_menu = gtk.Menu()
 
33
  main_menu.add(gtk.MenuItem("Show Message Window"))
 
34
  main_menu.show_all()
 
35
  main_menu.set_take_focus(False)
 
36
  indicator = appindicator.Indicator("test", "humanity-notification-read", appindicator.CATEGORY_OTHER)
 
37
  indicator.set_status(appindicator.STATUS_ACTIVE)
 
38
  indicator.set_menu(main_menu)
 
39
  notify = Notification()
 
40
  notify.connect("message-received", on_message_received)
 
41
  gtk.main()
 
42
 
 
43
if __name__ == '__main__':
 
44
  main()