1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#!/usr/bin/python
################################################################################
##3456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
## 10 20 30 40 50 60 70 80
##
## Info:
## Example of how to use libnotify correctly
##
## Run:
## chmod +x interactive-notification.py
## ./interactive-notification.py
##
## Copyright 2013 Canonical Ltd.
##
## Author:
## Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
##
## This program is free software: you can redistribute it and/or modify it
## under the terms of the GNU General Public License version 3, as published
## by the Free Software Foundation.
##
## This program is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranties of
## MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
## PURPOSE. See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program. If not, see <http://www.gnu.org/licenses/>.
##
################################################################################
import os
import sys
import pynotify
import gobject
import example
def action_callback (notification, action):
if action == "action_id":
print "Triggering action"
else:
print "That should not have happened (action_id)!"
def pushNotification (icon, value):
n = pynotify.Notification ("Interactive notification",
"Click this notification to trigger the attached action.",
icon);
n.set_hint_string ("x-canonical-switch-to-application", value);
n.set_hint_string ("x-canonical-secondary-icon", "message");
n.add_action ("action_id", "dummy", action_callback);
return n
if __name__ == '__main__':
if not pynotify.init ("interactive-notification"):
sys.exit (1)
# call this so we can savely use capabilities dictionary later
example.initCaps ()
# show what's supported
example.printCaps ()
# try the icon-summary-body case
loop = gobject.MainLoop ()
n = pushNotification (os.getcwd() + "/assets/avatar4.jpg", "true")
n.connect ("closed", example.closedHandler, loop)
n.show ()
loop.run ()
|