#include #include #include #include Image *bg; void redraw(Image *screen) { Point sz, pos; Tm *t; char str[20]; t = localtime(time(0)); // sprint(str, "%d-%02d-%02d %02d:%02d:%02d", // t->year+1900, t->mon+1, t->mday, t->hour, t->min, t->sec); sprint(str, "%d-%02d-%02d %02d:%02d", t->year+1900, t->mon+1, t->mday, t->hour, t->min); sz = stringsize(font, str); pos.x = screen->r.min.x + ((Dx(screen->r) - sz.x) / 2); pos.y = screen->r.min.y + ((Dy(screen->r) - sz.y) / 2); draw(screen, screen->r, bg, nil, ZP); string(screen, pos, display->black, ZP, font, str); flushimage(display, 1); } void eresized(int new) { if(new && getwindow(display, Refnone) < 0) fprint(2,"can't reattach to window"); redraw(screen); } void main(int, char **) { Event e; int key, timer; initdraw(0, 0, "dclock"); bg = allocimagemix(display, DPalebluegreen, DWhite); redraw(screen); einit(Emouse); timer = etimer(0, 1000); for(;;) { key = event(&e); if(key == timer) redraw(screen); } }