|
379.1.3
by Ken VanDine
* Added python bindings |
1 |
#!/usr/bin/env python
|
2 |
#
|
|
3 |
#Copyright 2009 Canonical Ltd.
|
|
4 |
#
|
|
5 |
#Authors:
|
|
6 |
# Eitan Isaacson <eitan@ascender.com>
|
|
7 |
#
|
|
8 |
#This program is free software: you can redistribute it and/or modify it
|
|
9 |
#under the terms of either or both of the following licenses:
|
|
10 |
#
|
|
11 |
#1) the GNU Lesser General Public License version 3, as published by the
|
|
12 |
#Free Software Foundation; and/or
|
|
13 |
#2) the GNU Lesser General Public License version 2.1, as published by
|
|
14 |
#the Free Software Foundation.
|
|
15 |
#
|
|
16 |
#This program is distributed in the hope that it will be useful, but
|
|
17 |
#WITHOUT ANY WARRANTY; without even the implied warranties of
|
|
18 |
#MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
|
|
19 |
#PURPOSE. See the applicable version of the GNU Lesser General Public
|
|
20 |
#License for more details.
|
|
21 |
#
|
|
22 |
#You should have received a copy of both the GNU Lesser General Public
|
|
23 |
#License version 3 and version 2.1 along with this program. If not, see
|
|
24 |
#<http://www.gnu.org/licenses/>
|
|
25 |
#
|
|
26 |
||
27 |
import indicate |
|
28 |
import gobject |
|
29 |
import gtk |
|
30 |
from time import time |
|
31 |
||
32 |
PATHA = "/usr/share/icons/hicolor/16x16/apps/empathy.png" |
|
33 |
PATHB = "/usr/share/icons/hicolor/22x22/apps/empathy.png" |
|
34 |
lastpath = None |
|
35 |
||
36 |
def timeout_cb(indicator): |
|
37 |
print "Modifying properties" |
|
38 |
global lastpath |
|
39 |
indicator.set_property_time("time", time()) |
|
40 |
if lastpath == PATHA: |
|
41 |
lastpath = PATHB |
|
42 |
else: |
|
43 |
lastpath = PATHA |
|
44 |
||
45 |
pixbuf = gtk.gdk.pixbuf_new_from_file(lastpath) |
|
46 |
||
47 |
indicator.set_property_icon("icon", pixbuf) |
|
48 |
||
49 |
return True |
|
50 |
||
51 |
def display(indicator, timestamp): |
|
52 |
print "Ah, my indicator has been displayed" |
|
53 |
||
54 |
def server_display(server, timestamp): |
|
55 |
print "Ah, my server has been displayed" |
|
56 |
||
57 |
||
58 |
if __name__ == "__main__": |
|
59 |
server = indicate.indicate_server_ref_default() |
|
60 |
server.set_type("message.im") |
|
61 |
server.set_desktop_file("/usr/share/applications/empathy.desktop") |
|
62 |
server.connect("server-display", server_display) |
|
63 |
||
64 |
indicator = indicate.Indicator() |
|
65 |
indicator.set_property("name", "IM Client Test") |
|
66 |
indicator.set_property_time("time", time()) |
|
67 |
indicator.show() |
|
68 |
||
69 |
indicator.connect("user-display", display) |
|
70 |
||
71 |
gobject.timeout_add_seconds(5, timeout_cb, indicator) |
|
72 |
||
73 |
gtk.main() |