Get Applet label from label property
authorEnrico Zini <enrico@enricozini.org>
Mon, 15 Jun 2009 09:25:38 +0000 (17:25 +0800)
committerEnrico Zini <enrico@enricozini.org>
Mon, 15 Jun 2009 09:28:31 +0000 (17:28 +0800)
plugins/50_sat_monitor.py
plugins/99_debug.py
zavai/__init__.py
zavai/app.py
zavai/registry.py

index de173fc351dbef17eba2cde5b992f875d09d7340..8f82d1f49ea3bafd2d5d53595e374354ac1178dd 100644 (file)
@@ -34,7 +34,7 @@ SAT_QI_NAMES = {
 
 class SatelliteMonitor(zavai.Applet):
     def __init__(self, registry, name, **kw):
-        super(SatelliteMonitor, self).__init__(registry, name)
+        super(SatelliteMonitor, self).__init__(registry, name, _("Satellite monitor"))
 
         self.gps = None
 
@@ -101,4 +101,4 @@ class SatelliteMonitor(zavai.Applet):
 
 def init(conf = None, registry = None, **kw):
     name = "menu.main.gps.satellite_monitor"
-    registry.register(name, SatelliteMonitor(registry, name), _("Satellite monitor"))
+    registry.register(name, SatelliteMonitor(registry, name))
index ae4ab024e38db32fe0fe7ac24c5c6859c27de959..7d2f959ca667328c576ba8c383c3ce78658e99d0 100644 (file)
@@ -23,19 +23,19 @@ import zavai
 
 class Useless(zavai.Applet):
     def __init__(self, registry, name, **kw):
-        zavai.Applet.__init__(self, registry, name)
+        zavai.Applet.__init__(self, registry, name, _("Useless"))
         self.add(gtk.Label(_("This has no use")))
 
-class Quitter(gtk.Label, zavai.Applet):
+class Quitter(zavai.Applet):
     def __init__(self, registry, name, **kw):
-        zavai.Applet.__init__(self, registry, name)
-        gtk.Label.__init__(self, _("Shutting down..."))
+        zavai.Applet.__init__(self, registry, name, _("Quit"))
+        self.add(gtk.Label(_("Shutting down...")))
 
     def start(self, *args):
         gtk.main_quit()
 
 def init(conf = None, registry = None, **kw):
     name = "menu.main.debug.useless"
-    registry.register(name, Useless(registry, name), _("Useless"))
+    registry.register(name, Useless(registry, name))
     name = "menu.main.debug.quit"
-    registry.register(name, Quitter(registry, name), _("Quit"))
+    registry.register(name, Quitter(registry, name))
index 1a3b58a947cd9d4ac809e96b84de7a710459711c..97dd160384eeb8b18b807f639e7d2b993be8fbd2 100644 (file)
@@ -18,7 +18,7 @@
 
 from conf import read_config
 from plugins import load_plugins
-from registry import Registry, Resource, get_parent
+from registry import Registry, Resource, get_parent, default_label
 from menu import Menu, MenuButton, LinkButton, ToggleButton
 from app import Zavai, Applet
 from gps import GPS, GPX
index b8b3b62646d24a24cf143ebd4fd5ae4b6a3bbd3c..dfa86cc4eaac613fb45deedf86a913e3d6d2e788 100644 (file)
@@ -18,7 +18,7 @@
 
 import sys
 from gettext import gettext as _
-import gtk
+import gtk, gobject
 import zavai
 
 class Zavai(gtk.Window, zavai.Resource):
@@ -60,10 +60,16 @@ class Zavai(gtk.Window, zavai.Resource):
         gtk.main()
 
 class Applet(gtk.VBox):
-    def __init__(self, registry, name):
+    label = gobject.property(type=str)
+
+    def __init__(self, registry, name, label = None):
         super(Applet, self).__init__()
         self.zavai_registry = registry
         self.zavai_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)
 
index 2e4781ca9b5ac9fd8b4213d759282be4eef13795..cece6c738a5d27e6f15bd73b0c8b3cbcc755c9ff 100644 (file)
@@ -47,7 +47,7 @@ class Registry(object):
         self.objects = dict()
         self.labels = dict()
 
-    def register(self, name, obj, label = None):
+    def register(self, name, obj):
         """Register an object at the given path.
 
         Name the path to this object, like "menu.gps.monitor".
@@ -56,7 +56,6 @@ class Registry(object):
             return KeyError("%s is already registered", name)
         zavai.info("Registering", name)
         self.objects[name] = obj
-        if label is not None: self.labels[name] = label
 
         if name.startswith("menu."):
             self.add_to_menu(name)
@@ -105,7 +104,11 @@ class Registry(object):
         res = self.labels.get(name)
         if res is not None:
             return res
-        return default_label(name)
+        try:
+            obj = self.resource(name)
+            return obj.props.label
+        except:
+            return default_label(name)
 
     def resource(self, name):
         """Get a resource from the registry.