diff lisp/battery.el @ 94449:a96dda54aef3

(battery-status-function): Use w32-battery-status on Windows. (battery-echo-area-format): Make apm format the general case. (battery-mode-line-format): Merge apm and pmset formats as the general case.
author Jason Rumney <jasonr@gnu.org>
date Tue, 29 Apr 2008 00:58:55 +0000
parents ba8704a0f1e5
children ee5932bf781d
line wrap: on
line diff
--- a/lisp/battery.el	Tue Apr 29 00:51:07 2008 +0000
+++ b/lisp/battery.el	Tue Apr 29 00:58:55 2008 +0000
@@ -25,10 +25,11 @@
 
 ;;; Commentary:
 
-;; There is at present support for GNU/Linux and OS X.  This library
-;; supports both the `/proc/apm' file format of Linux version 1.3.58
-;; or newer and the `/proc/acpi/' directory structure of Linux 2.4.20
-;; and 2.6.  Darwin (OS X) is supported by using the `pmset' program.
+;; There is at present support for GNU/Linux, OS X and Windows.  This
+;; library supports both the `/proc/apm' file format of Linux version
+;; 1.3.58 or newer and the `/proc/acpi/' directory structure of Linux
+;; 2.4.20 and 2.6.  Darwin (OS X) is supported by using the `pmset'
+;; program.  Windows is supported by the GetSystemPowerStatus API call.
 
 ;;; Code:
 
@@ -54,7 +55,9 @@
 		    (and (eq (call-process "pmset" nil t nil "-g" "ps") 0)
 			 (> (buffer-size) 0)))
 		(error nil)))
-	 'battery-pmset))
+	 'battery-pmset)
+	((eq system-type 'windows-nt)
+	 'w32-battery-status))
   "*Function for getting battery status information.
 The function has to return an alist of conversion definitions.
 Its cons cells are of the form
@@ -67,12 +70,12 @@
   :group 'battery)
 
 (defcustom battery-echo-area-format
-  (cond ((eq battery-status-function 'battery-linux-proc-apm)
-	 "Power %L, battery %B (%p%% load, remaining time %t)")
-	((eq battery-status-function 'battery-linux-proc-acpi)
+  (cond ((eq battery-status-function 'battery-linux-proc-acpi)
 	 "Power %L, battery %B at %r (%p%% load, remaining time %t)")
 	((eq battery-status-function 'battery-pmset)
-	 "%L power, battery %B (%p%% load, remaining time %t)"))
+	 "%L power, battery %B (%p%% load, remaining time %t)")
+	(battery-status-function
+	 "Power %L, battery %B (%p%% load, remaining time %t)"))
   "*Control string formatting the string to display in the echo area.
 Ordinary characters in the control string are printed as-is, while
 conversion specifications introduced by a `%' character in the control
@@ -97,11 +100,9 @@
 ;;;###autoload (put 'battery-mode-line-string 'risky-local-variable t)
 
 (defcustom battery-mode-line-format
-  (cond ((eq battery-status-function 'battery-linux-proc-apm)
-	 "[%b%p%%]")
-	((eq battery-status-function 'battery-linux-proc-acpi)
+  (cond ((eq battery-status-function 'battery-linux-proc-acpi)
 	 "[%b%p%%,%d°C]")
-	((eq battery-status-function 'battery-pmset)
+	(battery-status-function
 	 "[%b%p%%]"))
   "*Control string formatting the string to display in the mode line.
 Ordinary characters in the control string are printed as-is, while