Overall roles and operation of the activity classes.
Note on return value for factory service.
This commit is contained in:
parent
879ef9b0e0
commit
2ca12e9da2
@ -0,0 +1,47 @@
|
|||||||
|
"""Activity implementation code for Sugar-based activities
|
||||||
|
|
||||||
|
Each activity within the OLPC environment must provide two
|
||||||
|
dbus services. The first, patterned after the
|
||||||
|
|
||||||
|
sugar.activity.activityfactory.ActivityFactory
|
||||||
|
|
||||||
|
class is responsible for providing a "create" method which
|
||||||
|
takes a small dictionary with values corresponding to a
|
||||||
|
|
||||||
|
sugar.activity.activityhandle.ActivityHandle
|
||||||
|
|
||||||
|
describing an individual instance of the activity. The
|
||||||
|
ActivityFactory service is registered with dbus using the
|
||||||
|
global
|
||||||
|
|
||||||
|
sugar.activity.bundleregistry.BundleRegistry
|
||||||
|
|
||||||
|
service, which creates dbus .service files in a well known
|
||||||
|
directory. Those files tell dbus what executable to run
|
||||||
|
in order to load the ActivityFactory which will provide
|
||||||
|
the creation service.
|
||||||
|
|
||||||
|
Each activity so registered is described by a
|
||||||
|
|
||||||
|
sugar.activity.bundle.Bundle
|
||||||
|
|
||||||
|
instance, which parses a specially formatted activity.info
|
||||||
|
file (stored in the activity directory's ./activity
|
||||||
|
subdirectory). The
|
||||||
|
|
||||||
|
sugar.activity.bundlebuilder
|
||||||
|
|
||||||
|
module provides facilities for the standard setup.py module
|
||||||
|
which produces and registers bundles from activity source
|
||||||
|
directories.
|
||||||
|
|
||||||
|
Once instantiated by the ActivityFactory's create method,
|
||||||
|
each activity must provide an introspection API patterned
|
||||||
|
after the
|
||||||
|
|
||||||
|
sugar.activity.activityservice.ActivityService
|
||||||
|
|
||||||
|
class. This class allows for querying the ID of the root
|
||||||
|
window, requesting sharing across the network, and basic
|
||||||
|
"what type of application are you" queries.
|
||||||
|
"""
|
@ -99,6 +99,8 @@ class ActivityFactoryService(dbus.service.Object):
|
|||||||
handle -- sugar.activity.activityhandle.ActivityHandle
|
handle -- sugar.activity.activityhandle.ActivityHandle
|
||||||
compatible dictionary providing the instance-specific
|
compatible dictionary providing the instance-specific
|
||||||
values for the new instance
|
values for the new instance
|
||||||
|
|
||||||
|
returns xid for the created instance' root window
|
||||||
"""
|
"""
|
||||||
activity_handle = activityhandle.create_from_dict(handle)
|
activity_handle = activityhandle.create_from_dict(handle)
|
||||||
activity = self._constructor(activity_handle)
|
activity = self._constructor(activity_handle)
|
||||||
|
Loading…
Reference in New Issue
Block a user