@@ -429,17 +429,10 @@ void paint_callback (MBTrayApp *app, Drawable drw ) { - - - int power_pixels = 0; - unsigned char r = 0, g = 0, b = 0; int x, y; - int bar_width, bar_height, bar_x, bar_y; MBPixbufImage *img_backing = NULL; - - - + MBPixbufImage *img = NULL; while (!read_apm(apm_vals)) usleep(50000L); @@ -448,59 +441,32 @@ return; img_backing = mb_tray_app_get_background (app, pb); - - /* we assume width = height */ - bar_width = (mb_pixbuf_img_get_width(img_backing)/16) * 10; - bar_height = (mb_pixbuf_img_get_width(img_backing)/16) * 2; - bar_y = (mb_pixbuf_img_get_width(img_backing)/4)*3; - bar_x = (mb_pixbuf_img_get_width(img_backing)/4) - (mb_pixbuf_img_get_width(img_backing)/16); - - /* - printf("bar: %ix%i +%i+%i (%i)\n", bar_width, bar_height, bar_x, bar_y, mb_pixbuf_img_get_width(img_backing) ); - */ - - if (apm_vals[PERCENTAGE] <= 0 || apm_vals[PERCENTAGE] > 99) - { - r = 0x66; g = 0xff; b = 0x33; ac_power = True; - apm_vals[PERCENTAGE] = -1; - } - else if (apm_vals[PERCENTAGE] <= 25) - { r = 0xff; g = 0; b = 0; } - else if (apm_vals[PERCENTAGE] <= 50) - { r = 0xff; g = 0x99; b = 0x33; } - else if (apm_vals[PERCENTAGE] <= 100) - { r = 0x66; g = 0xff; b = 0x33; } - - if (apm_vals[AC_POWER] == AC_LINE_STATUS_ON) - ac_power = True; - else - ac_power = False; - - if (ac_power) - mb_pixbuf_img_composite(pb, img_backing, img_icon_pwr_scaled, 0, 0); + + if (apm_vals[AC_POWER] == AC_LINE_STATUS_ON) + { img = images[9]; } + else if (apm_vals[PERCENTAGE] <= 5) + { img = images[0]; } + else if (apm_vals[PERCENTAGE] <= 18) + { img = images[1]; } + else if (apm_vals[PERCENTAGE] <= 30) + { img = images[2]; } + else if (apm_vals[PERCENTAGE] <= 43) + { img = images[3]; } + else if (apm_vals[PERCENTAGE] <= 56) + { img = images[4]; } + else if (apm_vals[PERCENTAGE] <= 68) + { img = images[5]; } + else if (apm_vals[PERCENTAGE] <= 81) + { img = images[6]; } + else if (apm_vals[PERCENTAGE] <= 94) + { img = images[7]; } else - mb_pixbuf_img_composite(pb, img_backing, img_icon_scaled, 0, 0); + { img = images[8]; } - /* Clear out bar first */ - for ( y = bar_y; y < bar_y + bar_height; y++) - for ( x = bar_x; x < bar_x + bar_width; x++) - if (ac_power) - { - mb_pixbuf_img_plot_pixel(pb, img_backing, x, y, 0xff, 0xff, 0); - } - else - { - mb_pixbuf_img_plot_pixel(pb, img_backing, x, y, 0, 0, 0); - } + x = (window_w - mb_pixbuf_img_get_width (img)) / 2; + y = (window_h - mb_pixbuf_img_get_height (img)) / 2; - if (apm_vals[PERCENTAGE] > 0) - { - power_pixels = (apm_vals[PERCENTAGE] * ( bar_width) )/ 100 ; - - for ( y = bar_y; y < bar_y + bar_height; y++) - for ( x = bar_x; x < bar_x + power_pixels + 1; x++) - mb_pixbuf_img_plot_pixel(pb, img_backing, x, y, r, g, b); - } + mb_pixbuf_img_composite(pb, img_backing, img, x, y); /* Bubble alerts */ if ((time_left_idx > 0) @@ -618,7 +551,7 @@ && apm_vals[TIME_LEFT] > 0) { sprintf(tray_msg, - _("Battery Power\nJuice %.2i %%\nTime left: %.2i mins\n"), apm_vals[PERCENTAGE], apm_vals[TIME_LEFT]); + _("Battery Power\nCharge: %.2i %%\nTime left: %.2i mins\n"), apm_vals[PERCENTAGE], apm_vals[TIME_LEFT]); } else sprintf(tray_msg, _("Battery Power\n Device read error.\n")); }