# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import sys
-import gtk
+from gettext import gettext as _
+import gtk, gobject
import zavai
class Zavai(gtk.Window, zavai.Resource):
super(Zavai, self).__init__()
self.registry = registry
self.current = None
- self.show_widget("menu.main")
+ self.activate_resource("menu.main")
- def show_widget(self, name):
+ def activate_resource(self, name):
+ widget = self.registry.resource(name)
+ if widget is None:
+ widget = self.registry.resource("menu.main")
+ if isinstance(widget, gtk.Action):
+ widget.activate()
+ else:
+ self.show_widget(name, widget)
+
+ def show_widget(self, name, widget):
# Remove the current widget.
# If it is an Applet, stop it
if self.current is not None:
self.current = None
# Add the new widget. If it is an applet, start it
- widget = self.registry.resource(name)
- if widget is None:
- widget = self.registry.resource("menu.main")
self.add(widget)
self.current = name
if isinstance(widget, zavai.Applet):
widget.show_all()
def run(self):
- self.fullscreen()
+ #self.fullscreen()
self.show_all()
gtk.main()
-class Applet(zavai.Resource):
- def __init__(self, registry, name):
+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
- def make_parent_link(self):
- return zavai.LinkButton(self.zavai_registry, zavai.get_parent(self.zavai_name), _("Back"))
+ 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)
+
+ def add(self, widget):
+ self.pack_start(widget, True, True)
def shutdown(self):
self.stop()