screenlets.services.ScreenletService

Package screenlets :: Module services :: Class ScreenletService |
[hide private]
[frames] | no frames]

# Class ScreenletService

source code

                object --+
                         |
    dbus.service.Interface --+
                             |
           dbus.service.Object --+
                                 |
                                ScreenletService

The ScreenletService contains the boilerplate code for creating new dbus-objects for Screenlets. Subclasses can easily implement new functions to allow controlling and managing Screenlets through DBus in any way imaginable. This class should implement the default actions available for all screenlets - add, delete, get, set, (move?)

Nested Classes | [hide private]
Inherited from `dbus.service.Interface`: `__metaclass__`

Instance Methods | [hide private]
__init__(self, screenlet, name, id=None) Constructor. Either conn or bus_name is required; object_path is also required. | source code
test(self) | source code
debug(self, string) Dump a string to the console. | source code
add(self, id) Ask the assigned Screenlet to add a new instance of itself to its session. | source code
get(self, id, attrib) Ask the assigned Screenlet to return the given attribute's value. | source code
get_first_instance(self) Get the ID of the first existing instance of the assigned Screenlet (within the screenlet's active session). | source code
list_instances(self) Return a list with IDs of all existing instances of the assigned Screenlet (within the screenlet's active session). | source code
quit(self) Quit all instances of the screenlet. | source code
set(self, id, attrib, value) Ask the assigned Screenlet to set the given attribute to 'value'. | source code
instance_added(self, *args, **keywords) This signal gets emitted whenever a new instance of the assigned Screenlet gets added. |
instance_removed(self, *args, **keywords) This signal gets emitted whenever an instance of the assigned Screenlet gets removed. |
Inherited from `dbus.service.Object`: `Introspect`, `__repr__`, `__str__`, `add_to_connection`, `remove_from_connection` Inherited from `dbus.service.Object` (private): `_message_cb`, `_unregister_cb` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Class Variables | [hide private]
| BUS = ``'``org.screenlets``'``
| PATH = ``'``/org/screenlets/``'``
| IFACE = ``'``org.screenlets.ScreenletService``'``
Inherited from `dbus.service.Object`: `SUPPORTS_MULTIPLE_CONNECTIONS`, `SUPPORTS_MULTIPLE_OBJECT_PATHS` Inherited from `dbus.service.Interface` (private): `_dbus_class_table`

Instance Variables | [hide private]
Inherited from `dbus.service.Object` (private): `_connection`, `_fallback`, `_locations`, `_locations_lock`, `_object_path`

Properties | [hide private]
Inherited from `dbus.service.Object`: `__dbus_object_path__`, `connection`, `locations` Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, screenlet, name, id=None) (Constructor) | source code
Constructor. Either conn or bus_name is required; object_path is also required. Parameters: `conn` - The connection on which to export this object. If None, use the Bus associated with the given `bus_name`. If there is no `bus_name` either, the object is not initially available on any Connection. For backwards compatibility, if an instance of dbus.service.BusName is passed as the first parameter, this is equivalent to passing its associated Bus as `conn`, and passing the BusName itself as `bus_name`. `object_path` - A D-Bus object path at which to make this Object available immediately. If this is not None, a `conn` or `bus_name` must also be provided. `bus_name` - Represents a well-known name claimed by this process. A reference to the BusName object will be held by this Object, preventing the name from being released during this Object's lifetime (unless it's released manually). Overrides: object.__init__ (inherited documentation)

### test(self) | source code
Decorators: `@action(IFACE)`

### debug(self, string) | source code
Dump a string to the console. Decorators: `@action(IFACE)`

### add(self, id) | source code
Ask the assigned Screenlet to add a new instance of itself to its session. The new Screenlet will have the ID defined by 'id'. The ID of the new instance is returned, so you can auto-generate an ID by passing an empty string. The function returns None if adding a new instance failed for some reason. Decorators: `@action(IFACE)`

### get(self, id, attrib) | source code
Ask the assigned Screenlet to return the given attribute's value. If 'id' is defined, the instance with the given id will be accessed, else the main instance is used. Protected attributes are not returned by this function. TODO: Throw exception on error? ... could be abused to crash the app Decorators: `@action(IFACE)`

### get_first_instance(self) | source code
Get the ID of the first existing instance of the assigned Screenlet (within the screenlet's active session). Decorators: `@action(IFACE)`

### list_instances(self) | source code
Return a list with IDs of all existing instances of the assigned Screenlet (within the screenlet's active session). Decorators: `@action(IFACE)`

### quit(self) | source code
Quit all instances of the screenlet. Similar to selecting Quit from the menu. Decorators: `@action(IFACE)`

### set(self, id, attrib, value) | source code
Ask the assigned Screenlet to set the given attribute to 'value'. The instance with the given id will be accessed. Decorators: `@action(IFACE)`

### instance_added(self, *args, **keywords) |
This signal gets emitted whenever a new instance of the assigned Screenlet gets added. Decorators: `@signal(IFACE)`

### instance_removed(self, *args, **keywords) |
This signal gets emitted whenever an instance of the assigned Screenlet gets removed. Decorators: `@signal(IFACE)`