Saturday, 4 July 2009
cross platform popup notifications in gtk
Recently I've been building a cross platform microblogging system in python with gtk. I was used to using py-notify on the linux platform to give the user popup notifications, however this would obviously not work on windows. I experiemented with the balloon notifications that windows has, but felt they were a bit limiting (no way to add images easily, and to be frank, interacting with the win32api was giving me suicidal tendencies.
I've created a simple class, gtkPopupNotify to deal with these things and it's available at github. Using it is simple:
notifier = gtk.PopupNotify.NotificationStack(timeout=6) notifier.new_popup(title="Sample popup", message="This is a popup", image="exclamation.png")
Colours, positioning etc. can all be set via the object properties and will affect all popups created afterwards, eg.
notifier.bg_color = gtk.gdk.Color("green")
Current problems: Not sure how to check for panel placement so the popup doesn't cover a users panel. On many systems I could use:
notifier.edge_offset_y = 30
but obviously this isn't very portable. Suggestions welcome!