1 /* $Id: mod_clock.c,v 1.7 2007/02/28 12:47:35 tamentis Exp $
2 *
3 * Copyright (c) 2007 Bertrand Janin <tamentis@neopulsar.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
27 */
28
29 #include <unistd.h>
30 #include <curses.h>
31 #include <time.h>
32
33 #include "tbclock.h"
34
35 extern struct tbclock_data tbc;
36
37 /* mod_clock */
38 void
mod_clock()39 mod_clock()
40 {
41 time_t now;
42 struct tm *tm;
43 signed char c;
44
45 /* base configuration */
46 tbc.format.res_x = 6;
47 if (tbc.options.vertical)
48 tbc.format.res_y = 4;
49 else
50 tbc.format.res_y = 3;
51 tbc_configure();
52
53 for (;;) {
54 if ((c = getch()) > 0) {
55 switch (c) {
56 case KB_H:
57 tbc_next_help_value();
58 tbc_configure();
59 break;
60 case KB_A:
61 if (tbc.options.vertical) {
62 tbc.options.vertical = 0;
63 tbc.format.res_y = 3;
64 } else {
65 tbc.options.vertical = 1;
66 tbc.format.res_y = 4;
67 }
68 tbc_configure();
69 break;
70 default:
71 return;
72 }
73 }
74
75
76 now = time(NULL);
77 tm = localtime(&now);
78
79 tbc_draw_time(3, tm->tm_hour, tm->tm_min, tm->tm_sec, 0);
80
81 refresh();
82 usleep(10000);
83 }
84 }
85
86