3
# This is an example of accessing the new ScreenletService. It can be used
4
# to access signals and methods within a Screenlet from other applications or
7
# import services-module
8
import screenlets.services
10
# check for Clock-service
11
if not screenlets.services.service_is_running('Clock'):
12
print "Clock-service not found. Pleaselaunch the ClockScreenlet first."
14
# get general interface for this screenlet
15
service_iface = screenlets.services.get_service_by_name('Clock')
16
# get interface to the ClockScreenlet's custom service (we need to
17
# pass the special interface for the Clock's additonal methods here)
18
clock_iface = screenlets.services.get_service_by_name('Clock',
19
interface='org.screenlets.Clock')
21
# if interface was returned,
25
# get list with instance ids
26
ids = service_iface.list_instances()
30
# id of first instance
33
# + METHDODS: remote-calling of methods in a Screenlet
34
# call testing functions
35
service_iface.debug('Hello World!')
38
#clock.set(instance_id, 'theme_name', 'tango')
39
service_iface.set(instance_id, 'x', 700)
40
service_iface.set(instance_id, 'y', 500)
42
service_iface.add('myClock')
43
service_iface.set('myClock', 'scale', 3.5)
44
service_iface.set('myClock', 'theme_name', 'tango')
45
# if clock service is available
47
# call special function of the ClockService
49
print clock_iface.get_time(instance_id)
50
print clock_iface.get_date(instance_id)
52
# + SIGNALS: connecting to signals in a screenlet
53
def handle_alarm (instance_id):
54
print "Signal received: Clock '%s' raised alarm." % (instance_id)
55
clock_iface.connect_to_signal('alarm_start', handle_alarm)
57
# start mainloop (needed to receive events)
59
mainloop = gobject.MainLoop()
63
print "Error: " + str(e)