}
class SatelliteMonitor(zavai.Applet):
- def __init__(self, registry, name, **kw):
- super(SatelliteMonitor, self).__init__(registry, name, _("Satellite monitor"))
+ def __init__(self, registry, **kw):
+ super(SatelliteMonitor, self).__init__(registry,
+ "menu.main.gps.satellite_monitor",
+ _("Satellite monitor"))
self.gps = None
qi])
def init(conf = None, registry = None, **kw):
- name = "menu.main.gps.satellite_monitor"
- registry.register(name, SatelliteMonitor(registry, name))
+ registry.register(SatelliteMonitor(registry))
import zavai
class Useless(zavai.Applet):
- def __init__(self, registry, name, **kw):
- zavai.Applet.__init__(self, registry, name, _("Useless"))
+ def __init__(self, registry, **kw):
+ zavai.Applet.__init__(self, registry, "menu.main.debug.useless", _("Useless"))
self.add(gtk.Label(_("This has no use")))
-class Quitter(zavai.Applet):
- def __init__(self, registry, name, **kw):
- zavai.Applet.__init__(self, registry, name, _("Quit"))
- self.add(gtk.Label(_("Shutting down...")))
+class Quitter(gtk.Action):
+ def __init__(self, **kw):
+ super(Quitter, self).__init__("menu.main.debug.quit", _("Quit"), None, None)
- def start(self, *args):
- gtk.main_quit()
+ self.connect("activate", gtk.main_quit)
def init(conf = None, registry = None, **kw):
- name = "menu.main.debug.useless"
- registry.register(name, Useless(registry, name))
- name = "menu.main.debug.quit"
- registry.register(name, Quitter(registry, name))
+ registry.register(Useless(registry))
+ registry.register(Quitter())
registry = zavai.Registry()
# Register main factories
-registry.register("dbus.system_bus", dbus_system_bus)
-registry.register("conf", conf)
-registry.register_factory("app", zavai.Zavai)
-registry.register_factory("gps", zavai.GPS)
+registry.register(dbus_system_bus, "dbus.system_bus")
+registry.register(conf, "conf")
+registry.register_factory(zavai.Zavai, "app")
+registry.register_factory(zavai.GPS, "gps")
# Load plugins
zavai.info("Loading plugins")
gtk.main()
class Applet(gtk.VBox):
+ name = gobject.property(type=str)
label = gobject.property(type=str)
def __init__(self, registry, name, label = None):
super(Applet, self).__init__()
+
self.zavai_registry = registry
- self.zavai_name = name
+
+ self.props.name = name
if label is None:
self.props.label = zavai.default_label(name)
else:
self.props.label = label
+
self.back_link = zavai.LinkButton(registry, zavai.get_parent(name), _("Back"))
self.pack_end(self.back_link, False, False)
self.objects = dict()
self.labels = dict()
- def register(self, name, obj):
+ def register(self, obj, name=None):
"""Register an object at the given path.
Name the path to this object, like "menu.gps.monitor".
"""
+ if name is None:
+ name = obj.props.name
+
if name in self.objects:
return KeyError("%s is already registered", name)
zavai.info("Registering", name)
if name.startswith("menu."):
self.add_to_menu(name)
- def register_factory(self, name, fac, label = None):
+ def register_factory(self, fac, name, label = None):
"""Register an object factory at the given path.
Name the path to this object, like "menu.gps.monitor".
parent = get_parent(name)
res = zavai.Menu(self, name, parent)
- self.register(name, res)
+ self.register(res, name)
return res
def shutdown(self):