antiright-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Antiright-devel] antiright/src/arshell update.c


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright/src/arshell update.c
Date: Tue, 21 Dec 2004 21:34:29 -0500

CVSROOT:        /cvsroot/antiright
Module name:    antiright
Branch:         
Changes by:     Jeffrey Bedard <address@hidden> 04/12/22 02:22:43

Modified files:
        src/arshell    : update.c 

Log message:
        Clockload applet now works.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/antiright/antiright/src/arshell/update.c.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: antiright/src/arshell/update.c
diff -u antiright/src/arshell/update.c:1.3 antiright/src/arshell/update.c:1.4
--- antiright/src/arshell/update.c:1.3  Mon Aug 23 01:15:56 2004
+++ antiright/src/arshell/update.c      Wed Dec 22 02:22:43 2004
@@ -21,6 +21,7 @@
 */
 
 #include "arshell.h"
+#include <time.h>
 
 void
 arshell_update()
@@ -30,17 +31,76 @@
     {
       char *input_string;
       iterator=iterator->next;
-      input_string=antiright_pipe_read(iterator->command_string);
-      input_string[strlen(input_string)-1]='\0';
-      
-      if(XmIsLabel(iterator->widget))
+
+      if(iterator->widget==arshell.gui.clockload.clockload)
+       {
+         char *clockload_label_string;
+         char *time_string;
+         time_t time_date;
+         double load[3];
+         
+         getloadavg(load, 3);
+         (void)time(&time_date);
+         time_string=ctime(&time_date);
+         time_string[strlen(time_string)-1]=' ';
+         asprintf(&clockload_label_string, " %s %d%%", time_string, 
+                  (int)(load[1]*100));
+         antiright_label_string(iterator->widget, clockload_label_string);
+         free(clockload_label_string);
+         
+       }
+      else if(iterator->widget == arshell.gui.clockload.mailuser)
+       {
+         char *user=getenv("USER");
+         char *maildir="/var/mail";
+         char *mailfile;
+         Boolean have_mail;
+         struct stat mailfile_stat;
+
+         asprintf(&mailfile, "%s/%s", maildir, user);
+         
+         stat(mailfile, &mailfile_stat);
+         free(mailfile);
+         fflush(stdout);
+         if(mailfile_stat.st_size > 0)
+           have_mail=True;
+         else
+           have_mail=False;
+         
+         
+         if(have_mail)
+           {         
+             char *icon;
+             asprintf(&icon, "%s/havemail.xbm", (char*)ICONDIR);
+             antiright_set_bitmap_from_file(iterator->widget, icon);
+             free(icon);
+           }
+         else
+           {
+             ARCLARG;
+             antiright_set(XmNlabelType, XmSTRING);
+             antiright_set_values(iterator->widget);
+             antiright_label_string(iterator->widget, "");
+           }
+         
+       }
+      else if(XmIsLabel(iterator->widget))
        {
+         
+         input_string=antiright_pipe_read(iterator->command_string);
+         input_string[strlen(input_string)-1]='\0';    
          antiright_label_string(iterator->widget,
                                 input_string);
+         free(input_string);
+         
        }
       else if(XmIsScrollBar(iterator->widget))
        {
-         int value_int=atoi(input_string);
+         int value_int;
+         input_string=antiright_pipe_read(iterator->command_string);
+         input_string[strlen(input_string)-1]='\0';
+         value_int=atoi(input_string);
+         free(input_string);
          if((value_int>0)&(value_int<=100))
            {
              XtVaSetValues(iterator->widget,
@@ -52,20 +112,25 @@
        {
          assert(arshell.gui.widgets.work != NULL);
          assert(iterator->widget != NULL);
+         input_string=antiright_pipe_read(iterator->command_string);
+         input_string[strlen(input_string)-1]='\0';
          /* Append input_string to the work area.  */
          XmTextInsert(arshell.gui.widgets.work,
                       XmTextGetLastPosition(arshell.gui.widgets.work),
                       input_string);
+         free(input_string);
          XmTextInsert(arshell.gui.widgets.work,
                       XmTextGetLastPosition(arshell.gui.widgets.work),
                       "\n");
        }
       else if(iterator->widget==antiright.parent_widget)
        {
+         input_string=antiright_pipe_read(iterator->command_string);
+         input_string[strlen(input_string)-1]='\0';
          /* Set the title to input_string.  */
          antiright_set_title(input_string);
+         free(input_string);
        }
-      free(input_string);
     }
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]