21 |
*/ |
*/ |
22 |
|
|
23 |
#include "arshell.h" |
#include "arshell.h" |
24 |
|
#include <time.h> |
25 |
|
|
26 |
void |
void |
27 |
arshell_update() |
arshell_update() |
31 |
{ |
{ |
32 |
char *input_string; |
char *input_string; |
33 |
iterator=iterator->next; |
iterator=iterator->next; |
34 |
input_string=antiright_pipe_read(iterator->command_string); |
|
35 |
input_string[strlen(input_string)-1]='\0'; |
if(iterator->widget==arshell.gui.clockload.clockload) |
36 |
|
{ |
37 |
if(XmIsLabel(iterator->widget)) |
char *clockload_label_string; |
38 |
|
char *time_string; |
39 |
|
time_t time_date; |
40 |
|
double load[3]; |
41 |
|
|
42 |
|
getloadavg(load, 3); |
43 |
|
(void)time(&time_date); |
44 |
|
time_string=ctime(&time_date); |
45 |
|
time_string[strlen(time_string)-1]=' '; |
46 |
|
asprintf(&clockload_label_string, " %s %d%%", time_string, |
47 |
|
(int)(load[1]*100)); |
48 |
|
antiright_label_string(iterator->widget, clockload_label_string); |
49 |
|
free(clockload_label_string); |
50 |
|
|
51 |
|
} |
52 |
|
else if(iterator->widget == arshell.gui.clockload.mailuser) |
53 |
|
{ |
54 |
|
char *user=getenv("USER"); |
55 |
|
char *maildir="/var/mail"; |
56 |
|
char *mailfile; |
57 |
|
Boolean have_mail; |
58 |
|
struct stat mailfile_stat; |
59 |
|
|
60 |
|
asprintf(&mailfile, "%s/%s", maildir, user); |
61 |
|
|
62 |
|
stat(mailfile, &mailfile_stat); |
63 |
|
free(mailfile); |
64 |
|
fflush(stdout); |
65 |
|
if(mailfile_stat.st_size > 0) |
66 |
|
have_mail=True; |
67 |
|
else |
68 |
|
have_mail=False; |
69 |
|
|
70 |
|
|
71 |
|
if(have_mail) |
72 |
|
{ |
73 |
|
char *icon; |
74 |
|
asprintf(&icon, "%s/havemail.xbm", (char*)ICONDIR); |
75 |
|
antiright_set_bitmap_from_file(iterator->widget, icon); |
76 |
|
free(icon); |
77 |
|
} |
78 |
|
else |
79 |
|
{ |
80 |
|
ARCLARG; |
81 |
|
antiright_set(XmNlabelType, XmSTRING); |
82 |
|
antiright_set_values(iterator->widget); |
83 |
|
antiright_label_string(iterator->widget, ""); |
84 |
|
} |
85 |
|
|
86 |
|
} |
87 |
|
else if(XmIsLabel(iterator->widget)) |
88 |
{ |
{ |
89 |
|
|
90 |
|
input_string=antiright_pipe_read(iterator->command_string); |
91 |
|
input_string[strlen(input_string)-1]='\0'; |
92 |
antiright_label_string(iterator->widget, |
antiright_label_string(iterator->widget, |
93 |
input_string); |
input_string); |
94 |
|
free(input_string); |
95 |
|
|
96 |
} |
} |
97 |
else if(XmIsScrollBar(iterator->widget)) |
else if(XmIsScrollBar(iterator->widget)) |
98 |
{ |
{ |
99 |
int value_int=atoi(input_string); |
int value_int; |
100 |
|
input_string=antiright_pipe_read(iterator->command_string); |
101 |
|
input_string[strlen(input_string)-1]='\0'; |
102 |
|
value_int=atoi(input_string); |
103 |
|
free(input_string); |
104 |
if((value_int>0)&(value_int<=100)) |
if((value_int>0)&(value_int<=100)) |
105 |
{ |
{ |
106 |
XtVaSetValues(iterator->widget, |
XtVaSetValues(iterator->widget, |
112 |
{ |
{ |
113 |
assert(arshell.gui.widgets.work != NULL); |
assert(arshell.gui.widgets.work != NULL); |
114 |
assert(iterator->widget != NULL); |
assert(iterator->widget != NULL); |
115 |
|
input_string=antiright_pipe_read(iterator->command_string); |
116 |
|
input_string[strlen(input_string)-1]='\0'; |
117 |
/* Append input_string to the work area. */ |
/* Append input_string to the work area. */ |
118 |
XmTextInsert(arshell.gui.widgets.work, |
XmTextInsert(arshell.gui.widgets.work, |
119 |
XmTextGetLastPosition(arshell.gui.widgets.work), |
XmTextGetLastPosition(arshell.gui.widgets.work), |
120 |
input_string); |
input_string); |
121 |
|
free(input_string); |
122 |
XmTextInsert(arshell.gui.widgets.work, |
XmTextInsert(arshell.gui.widgets.work, |
123 |
XmTextGetLastPosition(arshell.gui.widgets.work), |
XmTextGetLastPosition(arshell.gui.widgets.work), |
124 |
"\n"); |
"\n"); |
125 |
} |
} |
126 |
else if(iterator->widget==antiright.parent_widget) |
else if(iterator->widget==antiright.parent_widget) |
127 |
{ |
{ |
128 |
|
input_string=antiright_pipe_read(iterator->command_string); |
129 |
|
input_string[strlen(input_string)-1]='\0'; |
130 |
/* Set the title to input_string. */ |
/* Set the title to input_string. */ |
131 |
antiright_set_title(input_string); |
antiright_set_title(input_string); |
132 |
|
free(input_string); |
133 |
} |
} |
|
free(input_string); |
|
134 |
} |
} |
135 |
} |
} |
136 |
|
|