Implement colors for runwatches and WLAN down

This commit is contained in:
Michael Stapelberg 2008-10-07 12:05:57 +02:00
parent 6f705c20de
commit 7c79d735d8
2 changed files with 18 additions and 4 deletions

View File

@ -15,3 +15,4 @@ const char *run_watches[] = {"DHCP", "/var/run/dhclient.pid",
#define ORDER_TIME "5"
#define USE_COLORS
#define WMII_NORMCOLORS "#000000 #333333" /* <background> <border> */

View File

@ -78,6 +78,9 @@ static void create_file(const char *name) {
int fd = creat(pathbuf, S_IRUSR | S_IWUSR);
if (fd < 0)
exit(-4);
#ifdef USE_COLORS
write(fd, "#888888 " WMII_NORMCOLORS, strlen("#888888 " WMII_NORMCOLORS));
#endif
close(fd);
}
@ -211,9 +214,14 @@ static char *get_wireless_info() {
interfaces++;
int quality = atoi(interfaces);
/* For some reason, I get 255 sometimes */
if ((quality == 255) || (quality == 0))
snprintf(part, sizeof(part), "W: down");
else {
if ((quality == 255) || (quality == 0)) {
#ifdef USE_COLORS
snprintf(part, sizeof(part), "#FF0000 " WMII_NORMCOLORS " W: down");
#else
snprintf(part, sizeof(part), "W: down");
#endif
} else {
snprintf(part, sizeof(part), "W: (%02d%%) ", quality);
char *ip_address = get_ip_address(wlan_interface);
strcpy(part+strlen(part), ip_address);
@ -320,7 +328,12 @@ int main(void) {
while (1) {
for (i = 0; i < sizeof(run_watches) / sizeof(char*); i += 2) {
sprintf(part, "%s: %s", run_watches[i], (process_runs(run_watches[i+1]) ? "yes" : "no"));
bool running = process_runs(run_watches[i+1]);
#ifdef USE_COLORS
sprintf(part, "%s %s: %s", (running ? "#00FF00 " WMII_NORMCOLORS : "#FF0000 " WMII_NORMCOLORS), run_watches[i], (running ? "yes" : "no"));
#else
sprintf(part, "%s: %s", run_watches[i], (running ? "yes" : "no"));
#endif
sprintf(pathbuf, "%s%s", ORDER_RUN, run_watches[i]);
write_to_statusbar(pathbuf, part);
}