+class GPSOn(gtk.ToggleAction):
+ states = [_("GPS always on"), _("GPS on when needed")]
+
+ def __init__(self, registry, **kw):
+ self.state = 0
+ super(GPSOn, self).__init__("menu.main.gps.alwayson", self.states[self.state], None, None)
+
+ self.registry = registry
+ self.set_active(False)
+
+ self.connect("toggled", self.on_toggle)
+
+ def on_toggle(self, *args):
+ self.state = (self.state + 1) % len(self.states)
+ self.set_property("label", self.states[self.state])
+ if self.get_active():
+ self.start()
+ else:
+ self.stop()
+
+ def start(self):
+ self.registry.resource("gps").connect("gps", self)
+
+ def stop(self):
+ self.registry.resource("gps").disconnect("gps", self)
+