Trying to upload all related projects
[easy-deb-chroot] / diablo / easymer / src / usr / bin / batt-stat.py
diff --git a/diablo/easymer/src/usr/bin/batt-stat.py b/diablo/easymer/src/usr/bin/batt-stat.py
new file mode 100755 (executable)
index 0000000..d6f4898
--- /dev/null
@@ -0,0 +1,123 @@
+#! /usr/bin/env python
+
+import gobject
+import gtk
+import commands
+import string
+from xpm import PB
+
+class BattStat():
+    def __init__(self):
+        self.i = 5
+        self.statusIcon = gtk.StatusIcon()
+        self.statusIcon.connect('activate', self.on_activate)
+        gobject.timeout_add(30000, self.chkbatt)
+        self.pbs = PB()
+        self.chkbatt()
+        gobject.timeout_add(30000, self.chkbatt)
+
+    def on_activate(self, si):
+        self.clicked_icon()
+
+    def chkbatt(self):
+        btRem=commands.getoutput("battery-status | cut -d' ' -f4")
+        if string.find(btRem,'%') > 0:
+          ibtRem = int(round(float(string.replace(btRem,'%','')) / 20,0))
+          self.i = ibtRem
+        else:
+          self.i = 5
+        print 'battery level: ' + str(self.i) + '/5 (' + btRem + ')'
+        pb = gtk.gdk.pixbuf_new_from_xpm_data(self.pbs.get_pixbuf(self.i))
+        self.statusIcon.set_from_pixbuf(pb)
+        if not self.i:
+            self.statusIcon.set_blinking(True)
+            self.let_them_know()
+        # self.i -= 1
+        return self.i >= 0
+
+    def clicked_icon(self):
+        btRem=commands.getoutput("battery-status | cut -d' ' -f4")
+        if string.find(btRem,'%') > 0:
+          ibtRem = int(round(float(string.replace(btRem,'%','')) / 20,0))
+          self.i = ibtRem
+        else:
+          self.i = 5
+        str1='Battery level: ' + str(self.i) + '/5 \n' \
+        +'(Actual value: ' + btRem + ')'
+        w = gtk.Window()
+        w.set_title('Battery Status')
+        w.connect('destroy', self.on_ok_clicked, w)
+        w.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+
+        l1 = gtk.Label(str1)
+        #l2 = gtk.Label(str2)
+        hboxu = gtk.HBox(True, 0)
+        hboxu.pack_start(l1, False, False, 10)
+        #hboxu.pack_start(l2, False, False, 10)
+
+        b = gtk.Button('OK', gtk.STOCK_OK)
+        b.connect('clicked', self.on_ok_clicked, w)
+        bq = gtk.Button('Quit', gtk.STOCK_QUIT)
+        bq.connect('clicked', gtk.main_quit)
+        hboxd = gtk.HBox(True, 0)
+        hboxd.pack_start(b, False, False, 0)
+        hboxd.pack_start(bq, False, False, 0)
+
+        vbox = gtk.VBox(False, 0)
+        vbox.pack_start(hboxu, False, False, 20)
+        vbox.pack_start(hboxd, False, False, 20)
+        w.add(vbox)
+
+        w.show_all() 
+
+    def let_them_know(self):
+        w = gtk.Window()
+        w.set_title('Battery Warning')
+        w.connect('destroy', self.on_ok_clicked, w)
+        w.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+
+        str1 = 'Battery is empty!'
+        str2 = ''
+        l1 = gtk.Label(str1)
+        l2 = gtk.Label(str2)
+        hboxu = gtk.HBox(True, 0)
+        hboxu.pack_start(l1, False, False, 10)
+        hboxu.pack_start(l2, False, False, 10)
+
+        b = gtk.Button('OK', gtk.STOCK_OK)
+        b.connect('clicked', self.on_ok_clicked, w)
+        hboxd = gtk.HBox(True, 0)
+        hboxd.pack_start(b, False, False, 0)
+
+        vbox = gtk.VBox(False, 0)
+        vbox.pack_start(hboxu, False, False, 20)
+        vbox.pack_start(hboxd, False, False, 20)
+        w.add(vbox)
+
+        w.show_all() 
+
+    def on_ok_clicked(self, button, window):
+        window.hide()
+
+#gStatusIcon.connect('activate', on_si_activate)
+
+#def drain():
+#    global gI, gPB, gStatusIcon
+#    pb = gtk.gdk.pixbuf_new_from_xpm_data(gPB.get_pixbuf(gI))
+#    gStatusIcon.set_from_pixbuf(pb)
+#    gI -= 1
+#    return gI >= 0
+
+#drain()
+#gobject.timeout_add(3000, drain)
+
+#pbs = PB()
+#pb = gtk.gdk.pixbuf_new_from_xpm_data(pbs.get_pixbuf(5))
+#si.set_from_stock(gtk.STOCK_FIND)
+#si.set_from_file(bs[5]+'.xpm')
+#si.set_from_pixbuf(pb)
+#si.set_blinking(True)
+
+if __name__ == "__main__":
+    tbd = BattStat()
+    gtk.main()