* change the battery_small_xpm image to a blank battery image. * alter pixmap_timeout() to draw the battery level into the status image if we are running on battery. This way the status icon can provide the same information as the larger battery image. -- James Henstridge Index: battstat/battstat.h =================================================================== RCS file: /cvs/gnome/gnome-applets/battstat/battstat.h,v retrieving revision 1.23 diff -u -p -r1.23 battstat.h --- battstat/battstat.h 3 Aug 2004 14:22:29 -0000 1.23 +++ battstat/battstat.h 14 Sep 2004 04:30:51 -0000 @@ -77,6 +77,7 @@ typedef struct _ProgressData { GtkWidget *eventstatus; GdkPixmap *status; GtkWidget *statuspixmapwid; + GdkGC *statusgc; GtkWidget *statusvbox; GtkWidget *statuspercent; Index: battstat/battstat_applet.c =================================================================== RCS file: /cvs/gnome/gnome-applets/battstat/battstat_applet.c,v retrieving revision 1.82 diff -u -p -r1.82 battstat_applet.c --- battstat/battstat_applet.c 6 Sep 2004 08:10:14 -0000 1.82 +++ battstat/battstat_applet.c 14 Sep 2004 04:30:53 -0000 @@ -512,7 +512,39 @@ pixmap_timeout( gpointer data ) (batt_life <= battery->red_val ? WARNING : BATTERY) ; - if ( pixmap_index != battery->last_pixmap_index ) { + if ( pixmap_index == BATTERY ){ + gdk_draw_drawable(battery->status, + battery->statusgc, + statusimage[BATTERY], + 0,0, + 0,0, + -1,-1); + /* draw the charge status onto battery->status */ + if (batt_life <= battery->red_val) { + color=red; + } else if (batt_life <= battery->orange_val) { + color=orange; + } else if (batt_life <= battery->yellow_val) { + color=yellow; + } else { + color=green; + } + progress_value = 12 * batt_life / 100.0; + for (i = 0; i < 10; i++) { + gdk_gc_set_foreground(battery->statusgc, &color[(i * 13 / 10)]); + if (i >= 2 && i <= 7) + x = 17; + else + x = 16; + gdk_draw_line(battery->status, + battery->statusgc, + i+1, x - progress_value, + i+1, x); + } + gtk_image_set_from_pixmap(GTK_IMAGE(battery->statuspixmapwid), + battery->status, statusmask[BATTERY]); + + } else if ( pixmap_index != battery->last_pixmap_index ){ gtk_image_set_from_pixmap(GTK_IMAGE (battery->statuspixmapwid), statusimage[pixmap_index], statusmask[pixmap_index]); #ifdef FIXME @@ -896,6 +928,7 @@ destroy_applet (GtkWidget *widget, gpoin pdata->applet = NULL; g_object_unref(G_OBJECT (pdata->testpixgc)); g_object_unref(G_OBJECT (pdata->pixgc)); + g_object_unref(G_OBJECT (pdata->statusgc)); g_object_unref(pdata->ac_tip); g_object_unref(pdata->progress_tip); g_object_unref(pdata->progressy_tip); @@ -1636,8 +1669,9 @@ create_layout(ProgressData *battstat) &statusmask[WARNING], &battstat->style->bg[GTK_STATE_NORMAL], warning_small_xpm ); - battstat->status=statusimage[BATTERY]; - battstat->statuspixmapwid = gtk_image_new_from_pixmap ( battstat->status, statusmask[BATTERY] ); + battstat->status=gdk_pixmap_new(battstat->applet->window, 12, 20, -1); + battstat->statusgc=gdk_gc_new(battstat->status); + battstat->statuspixmapwid = gtk_image_new_from_pixmap ( battstat->status, NULL ); gtk_box_pack_start (GTK_BOX (battstat->statusvbox), battstat->statuspixmapwid, FALSE, TRUE, 0); gtk_widget_show ( battstat->statuspixmapwid ); Index: battstat/pixmaps.h =================================================================== RCS file: /cvs/gnome/gnome-applets/battstat/pixmaps.h,v retrieving revision 1.2 diff -u -p -r1.2 pixmaps.h --- battstat/pixmaps.h 5 Nov 2001 00:01:19 -0000 1.2 +++ battstat/pixmaps.h 14 Sep 2004 04:30:56 -0000 @@ -337,124 +337,99 @@ static char * battery2_small_xpm[] = { /* XPM */ static char * battery_small_xpm[] = { -"12 20 97 2", -" c None", -". c #33312F", -"+ c #3F3C39", -"@ c #36312C", -"# c #221C18", -"$ c #000000", -"% c #615953", -"& c #6B6159", -"* c #A0948A", -"= c #E1D3C7", -"- c #AF9A88", -"; c #6B5646", -"> c #493C31", -", c #493D34", -"' c #35332D", -") c #A69A89", -"! c #B4A293", -"~ c #D0BEB0", -"{ c #BCA797", -"] c #AD9684", -"^ c #896C54", -"/ c #876C56", -"( c #9A826F", -"_ c #9C8472", -": c #958473", -"< c #302C27", -"[ c #2E2C02", -"} c #D0C54D", -"| c #EADF9C", -"1 c #C6B4A6", -"2 c #C9B8AA", -"3 c #CDBCAE", -"4 c #C7B4A5", -"5 c #C5B678", -"6 c #9E903B", -"7 c #1F1C00", -"8 c #CEC314", -"9 c #F0E53A", -"0 c #F5EC8A", -"a c #F1E67E", -"b c #ECE173", -"c c #DED05F", -"d c #D8CA54", -"e c #CBBF4F", -"f c #A79C03", -"g c #897D00", -"h c #FDF65F", -"i c #F9DF46", -"j c #FB5014", -"k c #E5CB25", -"l c #DACE18", -"m c #C6BB0E", -"n c #CEC414", -"o c #FBAB35", -"p c #FB290A", -"q c #EA9C19", -"r c #D9CE18", -"s c #252518", -"t c #BCB540", -"u c #F8EE4A", -"v c #EAA329", -"w c #E3D829", -"x c #837B25", -"y c #1C1B13", -"z c #222222", -"A c #949491", -"B c #B1B0AA", -"C c #EFEA75", -"D c #E9E163", -"E c #E0D754", -"F c #D4CC45", -"G c #CAC235", -"H c #B9B12B", -"I c #7F7F79", -"J c #72716F", -"K c #1B1B1B", -"L c #212121", -"M c #939393", -"N c #AEAEAE", -"O c #C0C0C0", -"P c #B8B8B8", -"Q c #A3A3A3", -"R c #989898", -"S c #8D8D8D", -"T c #7E7E7E", -"U c #717171", -"V c #7D7D7D", -"W c #818181", -"X c #656565", -"Y c #747474", -"Z c #4D4D4D", -"` c #676767", -" . c #636363", -".. c #5E5E5E", -"+. c #585858", -"@. c #525252", -"#. c #4C4C4C", -" ", -" . + @ # ", -" $ % & * = - ; > , $ ", -"' ) ! ~ { ] ^ / ( _ : < ", -"[ } | 1 2 3 4 4 4 5 6 7 ", -"[ 8 9 0 a b c d e f g 7 ", -"[ 8 9 h i j k l m f g 7 ", -"[ n 9 h o p q r m f g 7 ", -"s t 9 h u v w r m f x y ", -"z A B C D E F G H I J K ", -"L M N O P N Q R S T U K ", -"z M N O P N Q R S V U K ", -"L M N O P N Q R S T U K ", -"L M N O P N Q R S T U K ", -"L M N O P N Q R S T U K ", -"L M N O W X Y R S T U K ", -"X M N O P N Q R S T U X ", -" Z S O P N Q R S X X ", -" X ` ...+.@.#.X ", -" "}; +"12 20 72 1", +" c None", +". c #33312F", +"+ c #3F3C39", +"@ c #36312C", +"# c #221C18", +"$ c #000000", +"% c #615953", +"& c #6B6159", +"* c #A0948A", +"= c #E1D3C7", +"- c #AF9A88", +"; c #6B5646", +"> c #493C31", +", c #493D34", +"' c #35332D", +") c #AEA291", +"! c #B6A496", +"~ c #D0BEB0", +"{ c #BCA797", +"] c #AD9684", +"^ c #896C54", +"/ c #876C56", +"( c #9A826F", +"_ c #9C8472", +": c #958473", +"< c #302C27", +"[ c #2E2C02", +"} c #ADADAD", +"| c #C2C2C2", +"1 c #C6B4A6", +"2 c #CABAAC", +"3 c #CFBFB2", +"4 c #C7B4A5", +"5 c #C9B8A9", +"6 c #C8B6A7", +"7 c #9D9D9D", +"8 c #1F1C00", +"9 c #939393", +"0 c #AEAEAE", +"a c #C9C9C9", +"b c #CBCBCB", +"c c #C6C6C6", +"d c #C1C1C1", +"e c #B6B6B6", +"f c #A7A7A7", +"g c #878787", +"h c #777777", +"i c #BCBCBC", +"j c #B2B2B2", +"k c #9C9C9C", +"l c #929292", +"m c #7D7D7D", +"n c #717171", +"o c #C0C0C0", +"p c #B8B8B8", +"q c #A3A3A3", +"r c #989898", +"s c #8D8D8D", +"t c #252518", +"u c #1C1B13", +"v c #222222", +"w c #1B1B1B", +"x c #212121", +"y c #7E7E7E", +"z c #656565", +"A c #4D4D4D", +"B c #676767", +"C c #636363", +"D c #5E5E5E", +"E c #585858", +"F c #525252", +"G c #4C4C4C", +" ", +" .+@# ", +" $%&*=-;>,$ ", +"')!~{]^/(_:<", +"[}|123456}78", +"[90abcdefgh8", +"[90|ijfklmn8", +"[90op0qrsmn8", +"t90op0qrsmnu", +"v90op0qrsmnw", +"x90op0qrsmnw", +"v90op0qrsmnw", +"x90op0qrsynw", +"x90op0qrsynw", +"x90op0qrsynw", +"x90op0qrsynw", +"z90op0qrsynz", +" Asop0qrszz ", +" zBCDEFGz ", +" "}; /* XPM */ static char * flash_small_xpm[] = {