]> git.eshelyaron.com Git - emacs.git/commitdiff
Implement battery-mode-line-limit option.
authorRichard M. Stallman <rms@gnu.org>
Mon, 27 Jun 2011 08:04:55 +0000 (04:04 -0400)
committerRichard M. Stallman <rms@gnu.org>
Mon, 27 Jun 2011 08:04:55 +0000 (04:04 -0400)
lisp/ChangeLog
lisp/battery.el

index 3fcb5e59fc6d989ce983eb979f1abf5ef3c5e80e..c7fb8fcd0698f80d9f2ef45a6d1b70676123e4cd 100644 (file)
@@ -1,5 +1,8 @@
 2011-06-27  Richard Stallman  <rms@gnu.org>
 
+       * battery.el (battery-mode-line-limit): New variable.
+       (battery-update): Handle it.
+
        * mail/rmailmm.el (rmail-mime-process-multipart):
        Handle truncated messages.
 
index 9afe9de7b983a09b557acd599f969c37f88ec700..d7d3045fa581725f0494c977e50e64adfe1515ae 100644 (file)
@@ -102,6 +102,11 @@ string are substituted as defined by the current value of the variable
   "String to display in the mode line.")
 ;;;###autoload (put 'battery-mode-line-string 'risky-local-variable t)
 
+(defcustom battery-mode-line-limit 100
+  "Percentage of full battery load below which display battery status"
+  :type 'integer
+  :group 'battery)
+
 (defcustom battery-mode-line-format
   (cond ((eq battery-status-function 'battery-linux-proc-acpi)
         "[%b%p%%,%d°C]")
@@ -182,16 +187,21 @@ seconds."
 
 (defun battery-update ()
   "Update battery status information in the mode line."
-  (setq battery-mode-line-string
-       (propertize (if (and battery-mode-line-format
-                            battery-status-function)
-                       (battery-format
-                        battery-mode-line-format
-                        (funcall battery-status-function))
-                     "")
-                   'help-echo "Battery status information"))
+  (let ((data (and battery-status-function (funcall battery-status-function))))
+    (setq battery-mode-line-string
+         (propertize (if (and battery-mode-line-format
+                              (<= (car (read-from-string (cdr (assq ?p data))))
+                                  battery-mode-line-limit))
+                         (battery-format
+                          battery-mode-line-format
+                          data)
+                       "")
+                     'face
+                     (and (<= (car (read-from-string (cdr (assq ?p data))))
+                                  battery-load-critical)
+                          'font-lock-warning-face)
+                     'help-echo "Battery status information")))
   (force-mode-line-update))
-
 \f
 ;;; `/proc/apm' interface for Linux.