[Goodies-commits] r1938 - in xfce4-battery-plugin/trunk: panel-plugin po
Nick Schermer
nick at xfce.org
Sat Sep 2 18:10:55 CEST 2006
Author: nick
Date: 2006-09-02 16:10:54 +0000 (Sat, 02 Sep 2006)
New Revision: 1938
Added:
xfce4-battery-plugin/trunk/po/LINGUAS
xfce4-battery-plugin/trunk/po/xfce4-battery-plugin.pot
Modified:
xfce4-battery-plugin/trunk/panel-plugin/battmon.c
xfce4-battery-plugin/trunk/panel-plugin/libacpi.c
xfce4-battery-plugin/trunk/po/cs.po
Log:
2005-09-01 14:0 nick
* Bumped version to 0.4.90.2 for realease.
2005-09-01 13:30 nick
* panel-plugin/battmon.c, panel-plugin/libacpi.c: Applied patches (or
parts of it) from Bug #1261, Bug #1475
* panel-plugin/battmon.c, panel-plugin/libacpi.c: NetBSD patch from
Stefan Sperling <stsp at stsp.in-berlin.de>
2005-09-01 12:11 nick
* configure.ac, autogen.sh, po/LINGUAS: Switch to linguas support,
rename configure.in to configure.in.in
* po/xfce4-battery-plugin.pot: Addded file
* po/*.po: Regenerated po files
2005-09-01 11:33 nick
* panel-plugin/libacpi.c: Apply patch from Giuseppe Ciotta to
remove hardcoded battery paths.
* panel-plugin/battmon.c: Fix crash when adding the plugin.
* panel-plugin/battmon.c: Fix plugin resize problem (bug #1791)
* panel-plugin/battmon.c: Improved icon loading and try to load the
battery icon from your current theme (fallback on buildin icon).
* panel-plugin/battmon.c: Initially hide the icon when building the
plugin (this stops the icon from flashing if disabled).
* panel-plugin/battmon.c: Remove the time label from "display percentage"
and add a new option "Display time".
* panel-plugin/battmon.c: Fix label alignment if only 1 "option" is shown
in a vbox.
* panel-plugin/battmon.c, configure.ac: Use new titled dialog and depend on
beta 2.
* panel-plugin/battmon.c: Couple of small fixes, improvement, memleaks etc.
Modified: xfce4-battery-plugin/trunk/panel-plugin/battmon.c
===================================================================
--- xfce4-battery-plugin/trunk/panel-plugin/battmon.c 2006-09-02 16:09:21 UTC (rev 1937)
+++ xfce4-battery-plugin/trunk/panel-plugin/battmon.c 2006-09-02 16:10:54 UTC (rev 1938)
@@ -35,6 +35,11 @@
#elif __OpenBSD__
#include <sys/param.h>
#include <machine/apmvar.h>
+#elif __NetBSD__
+#include <sys/param.h>
+#include <sys/ioctl.h>
+#include <machine/apmvar.h>
+#define APMDEVICE "/dev/apm"
#elif __linux__
#include <apm.h>
#endif
@@ -55,10 +60,10 @@
#include "battery.h"
#include "libacpi.h"
-#define BORDER 8
-#define HIGH_COLOR "#00ff00"
-#define LOW_COLOR "#ffff00"
-#define CRITICAL_COLOR "#ff0000"
+#define BORDER 8
+#define HIGH_COLOR "#00ff00"
+#define LOW_COLOR "#ffff00"
+#define CRITICAL_COLOR "#ff0000"
typedef struct
{
@@ -66,6 +71,7 @@
gboolean display_icon; /* Options */
gboolean display_power; /* Options */
gboolean display_percentage; /* Options */
+ gboolean display_time;
gboolean tooltip_display_percentage;
gboolean tooltip_display_time;
int low_percentage;
@@ -81,7 +87,7 @@
typedef struct
{
XfcePanelPlugin *plugin;
-
+
GtkTooltips *tips;
GtkWidget *vbox; /* Widgets */
GtkWidget *ebox;
@@ -108,6 +114,7 @@
GtkWidget *cb_disp_power;
GtkWidget *cb_disp_label;
GtkWidget *cb_disp_percentage;
+ GtkWidget *cb_disp_time;
GtkWidget *cb_disp_tooltip_percentage;
GtkWidget *cb_disp_tooltip_time;
GtkWidget *cb_disp_icon;
@@ -130,7 +137,8 @@
options->display_icon = FALSE;
options->display_label = FALSE;
options->display_power = FALSE;
- options->display_percentage = FALSE;
+ options->display_percentage = TRUE;
+ options->display_time = FALSE;
options->tooltip_display_percentage = FALSE;
options->tooltip_display_time = FALSE;
options->low_percentage = 10;
@@ -146,21 +154,15 @@
gboolean
detect_battery_info(t_battmon *battmon)
{
-#ifdef __OpenBSD__
- struct apm_power_info apm;
-#else
- struct apm_info apm;
-#endif
-
#ifdef __FreeBSD__
/* This is how I read the information from the APM subsystem under
FreeBSD. Each time this functions is called (once every second)
the APM device is opened, read from and then closed.
- except that is does not work on FreeBSD
-
+ except that is does not work on FreeBSD
+
*/
-
+ struct apm_info apm;
int fd;
/* First check to see if ACPI is available */
@@ -170,15 +172,15 @@
battmon->method = BM_USE_ACPI;
/* consider battery 0 first... */
for (i=0;i<batt_count;i++) {
- if (read_acpi_info(i)) break;
+ if (read_acpi_info(i)) break;
}
for (i=0;i<batt_count;i++) {
- if (read_acpi_state(i)) break;
+ if (read_acpi_state(i)) break;
}
/*read_acpi_state(0);*/ /* only consider first battery... */
-#ifdef DEBUG
- printf("using ACPI\n");
-#endif
+
+ DBG ("using ACPI");
+
return TRUE;
}
@@ -187,40 +189,47 @@
fd = open(APMDEVICE, O_RDONLY);
if (fd == -1) return FALSE;
- if (ioctl(fd, APMIO_GETINFO, &apm) == -1)
- return FALSE;
-
+ if (ioctl(fd, APMIO_GETINFO, &apm) == -1) {
+ close(fd);
+ return FALSE;
+ }
close(fd);
battmon->method = BM_USE_APM;
#endif
return TRUE;
-#elif __OpenBSD__
+#elif defined(__OpenBSD__) || defined(__NetBSD__)
/* Code for OpenBSD by Joe Ammond <jra at twinight.org>. Using the same
procedure as for FreeBSD.
+ Made to work on NetBSD by Stefan Sperling <stsp at stsp.in-berlin.de>
*/
+ struct apm_power_info apm;
int fd;
battmon->method = BM_BROKEN;
fd = open(APMDEVICE, O_RDONLY);
if (fd == -1) return FALSE;
- if (ioctl(fd, APM_IOC_GETPOWER, &apm) == -1)
- return FALSE;
+ + if (ioctl(fd, APM_IOC_GETPOWER, &apm) == -1) {
+ close(fd);
+ return FALSE;
+ }
close(fd);
battmon->method = BM_USE_APM;
-
+
return TRUE;
#elif __linux__
+ struct apm_info apm;
+
/* First check to see if ACPI is available */
if(check_acpi()==0) {
/* ACPI detected */
int i;
battmon->method = BM_USE_ACPI;
for (i=0;i<batt_count;i++) {
- if (read_acpi_info(i)) break;
+ if (read_acpi_info(i)) break;
}
/*read_acpi_info(0);*/ /* only consider first battery... */
for (i=0;i<batt_count;i++) {
- if (read_acpi_state(i)) break;
+ if (read_acpi_state(i)) break;
}
if (batt_count){
apm.battery_percentage=acpistate->percentage;
@@ -238,17 +247,12 @@
battmon->method = BM_BROKEN;
return FALSE;
-#endif
+#endif
}
static gboolean
update_apm_status(t_battmon *battmon)
{
-#ifdef __OpenBSD__
- struct apm_power_info apm;
-#else
- struct apm_info apm;
-#endif
int charge=0;
gboolean fan=FALSE;
const char *temp;
@@ -257,10 +261,12 @@
gchar buffer[128];
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
/* Code for OpenBSD by Joe Ammond <jra at twinight.org>. Using the same
procedure as for FreeBSD.
+ Made to work on NetBSD by Stefan Sperling <stsp at stsp.in-berlin.de>
*/
+ struct apm_power_info apm;
int fd;
battmon->method = BM_BROKEN;
@@ -272,11 +278,11 @@
charge = apm.battery_life;
time_remaining = apm.minutes_left;
acline = apm.ac_state ? TRUE : FALSE;
-
+
#else
-#ifdef DEBUG
- printf("updating battery status...\n");
-#endif
+ struct apm_info apm;
+ DBG ("Updating battery status...");
+
if(battmon->method == BM_BROKEN) {
/* See if ACPI or APM support has been enabled yet */
if(!detect_battery_info(battmon)) return TRUE;
@@ -285,12 +291,12 @@
#ifdef TURTLE_UPDATES
/* what bug? I don't see any bug here. */
if(battmon->method == BM_USE_ACPI) {
- battmon->timeoutid = g_timeout_add(60 * 1024,
+ battmon->timeoutid = g_timeout_add(60 * 1024,
(GSourceFunc) update_apm_status, battmon);
}
- else
+ else
#endif
- battmon->timeoutid = g_timeout_add(2 * 1024,
+ battmon->timeoutid = g_timeout_add(2 * 1024,
(GSourceFunc) update_apm_status, battmon);
}
@@ -298,14 +304,14 @@
if(battmon->flag) {
battmon->flag = FALSE;
g_source_remove(battmon->timeoutid);
- battmon->timeoutid = g_timeout_add(2 * 1024,
+ battmon->timeoutid = g_timeout_add(2 * 1024,
(GSourceFunc) update_apm_status, battmon);
}
if(battmon->method == BM_USE_ACPI) {
int i;
acline = read_acad_state();
for (i=0;i<batt_count;i++) {
- if (read_acpi_state(i)) break;
+ if (read_acpi_state(i)) break;
}
/*read_acpi_state(0);*/ /* only consider first battery... */
if (batt_count) {
@@ -313,7 +319,7 @@
time_remaining = acpistate->rtime;
}
}
-#ifdef __linux__
+#ifdef __linux__
else {
apm_read(&apm); /* not broken and not using ACPI, assume APM */
charge = apm.battery_percentage;
@@ -326,7 +332,7 @@
FreeBSD. Each time this functions is called (once every second)
the APM device is opened, read from and then closed.
- except it don't work with 5.x:
+ except it don't work with 5.x:
battmon.c: In function `update_apm_status':
battmon.c:241: `APMDEVICE' undeclared (first use in this function)
battmon.c:241: (Each undeclared identifier is reported only once
@@ -341,8 +347,10 @@
fd = open(APMDEVICE, O_RDONLY);
if (fd == -1) return TRUE;
- if (ioctl(fd, APMIO_GETINFO, &apm) == -1)
- return TRUE;
+ if (ioctl(fd, APMIO_GETINFO, &apm) == -1) {
+ close(fd);
+ return TRUE;
+ }
close(fd);
@@ -359,11 +367,11 @@
}
#endif
#endif
-
+
charge = CLAMP (charge, 0, 100);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(battmon->battstatus), charge / 100.0);
-
+
if(battmon->options.display_label){
gtk_widget_show((GtkWidget *)battmon->label);
} else {
@@ -375,26 +383,31 @@
} else {
gtk_widget_hide(battmon->image);
}
-
+
if(battmon->options.display_percentage){
gtk_widget_show((GtkWidget *)battmon->charge);
- gtk_widget_show((GtkWidget *)battmon->rtime);
g_snprintf(buffer, sizeof(buffer),"%d%% ", charge);
gtk_label_set_text(battmon->charge,buffer);
+ } else {
+ gtk_widget_hide((GtkWidget *)battmon->charge);
+ }
+
+ if (battmon->options.display_time){
+ gtk_widget_show((GtkWidget *)battmon->rtime);
g_snprintf(buffer, sizeof(buffer),"%02d:%02d ",time_remaining/60,time_remaining%60);
gtk_label_set_text(battmon->rtime,buffer);
+
} else {
- gtk_widget_hide((GtkWidget *)battmon->charge);
gtk_widget_hide((GtkWidget *)battmon->rtime);
}
-
+
if(acline) {
char *t=(charge<99.9)?_("(Charging from AC)"):_("(AC on-line)");
if(battmon->options.tooltip_display_percentage) {
g_snprintf(buffer, sizeof(buffer), "%d%% %s", charge,t);
}
- else
+ else
g_snprintf(buffer, sizeof(buffer), "%s",t);
}
else {
@@ -407,28 +420,40 @@
else
g_snprintf(buffer, sizeof(buffer), _("AC off-line"));
}
-
+
gtk_tooltips_set_tip (battmon->tips, battmon->ebox, buffer, NULL);
if(battmon->options.display_power){
gtk_widget_show((GtkWidget *)battmon->acfan);
gtk_widget_show((GtkWidget *)battmon->temp);
+
fan=get_fan_status();
- if(acline && fan) gtk_label_set_text(battmon->acfan,"AC FAN");
- else if(acline && !fan) gtk_label_set_text(battmon->acfan,"AC");
- else if(!acline && fan) gtk_label_set_text(battmon->acfan,"FAN");
- else gtk_label_set_text(battmon->acfan,"");
-
+ if(acline && fan)
+ gtk_label_set_text(battmon->acfan,"AC FAN");
+ else if(acline && !fan)
+ gtk_label_set_text(battmon->acfan,"AC");
+ else if(!acline && fan)
+ gtk_label_set_text(battmon->acfan,"FAN");
+ else {
+ gtk_label_set_text(battmon->acfan,"");
+ gtk_widget_hide((GtkWidget *)battmon->acfan);
+ }
+
temp=get_temperature();
- if(temp) gtk_label_set_text(battmon->temp,temp);
- else gtk_label_set_text(battmon->temp,"");
+ DBG ("Temp: %s", temp);
+ if(temp)
+ gtk_label_set_text(battmon->temp,temp);
+ else {
+ gtk_label_set_text(battmon->temp,"");
+ gtk_widget_hide((GtkWidget *)battmon->temp);
+ }
} else {
gtk_widget_hide((GtkWidget *)battmon->acfan);
gtk_widget_hide((GtkWidget *)battmon->temp);
}
-
+
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(battmon->battstatus), NULL);
-
+
/* bar colors and state flags */
if (acline) {
battmon->low = battmon->critical = FALSE;
@@ -437,11 +462,11 @@
else {
if(charge <= battmon->options.critical_percentage) {
gtk_widget_modify_bg(battmon->battstatus, GTK_STATE_PRELIGHT, &(battmon->colorC));
- }
+ }
else if(charge <= battmon->options.low_percentage) {
gtk_widget_modify_bg(battmon->battstatus, GTK_STATE_PRELIGHT, &(battmon->colorL));
battmon->critical = FALSE;
- }
+ }
else {
battmon->low = battmon->critical = FALSE;
gtk_widget_modify_bg(battmon->battstatus, GTK_STATE_PRELIGHT, &(battmon->colorH));
@@ -460,7 +485,7 @@
xfce_warn(_("WARNING: Your battery has reached critical status. You should plug in or shutdown your computer now to avoid possible data loss."));
return TRUE;
}
- if(battmon->options.action_on_critical == BM_COMMAND ||
+ if(battmon->options.action_on_critical == BM_COMMAND ||
battmon->options.action_on_critical == BM_COMMAND_TERM){
int interm=(battmon->options.action_on_critical == BM_COMMAND_TERM)?1:0;
if (!battmon->options.command_on_critical ||
@@ -486,62 +511,105 @@
return TRUE;
}
+static GdkPixbuf *
+battmon_icon (t_battmon *battmon)
+{
+ GdkPixbuf *icon;
+ GtkOrientation orientation;
+ gint width, height, size;
+ /* panel info */
+ orientation = xfce_panel_plugin_get_orientation (battmon->plugin);
+ size = xfce_panel_plugin_get_size (battmon->plugin) - 6;
+
+ /* icon size is 41x64px */
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ {
+ height = size;
+ width = height * 0.625;
+ }
+ else /* vertical */
+ {
+ width = size;
+ height = width * 1.6;
+ }
+
+ /* try to load battery icon from your current icon theme */
+ icon = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+ "battery", size , 0, NULL);
+
+ /* no icon found in your curren icon theme? Use ours! */
+ if (!icon)
+ icon = xfce_inline_icon_at_size (battery_pixbuf, width, height);
+
+ return icon;
+}
+
+
static void setup_battmon(t_battmon *battmon, GtkOrientation orientation)
-{
+{
GtkWidget *box,*vbox;
GdkPixbuf *icon;
-
+
battmon->battstatus = gtk_progress_bar_new();
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
- gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(battmon->battstatus),
+ gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(battmon->battstatus),
GTK_PROGRESS_BOTTOM_TO_TOP);
box=gtk_hbox_new(FALSE, 0);
battmon->vbox = gtk_hbox_new(FALSE, 0);
} else {
- gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(battmon->battstatus),
+ gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(battmon->battstatus),
GTK_PROGRESS_LEFT_TO_RIGHT);
box=gtk_vbox_new(FALSE, 0);
battmon->vbox = gtk_vbox_new(FALSE, 0);
}
-
+
gtk_container_set_border_width(GTK_CONTAINER(battmon->vbox), BORDER / 2);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(battmon->battstatus), 0.0);
-
-
- icon = xfce_inline_icon_at_size (battery_pixbuf, 20, 32);
- battmon->image = gtk_image_new_from_pixbuf (icon);
+
+ icon = battmon_icon (battmon);
+ if (icon)
+ {
+ battmon->image = gtk_image_new_from_pixbuf (icon);
+ g_object_unref (G_OBJECT (icon));
+ }
+ else
+ {
+ battmon->image = gtk_image_new_from_icon_name ("battery", GTK_ICON_SIZE_BUTTON);
+ }
+
gtk_box_pack_start(GTK_BOX(box),GTK_WIDGET(battmon->image), FALSE, FALSE, 2);
- g_object_unref (icon);
+ /* init hide the widget */
+ gtk_widget_hide(battmon->image);
battmon->label = (GtkLabel *)gtk_label_new(_("Battery"));
gtk_box_pack_start(GTK_BOX(box),GTK_WIDGET(battmon->label),FALSE, FALSE, 0);
-
+
gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(battmon->battstatus), FALSE, FALSE, 2);
vbox = gtk_vbox_new(FALSE, 0);
-
+
/* percent + rtime */
gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(vbox), FALSE, FALSE, 0);
-
+
battmon->charge = (GtkLabel *)gtk_label_new("50%%");
- gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->charge),FALSE, FALSE, 0);
-
+ gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->charge),TRUE, TRUE, 0);
+
battmon->rtime = (GtkLabel *)gtk_label_new("01:00");
- gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->rtime),FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->rtime),TRUE, TRUE, 0);
vbox=gtk_vbox_new(FALSE, 0);
-
+
/* ac-fan-temp */
gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(vbox), FALSE, FALSE, 0);
-
+
battmon->acfan = (GtkLabel *)gtk_label_new("AC FAN");
- gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->acfan),FALSE, FALSE, 0);
-
+ gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->acfan),TRUE, TRUE, 0);
+
battmon->temp = (GtkLabel *)gtk_label_new("40°C");
- gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->temp),FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->temp),TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(battmon->vbox), box, FALSE, FALSE, 0);
@@ -554,8 +622,10 @@
}
if(!battmon->options.display_percentage){
gtk_widget_hide((GtkWidget *)battmon->charge);
+ }
+ if (!battmon->options.display_time){
gtk_widget_hide((GtkWidget *)battmon->rtime);
- }
+ }
gtk_container_add(GTK_CONTAINER(battmon->ebox),GTK_WIDGET(battmon->vbox));
gtk_widget_show(battmon->ebox);
@@ -596,9 +666,11 @@
battmon->timeoutid = 0;
battmon->flag = FALSE;
battmon->tips = gtk_tooltips_new ();
- g_object_ref (battmon->tips);
+ g_object_ref (G_OBJECT (battmon->tips));
gtk_object_sink (GTK_OBJECT (battmon->tips));
+
+
return battmon;
}
@@ -610,7 +682,14 @@
battmon->timeoutid = 0;
}
- g_object_unref (battmon->tips);
+ /* cleanup options */
+ g_free (battmon->options.command_on_low);
+ g_free (battmon->options.command_on_critical);
+
+ /* free tooltip */
+ gtk_tooltips_set_tip (battmon->tips, battmon->ebox, NULL, NULL);
+ g_object_unref (G_OBJECT (battmon->tips));
+
g_free(battmon);
}
@@ -620,24 +699,26 @@
const char *value;
char *file;
XfceRc *rc;
-
+
if (!(file = xfce_panel_plugin_lookup_rc_file (plugin)))
return;
-
+
rc = xfce_rc_simple_open (file, TRUE);
g_free (file);
if (!rc)
return;
-
+
battmon->options.display_label = xfce_rc_read_bool_entry (rc, "display_label", FALSE);
-
+
battmon->options.display_icon = xfce_rc_read_bool_entry (rc, "display_icon", FALSE);
battmon->options.display_power = xfce_rc_read_bool_entry (rc, "display_power", FALSE);
battmon->options.display_percentage = xfce_rc_read_bool_entry (rc, "display_percentage", FALSE);
+ battmon->options.display_time = xfce_rc_read_bool_entry (rc, "display_time", FALSE);
+
battmon->options.tooltip_display_percentage = xfce_rc_read_bool_entry (rc, "tooltip_display_percentage", FALSE);
battmon->options.tooltip_display_time = xfce_rc_read_bool_entry (rc, "tooltip_display_time", FALSE);
@@ -663,17 +744,17 @@
battmon_write_config(XfcePanelPlugin *plugin, t_battmon *battmon)
{
XfceRc *rc;
- char *file;
+ gchar *file;
if (!(file = xfce_panel_plugin_save_location (plugin, TRUE)))
return;
-
+
rc = xfce_rc_simple_open (file, FALSE);
g_free (file);
if (!rc)
return;
-
+
xfce_rc_write_bool_entry (rc, "display_label", battmon->options.display_label);
xfce_rc_write_bool_entry (rc, "display_icon", battmon->options.display_icon);
@@ -682,6 +763,8 @@
xfce_rc_write_bool_entry (rc, "display_percentage", battmon->options.display_percentage);
+ xfce_rc_write_bool_entry (rc, "display_time", battmon->options.display_time);
+
xfce_rc_write_bool_entry (rc, "tooltip_display_percentage", battmon->options.tooltip_display_percentage);
xfce_rc_write_bool_entry (rc, "tooltip_display_time", battmon->options.tooltip_display_time);
@@ -696,7 +779,7 @@
xfce_rc_write_entry (rc, "command_on_low", battmon->options.command_on_low ? battmon->options.command_on_low : "");
- xfce_rc_write_entry (rc, "command_on_critical", battmon->options.command_on_critical ? battmon->options.command_on_critical : 0);
+ xfce_rc_write_entry (rc, "command_on_critical", battmon->options.command_on_critical ? battmon->options.command_on_critical : "");
xfce_rc_close (rc);
}
@@ -704,18 +787,36 @@
static gboolean
battmon_set_size(XfcePanelPlugin *plugin, int size, t_battmon *battmon)
{
- if (xfce_panel_plugin_get_orientation (plugin) ==
+ GdkPixbuf *icon;
+
+ if (xfce_panel_plugin_get_orientation (plugin) ==
GTK_ORIENTATION_HORIZONTAL)
{
- gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
- BORDER, size);
+ /* force size of the panel plugin */
+ gtk_widget_set_size_request(GTK_WIDGET(battmon->plugin),
+ -1, size);
+ /* size of the progressbar */
+ gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
+ BORDER, size);
}
- else
+ else
{
- gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
- size, BORDER);
+ /* size of the plugin */
+ gtk_widget_set_size_request(GTK_WIDGET(battmon->plugin),
+ size, -1);
+ /* size of the progressbar */
+ gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
+ size, BORDER);
}
+ /* update the icon */
+ icon = battmon_icon (battmon);
+ if (icon)
+ {
+ gtk_image_set_from_pixbuf (GTK_IMAGE (battmon->image), icon);
+ g_object_unref (G_OBJECT (icon));
+ }
+
return TRUE;
}
@@ -740,6 +841,7 @@
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->cb_disp_icon), battmon->options.display_icon);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->cb_disp_power), battmon->options.display_power);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->cb_disp_percentage), battmon->options.display_percentage);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->cb_disp_time), battmon->options.display_time);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->cb_disp_tooltip_percentage), battmon->options.tooltip_display_percentage);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->cb_disp_tooltip_time), battmon->options.tooltip_display_time);
gtk_widget_set_sensitive(dialog->en_command_low, (battmon->options.action_on_low > 1) ? 1 : 0);
@@ -756,6 +858,15 @@
}
static void
+set_disp_time(GtkToggleButton *tb, t_battmon_dialog *dialog)
+{
+ t_battmon *battmon = dialog->battmon;
+
+ battmon->options.display_time = gtk_toggle_button_get_active(tb);
+ update_apm_status(dialog->battmon);
+}
+
+static void
set_tooltip_disp_percentage(GtkToggleButton *tb, t_battmon_dialog *dialog)
{
t_battmon *battmon = dialog->battmon;
@@ -844,7 +955,7 @@
g_free(battmon->options.command_on_low);
temp = gtk_entry_get_text(en);
- battmon->options.command_on_low = g_strdup(temp);
+ battmon->options.command_on_low = g_strdup(temp);
update_apm_status(dialog->battmon);
/* Prevents a GTK crash */
@@ -859,9 +970,9 @@
g_free(battmon->options.command_on_critical);
temp = gtk_entry_get_text(en);
- battmon->options.command_on_critical = g_strdup(temp);
+ battmon->options.command_on_critical = g_strdup(temp);
update_apm_status(dialog->battmon);
-
+
/* Prevents a GTK crash */
return FALSE;
}
@@ -874,11 +985,11 @@
char *name = NULL;
t = (title) ? title : _("Select file");
-
- fs = gtk_file_chooser_dialog_new (t, GTK_WINDOW(parent),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+
+ fs = gtk_file_chooser_dialog_new (t, GTK_WINDOW(parent),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
if (path && *path && g_file_test (path, G_FILE_TEST_EXISTS))
@@ -933,7 +1044,7 @@
static void
battmon_create_options(XfcePanelPlugin *plugin, t_battmon *battmon)
{
- GtkWidget *dlg, *header;
+ GtkWidget *dlg;
GtkWidget *vbox, *vbox2, *hbox, *label, *menu, *mi, *button, *button2;
GtkSizeGroup *sg;
t_battmon_dialog *dialog;
@@ -941,207 +1052,167 @@
dialog = g_new0(t_battmon_dialog, 1);
dialog->battmon = battmon;
-
+
xfce_panel_plugin_block_menu (plugin);
-
- dlg = gtk_dialog_new_with_buttons (_("Configure Battery Monitor"),
- GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (plugin))),
- GTK_DIALOG_DESTROY_WITH_PARENT |
- GTK_DIALOG_NO_SEPARATOR,
- GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
- NULL);
-
+
+ dlg = xfce_titled_dialog_new_with_buttons (_("Battery Monitor"),
+ GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (plugin))),
+ GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
+ NULL);
+
+ gtk_window_set_position (GTK_WINDOW (dlg), GTK_WIN_POS_CENTER);
+ gtk_window_set_icon_name (GTK_WINDOW (dlg), "xfce4-settings");
+
g_signal_connect (dlg, "response", G_CALLBACK (battmon_dialog_response),
battmon);
gtk_container_set_border_width (GTK_CONTAINER (dlg), 2);
-
- header = xfce_create_header (NULL, _("Battery Monitor"));
- gtk_widget_set_size_request (GTK_BIN (header)->child, -1, 32);
- gtk_container_set_border_width (GTK_CONTAINER (header), BORDER - 2);
- gtk_widget_show (header);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), header,
- FALSE, TRUE, 0);
-
+
vbox = gtk_vbox_new(FALSE, BORDER);
gtk_container_set_border_width (GTK_CONTAINER (vbox), BORDER - 2);
- gtk_widget_show(vbox);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), vbox,
TRUE, TRUE, 0);
-
+
/* Create size group to keep widgets aligned */
sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
/* Low and Critical percentage settings */
- hbox = gtk_hbox_new(FALSE, BORDER);
- gtk_widget_show(hbox);
+ hbox = gtk_hbox_new(FALSE, BORDER);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
label = gtk_label_new(_("Low percentage:"));
gtk_size_group_add_widget(sg, label);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
dialog->sb_low_percentage = gtk_spin_button_new_with_range(1, 100, 1);
- gtk_widget_show(dialog->sb_low_percentage);
gtk_box_pack_start(GTK_BOX(hbox), dialog->sb_low_percentage, FALSE, FALSE, 0);
- hbox = gtk_hbox_new(FALSE, BORDER);
- gtk_widget_show(hbox);
+ hbox = gtk_hbox_new(FALSE, BORDER);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
label = gtk_label_new(_("Critical percentage:"));
gtk_size_group_add_widget(sg, label);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
dialog->sb_critical_percentage = gtk_spin_button_new_with_range(1, 100, 1);
- gtk_widget_show(dialog->sb_critical_percentage);
gtk_box_pack_start(GTK_BOX(hbox), dialog->sb_critical_percentage, FALSE, FALSE, 0);
/* Low battery action settings */
- hbox = gtk_hbox_new(FALSE, BORDER);
- gtk_widget_show(hbox);
+ hbox = gtk_hbox_new(FALSE, BORDER);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
label = gtk_label_new(_("Low battery action:"));
gtk_size_group_add_widget(sg, label);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
menu = gtk_menu_new();
mi = gtk_menu_item_new_with_label(_("Do nothing"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
mi = gtk_menu_item_new_with_label(_("Display a warning message"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
mi = gtk_menu_item_new_with_label(_("Run command"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
mi = gtk_menu_item_new_with_label(_("Run command in terminal"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
dialog->om_action_low = gtk_option_menu_new();
- gtk_widget_show(dialog->om_action_low);
gtk_option_menu_set_menu(GTK_OPTION_MENU(dialog->om_action_low), menu);
gtk_box_pack_start(GTK_BOX(hbox), dialog->om_action_low, FALSE, FALSE, 0);
/* Low battery command */
hbox = gtk_hbox_new(FALSE, BORDER);
- gtk_widget_show(hbox);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
label = gtk_label_new(_("Command:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_size_group_add_widget(sg, label);
- gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
dialog->en_command_low = gtk_entry_new();
- gtk_widget_show(dialog->en_command_low);
gtk_box_pack_start(GTK_BOX(hbox), dialog->en_command_low, FALSE, FALSE, 0);
button = gtk_button_new_with_label("...");
- gtk_widget_show(button);
gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
/* Critical battery action settings */
- hbox = gtk_hbox_new(FALSE, BORDER);
- gtk_widget_show(hbox);
+ hbox = gtk_hbox_new(FALSE, BORDER);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
label = gtk_label_new(_("Critical battery action:"));
gtk_size_group_add_widget(sg, label);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
menu = gtk_menu_new();
mi = gtk_menu_item_new_with_label(_("Do nothing"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
mi = gtk_menu_item_new_with_label(_("Display a warning message"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
mi = gtk_menu_item_new_with_label(_("Run command"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
mi = gtk_menu_item_new_with_label(_("Run command in terminal"));
- gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
dialog->om_action_critical = gtk_option_menu_new();
- gtk_widget_show(dialog->om_action_critical);
gtk_option_menu_set_menu(GTK_OPTION_MENU(dialog->om_action_critical), menu);
gtk_box_pack_start(GTK_BOX(hbox), dialog->om_action_critical, FALSE, FALSE, 0);
/* Critical battery command */
hbox = gtk_hbox_new(FALSE, BORDER);
- gtk_widget_show(hbox);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
label = gtk_label_new(_("Command:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_size_group_add_widget(sg, label);
- gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
dialog->en_command_critical = gtk_entry_new();
- gtk_widget_show(dialog->en_command_critical);
gtk_box_pack_start(GTK_BOX(hbox), dialog->en_command_critical, FALSE, FALSE, 0);
button2 = gtk_button_new_with_label("...");
- gtk_widget_show(button2);
gtk_box_pack_start(GTK_BOX(hbox), button2, FALSE, FALSE, 0);
/* Create checkbox options */
- hbox = gtk_hbox_new(FALSE, BORDER);
- gtk_widget_show(hbox);
+ hbox = gtk_hbox_new(FALSE, BORDER);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
label = gtk_label_new(NULL);
gtk_size_group_add_widget(sg, label);
- gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
vbox2 = gtk_vbox_new(FALSE, 4);
- gtk_widget_show(vbox2);
gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0);
dialog->cb_disp_label = gtk_check_button_new_with_mnemonic(_("Display label"));
- gtk_widget_show(dialog->cb_disp_label);
gtk_box_pack_start(GTK_BOX(vbox2), dialog->cb_disp_label, FALSE, FALSE, 0);
-
+
dialog->cb_disp_percentage = gtk_check_button_new_with_mnemonic(_("Display percentage"));
- gtk_widget_show(dialog->cb_disp_percentage);
gtk_box_pack_start(GTK_BOX(vbox2), dialog->cb_disp_percentage, FALSE, FALSE, 0);
+ dialog->cb_disp_time = gtk_check_button_new_with_mnemonic(_("Display time"));
+ gtk_box_pack_start(GTK_BOX(vbox2), dialog->cb_disp_time, FALSE, FALSE, 0);
+
dialog->cb_disp_tooltip_percentage = gtk_check_button_new_with_mnemonic(_("Display percentage in tooltip"));
- gtk_widget_show(dialog->cb_disp_tooltip_percentage);
gtk_box_pack_start(GTK_BOX(vbox2), dialog->cb_disp_tooltip_percentage, FALSE, FALSE, 0);
dialog->cb_disp_tooltip_time = gtk_check_button_new_with_mnemonic(_("Display time remaining in tooltip"));
- gtk_widget_show(dialog->cb_disp_tooltip_time);
gtk_box_pack_start(GTK_BOX(vbox2), dialog->cb_disp_tooltip_time, FALSE, FALSE, 0);
-
+
dialog->cb_disp_power = gtk_check_button_new_with_mnemonic(_("Display power"));
- gtk_widget_show(dialog->cb_disp_power);
gtk_box_pack_start(GTK_BOX(vbox2), dialog->cb_disp_power, FALSE, FALSE, 0);
dialog->cb_disp_icon = gtk_check_button_new_with_mnemonic(_("Display icon"));
- gtk_widget_show(dialog->cb_disp_icon);
gtk_box_pack_start(GTK_BOX(vbox2), dialog->cb_disp_icon, FALSE, FALSE, 0);
/* Signal connections should be set after setting tate of toggle buttons...*/
@@ -1150,12 +1221,13 @@
g_signal_connect(button, "clicked", G_CALLBACK(command_browse_cb), dialog->en_command_low);
g_signal_connect(button2, "clicked", G_CALLBACK(command_browse_cb), dialog->en_command_critical);
g_signal_connect(dialog->cb_disp_percentage, "toggled", G_CALLBACK(set_disp_percentage), dialog);
+ g_signal_connect(dialog->cb_disp_time, "toggled", G_CALLBACK(set_disp_time), dialog);
g_signal_connect(dialog->cb_disp_tooltip_percentage, "toggled", G_CALLBACK(set_tooltip_disp_percentage), dialog);
g_signal_connect(dialog->cb_disp_power, "toggled", G_CALLBACK(set_disp_power), dialog);
g_signal_connect(dialog->cb_disp_tooltip_time, "toggled", G_CALLBACK(set_tooltip_time), dialog);
g_signal_connect(dialog->cb_disp_label, "toggled", G_CALLBACK(set_disp_label), dialog);
g_signal_connect(dialog->cb_disp_icon, "toggled", G_CALLBACK(set_disp_icon), dialog);
-
+
g_signal_connect(dialog->sb_low_percentage, "value-changed", G_CALLBACK(set_low_percentage), dialog);
g_signal_connect(dialog->sb_critical_percentage, "value-changed", G_CALLBACK(set_critical_percentage), dialog);
g_signal_connect(dialog->om_action_low, "changed", G_CALLBACK(set_action_low), dialog);
@@ -1163,11 +1235,11 @@
g_signal_connect(dialog->en_command_low, "focus-out-event", G_CALLBACK(set_command_low), dialog);
g_signal_connect(dialog->en_command_critical, "focus-out-event", G_CALLBACK(set_command_critical), dialog);
- gtk_widget_show (dlg);
+ gtk_widget_show_all (dlg);
}
/* create the plugin */
-static void
+static void
battmon_construct (XfcePanelPlugin *plugin)
{
t_battmon *battmon;
@@ -1177,27 +1249,27 @@
battmon = battmon_create (plugin);
battmon_read_config (plugin, battmon);
-
+
g_signal_connect (plugin, "free-data", G_CALLBACK (battmon_free), battmon);
-
+
g_signal_connect (plugin, "save", G_CALLBACK (battmon_write_config), battmon);
-
+
xfce_panel_plugin_menu_show_configure (plugin);
g_signal_connect (plugin, "configure-plugin", G_CALLBACK (battmon_create_options), battmon);
-
+
g_signal_connect (plugin, "size-changed", G_CALLBACK (battmon_set_size), battmon);
-
+
g_signal_connect (plugin, "orientation-changed", G_CALLBACK (battmon_set_orientation), battmon);
-
+
gtk_container_add(GTK_CONTAINER(plugin), battmon->ebox);
xfce_panel_plugin_add_action_widget (plugin, battmon->ebox);
-
+
xfce_panel_plugin_add_action_widget (plugin, battmon->battstatus);
-
+
/* Determine what facility to use and initialize reading */
battmon->method = BM_BROKEN;
- update_apm_status(battmon);
+ update_apm_status(battmon);
/* If neither ACPI nor APM are enabled, check for either every 60 seconds */
if(battmon->timeoutid == 0)
Modified: xfce4-battery-plugin/trunk/panel-plugin/libacpi.c
===================================================================
--- xfce4-battery-plugin/trunk/panel-plugin/libacpi.c 2006-09-02 16:09:21 UTC (rev 1937)
+++ xfce4-battery-plugin/trunk/panel-plugin/libacpi.c 2006-09-02 16:10:54 UTC (rev 1938)
@@ -25,7 +25,7 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************/
-
+
/***************************************************************************
Originally written by Costantino Pistagna for his wmacpimon
***************************************************************************/
@@ -42,6 +42,14 @@
#include <dirent.h>
#if HAVE_SYSCTL
+
+#ifdef __NetBSD__
+#include <sys/param.h>
+/* CTLTYPE does not exist in NetBSD headers.
+ * Defining it to 0x0f here won't do any harm though. */
+#define CTLTYPE 0x0f
+#endif
+
#include <sys/sysctl.h>
#include <err.h>
#include <errno.h>
@@ -51,7 +59,9 @@
#include "libacpi.h"
+#define ACBASE "/proc/acpi/ac_adapter"
+
static char batteries[MAXBATT][128];
static char battinfo[MAXBATT][128];
#ifndef __linux__
@@ -68,7 +78,7 @@
j = CTL_MAXNAME * sizeof(int);
i = sysctl(oid, 2, oidp, &j, name, strlen(name));
- if (i < 0)
+ if (i < 0)
return i;
j /= sizeof(int);
return (j);
@@ -139,7 +149,7 @@
fmt = buf;
oidfmt(oid, nlen, fmt, &kind);
p = val;
- switch (*fmt) {
+ switch (*fmt) {
case 'I':
#ifdef DEBUG
printf("I:%s%s", name, sep);
@@ -163,7 +173,7 @@
len -= sizeof(int);
p += sizeof(int);
}
-
+
return (retval);
default:
printf("%s%s", name, sep);
@@ -177,7 +187,7 @@
return (0);
}
-
+
#endif
#endif
@@ -217,19 +227,13 @@
/* skip . and .. */
if (!strncmp (".", name, 1) || !strncmp ("..", name, 2)) continue;
-
+
sprintf (batteries[batt_count], "/proc/acpi/battery/%s/state", name);
if (!(acpi = fopen (batteries[batt_count], "r"))) {
sprintf (batteries[batt_count], "/proc/acpi/battery/%s/status", name);
}
else fclose (acpi);
-
-#if 0
- if (!(acpi = fopen ("/proc/acpi/battery/1/status", "r")))
- sprintf (batteries[batt_count], "/proc/acpi/battery/%s/state", name);
- else
- sprintf (batteries[batt_count], "/proc/acpi/battery/%s/status", name);
-#endif
+
sprintf (battinfo[batt_count], "/proc/acpi/battery/%s/info", name);
#ifdef DEBUG
printf("DBG:battery number %d at:\n",batt_count);
@@ -259,7 +263,7 @@
if (oidfmt(mib, len, fmt, &kind)) return 1;
if ((kind & CTLTYPE) == CTLTYPE_NODE) return 1;
batt_count=get_var(mib, len);
-
+
}
return 0;
#else
@@ -275,15 +279,33 @@
char *ptr;
char stat;
- if (!(acpi = fopen ("/proc/acpi/ac_adapter/0/status", "r")))
- if (!(acpi = fopen ("/proc/acpi/ac_adapter/ACAD/state", "r")))
- if (!(acpi = fopen ("/proc/acpi/ac_adapter/AC/state", "r")))
- if (!(acpi = fopen ("/proc/acpi/ac_adapter/ADP1/state", "r")))
- if (!(acpi = fopen ("/proc/acpi/ac_adapter/AC0/state", "r")))
- if (!(acpi = fopen ("/proc/acpi/ac_adapter/ADP0/state", "r")))
- if (!(acpi = fopen ("/proc/acpi/ac_adapter/C11B/state", "r")))
- return -1;
+ char acpath[64];
+ char *name;
+ DIR *acdir;
+ struct dirent *ac;
+ if (!(acdir=opendir(ACBASE))){
+ return -1;
+ }
+ while ((ac = readdir (acdir))){
+ name = ac->d_name;
+
+ /* skip . and .. */
+ if (name[0] == '.')
+ continue;
+
+ sprintf (acpath, "%s/%s/state", ACBASE, name);
+ if (access(acpath,R_OK)){
+ sprintf (acpath, "%s/%s/status", ACBASE, name);
+ if (access(acpath,R_OK)){
+ return -1;
+ }
+ }
+ break; //only one ac adapter supported
+ }
+ closedir(acdir);
+ acpi = fopen (acpath, "r");
+
fread (buf, 512, 1, acpi);
fclose (acpi);
if (!acadstate) acadstate=(ACADstate *)malloc(sizeof(ACADstate));
@@ -364,7 +386,7 @@
}
#ifdef DEBUG
- {
+ {
int jj= fread (buf, 1,512, acpi);
printf("DBG:%d characters read from %s\n",jj,battinfo[battery]);
}
@@ -461,7 +483,7 @@
return 0;
}
}
-
+
return 1;
#else
#ifdef HAVE_SYSCTL
@@ -499,7 +521,7 @@
return 0;
#endif
#endif
-
+
}
int read_acpi_state(int battery)
@@ -552,9 +574,9 @@
}
}
/* This section of the code will calculate "percentage remaining"
- * using battery capacity, and the following formula
+ * using battery capacity, and the following formula
* (acpi spec 3.9.2):
- *
+ *
* percentage = (current_capacity / last_full_capacity) * 100;
*
*/
@@ -579,12 +601,12 @@
if (rate <= 0) rate = 0;
acpistate->prate = rate;
-
+
/* time remaining in minutes */
rtime = ((float) ((float) acpistate->rcapacity /
(float) acpistate->prate)) * 60;
if (rtime <= 0) rtime = 0;
-
+
acpistate->rtime = rtime;
}
if ((ptr = strstr (buf, "present voltage:")) || (ptr = strstr (buf, "Battery Voltage:")))
@@ -606,7 +628,7 @@
return 0;
}
}
-
+
return 1;
#else
#ifdef HAVE_SYSCTL
@@ -627,7 +649,7 @@
acpistate->pvoltage = 0;
acpistate->rtime = 0;
acpistate->percentage = 0;
-
+
snprintf(buf, BUFSIZ, "%s", "hw.acpi.battery.time");
len = name2oid(bufp, mib);
if (len <= 0) return(-1);
@@ -643,7 +665,7 @@
#endif
}
acpistate->rtime =(retval<0)?0:retval;
-
+
snprintf(buf, BUFSIZ, "%s", "hw.acpi.battery.life");
len = name2oid(bufp, mib);
if (len <= 0) return(-1);
@@ -680,9 +702,9 @@
if (strlen(line) && strstr(line,"1")) return 1;
else return 0;
}
- proc_fan_status="/proc/acpi/fan/FAN/state";
- if ( (fp=fopen(proc_fan_status, "r")) == NULL ) return 0;
-
+ proc_fan_status="/proc/acpi/fan/*/state";
+ if ( (fp=fopen(proc_fan_status, "r")) == NULL ) return 0;
+
fgets(line,255,fp);
fclose(fp);
@@ -694,7 +716,7 @@
{
#ifdef __linux__
FILE *fp;
- char *proc_temperature="/proc/acpi/thermal_zone/THRM/temperature";
+ char *proc_temperature="/proc/acpi/thermal_zone/*0/temperature";
static char *p,line[256];
if ( (fp=fopen(proc_temperature, "r")) == NULL) return NULL;
Added: xfce4-battery-plugin/trunk/po/LINGUAS
===================================================================
--- xfce4-battery-plugin/trunk/po/LINGUAS (rev 0)
+++ xfce4-battery-plugin/trunk/po/LINGUAS 2006-09-02 16:10:54 UTC (rev 1938)
@@ -0,0 +1,2 @@
+# set of available languages (in alphabetic order)
+cs
Modified: xfce4-battery-plugin/trunk/po/cs.po
===================================================================
--- xfce4-battery-plugin/trunk/po/cs.po 2006-09-02 16:09:21 UTC (rev 1937)
+++ xfce4-battery-plugin/trunk/po/cs.po 2006-09-02 16:10:54 UTC (rev 1938)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: xfce4-battery-plugin 0.4.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-26 20:56+0200\n"
+"POT-Creation-Date: 2006-09-01 12:16+0200\n"
"PO-Revision-Date: 2006-08-26 21:03+0100\n"
"Last-Translator: Michal Várady <miko.vaji at gmail.com>\n"
"Language-Team: Czech <translation-team-cs at lists.sourceforge.net>\n"
@@ -16,124 +16,128 @@
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-#: ../panel-plugin/battmon.c:393
+#: ../panel-plugin/battmon.c:401
msgid "(Charging from AC)"
msgstr "(Nabíjení ze sítě)"
-#: ../panel-plugin/battmon.c:393
+#: ../panel-plugin/battmon.c:401
msgid "(AC on-line)"
msgstr "(Připojeno do sítě)"
-#: ../panel-plugin/battmon.c:402
+#: ../panel-plugin/battmon.c:410
#, c-format
msgid "%d%% (%02d:%02d) remaining"
msgstr "Zbývá %d%% (%02d:%02d)"
-#: ../panel-plugin/battmon.c:404
+#: ../panel-plugin/battmon.c:412
#, c-format
msgid "%02d:%02d remaining"
msgstr "Zbývá %02d:%02d"
-#: ../panel-plugin/battmon.c:406
+#: ../panel-plugin/battmon.c:414
#, c-format
msgid "%d%% remaining"
msgstr "Zbývá %d%%"
-#: ../panel-plugin/battmon.c:408
+#: ../panel-plugin/battmon.c:416
msgid "AC off-line"
msgstr "Napájení odpojeno"
-#: ../panel-plugin/battmon.c:460
-msgid "WARNING: Your battery has reached critical status. You should plug in or shutdown your computer now to avoid possible data loss."
-msgstr "VAROVÁNÍ: Baterie dosáhla kritického stavu. Měli byste připojit počítač do elektrické sítě nebo jej vypnout, abyste předešli možné ztrátě dat."
+#: ../panel-plugin/battmon.c:479
+msgid ""
+"WARNING: Your battery has reached critical status. You should plug in or "
+"shutdown your computer now to avoid possible data loss."
+msgstr ""
+"VAROVÁNÍ: Baterie dosáhla kritického stavu. Měli byste připojit počítač do "
+"elektrické sítě nebo jej vypnout, abyste předešli možné ztrátě dat."
-#: ../panel-plugin/battmon.c:474
-msgid "WARNING: Your battery is running low. You should consider plugging in or shutting down your computer soon to avoid possible data loss."
-msgstr "VAROVÁNÍ: Úroveň nabití baterie je nízká. Měli byste zvážit připojení počítače do elektrické sítě nebo jej v dohledné době vypnout, abyste předešli ztrátě dat."
+#: ../panel-plugin/battmon.c:493
+msgid ""
+"WARNING: Your battery is running low. You should consider plugging in or "
+"shutting down your computer soon to avoid possible data loss."
+msgstr ""
+"VAROVÁNÍ: Úroveň nabití baterie je nízká. Měli byste zvážit připojení "
+"počítače do elektrické sítě nebo jej v dohledné době vypnout, abyste "
+"předešli ztrátě dat."
-#: ../panel-plugin/battmon.c:519
+#: ../panel-plugin/battmon.c:581
msgid "Battery"
msgstr "Baterie"
-#: ../panel-plugin/battmon.c:876
+#: ../panel-plugin/battmon.c:981
msgid "Select file"
msgstr "Vyberte soubor"
-#: ../panel-plugin/battmon.c:917
+#: ../panel-plugin/battmon.c:1022
msgid "Select command"
msgstr "Vyberte příkaz"
-#: ../panel-plugin/battmon.c:947
-msgid "Configure Battery Monitor"
-msgstr "Nastavit sledování baterie"
-
-#: ../panel-plugin/battmon.c:959
-#: ../panel-plugin/battmon.desktop.in.in.h:1
+#: ../panel-plugin/battmon.c:1052 ../panel-plugin/battmon.desktop.in.in.h:1
msgid "Battery Monitor"
msgstr "Sledování baterie"
-#: ../panel-plugin/battmon.c:982
+#: ../panel-plugin/battmon.c:1080
msgid "Low percentage:"
msgstr "Nízký stav:"
-#: ../panel-plugin/battmon.c:996
+#: ../panel-plugin/battmon.c:1091
msgid "Critical percentage:"
msgstr "Kritický stav:"
-#: ../panel-plugin/battmon.c:1012
+#: ../panel-plugin/battmon.c:1104
msgid "Low battery action:"
msgstr "Akce při nízkém stavu:"
-#: ../panel-plugin/battmon.c:1019
-#: ../panel-plugin/battmon.c:1070
+#: ../panel-plugin/battmon.c:1110 ../panel-plugin/battmon.c:1150
msgid "Do nothing"
msgstr "Žádná akce"
-#: ../panel-plugin/battmon.c:1022
-#: ../panel-plugin/battmon.c:1073
+#: ../panel-plugin/battmon.c:1112 ../panel-plugin/battmon.c:1152
msgid "Display a warning message"
msgstr "Zobrazit varování"
-#: ../panel-plugin/battmon.c:1025
-#: ../panel-plugin/battmon.c:1076
+#: ../panel-plugin/battmon.c:1114 ../panel-plugin/battmon.c:1154
msgid "Run command"
msgstr "Spustit příkaz"
-#: ../panel-plugin/battmon.c:1028
-#: ../panel-plugin/battmon.c:1079
+#: ../panel-plugin/battmon.c:1116 ../panel-plugin/battmon.c:1156
msgid "Run command in terminal"
msgstr "Spustit příkaz v terminálu"
-#: ../panel-plugin/battmon.c:1043
-#: ../panel-plugin/battmon.c:1094
+#: ../panel-plugin/battmon.c:1128 ../panel-plugin/battmon.c:1168
msgid "Command:"
msgstr "Příkaz:"
-#: ../panel-plugin/battmon.c:1063
+#: ../panel-plugin/battmon.c:1144
msgid "Critical battery action:"
msgstr "Akce při kritickém stavu:"
-#: ../panel-plugin/battmon.c:1123
+#: ../panel-plugin/battmon.c:1191
msgid "Display label"
msgstr "Zobrazit popisek"
-#: ../panel-plugin/battmon.c:1127
+#: ../panel-plugin/battmon.c:1194
msgid "Display percentage"
msgstr "Zobrazit údaj v procentech"
-#: ../panel-plugin/battmon.c:1131
+#: ../panel-plugin/battmon.c:1197
+#, fuzzy
+msgid "Display time"
+msgstr "Zobrazit ikonu"
+
+#: ../panel-plugin/battmon.c:1200
msgid "Display percentage in tooltip"
msgstr "Zobrazit údaj v procentech jako tip"
-#: ../panel-plugin/battmon.c:1135
+#: ../panel-plugin/battmon.c:1203
msgid "Display time remaining in tooltip"
msgstr "Zobrazit zbývající čas jako tip"
-#: ../panel-plugin/battmon.c:1139
+#: ../panel-plugin/battmon.c:1206
msgid "Display power"
msgstr "Zobrazit úroveň nabití"
-#: ../panel-plugin/battmon.c:1143
+#: ../panel-plugin/battmon.c:1209
msgid "Display icon"
msgstr "Zobrazit ikonu"
@@ -141,3 +145,5 @@
msgid "Show and monitor the battery status"
msgstr "Zobrazit a monitorovat stav baterie"
+#~ msgid "Configure Battery Monitor"
+#~ msgstr "Nastavit sledování baterie"
Added: xfce4-battery-plugin/trunk/po/xfce4-battery-plugin.pot
===================================================================
--- xfce4-battery-plugin/trunk/po/xfce4-battery-plugin.pot (rev 0)
+++ xfce4-battery-plugin/trunk/po/xfce4-battery-plugin.pot 2006-09-02 16:10:54 UTC (rev 1938)
@@ -0,0 +1,140 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-01 12:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../panel-plugin/battmon.c:401
+msgid "(Charging from AC)"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:401
+msgid "(AC on-line)"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:410
+#, c-format
+msgid "%d%% (%02d:%02d) remaining"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:412
+#, c-format
+msgid "%02d:%02d remaining"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:414
+#, c-format
+msgid "%d%% remaining"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:416
+msgid "AC off-line"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:479
+msgid ""
+"WARNING: Your battery has reached critical status. You should plug in or "
+"shutdown your computer now to avoid possible data loss."
+msgstr ""
+
+#: ../panel-plugin/battmon.c:493
+msgid ""
+"WARNING: Your battery is running low. You should consider plugging in or "
+"shutting down your computer soon to avoid possible data loss."
+msgstr ""
+
+#: ../panel-plugin/battmon.c:581
+msgid "Battery"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:981
+msgid "Select file"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1022
+msgid "Select command"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1052 ../panel-plugin/battmon.desktop.in.in.h:1
+msgid "Battery Monitor"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1080
+msgid "Low percentage:"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1091
+msgid "Critical percentage:"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1104
+msgid "Low battery action:"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1110 ../panel-plugin/battmon.c:1150
+msgid "Do nothing"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1112 ../panel-plugin/battmon.c:1152
+msgid "Display a warning message"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1114 ../panel-plugin/battmon.c:1154
+msgid "Run command"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1116 ../panel-plugin/battmon.c:1156
+msgid "Run command in terminal"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1128 ../panel-plugin/battmon.c:1168
+msgid "Command:"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1144
+msgid "Critical battery action:"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1191
+msgid "Display label"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1194
+msgid "Display percentage"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1197
+msgid "Display time"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1200
+msgid "Display percentage in tooltip"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1203
+msgid "Display time remaining in tooltip"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1206
+msgid "Display power"
+msgstr ""
+
+#: ../panel-plugin/battmon.c:1209
+msgid "Display icon"
+msgstr ""
+
+#: ../panel-plugin/battmon.desktop.in.in.h:2
+msgid "Show and monitor the battery status"
+msgstr ""
More information about the Goodies-commits
mailing list