]> Pileus Git - lackey/blobdiff - src/cal.h
Add event selection to day and week views
[lackey] / src / cal.h
index 3191733f24b70451cbdd4638aa8e4763a43dd223..7d308ec23fe47f60dad9681571407685af30941f 100644 (file)
--- a/src/cal.h
+++ b/src/cal.h
@@ -1,49 +1,68 @@
 /*
- * Copyright (C) 2012 Andy Spencer <andy753421@gmail.com>
- * 
+ * Copyright (C) 2012-2013 Andy Spencer <andy753421@gmail.com>
+ *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/* Calendar types */
-typedef struct {
-       char *name;
-       char *desc;
-       void *data;
+/* Cal status types */
+typedef enum {
+       NEW  = 0,
+       DONE = 100,
+} status_t;
+
+/* Calendar type */
+typedef struct cal_t {
+       char         *type;
+       char         *name;
+       char         *desc;
+       struct cal_t *next;
 } cal_t;
 
-/* Calendar items */
+/* Calendar item types */
 typedef struct event_t {
-       const cal_t    *cal;
-       const char     *name;
-       const char     *desc;
-       const char     *loc;
-       const char     *cat;
+       char           *name;
+       char           *desc;
+       char           *loc;
+       char           *cat;
        date_t          start;
        date_t          end;
+       const cal_t    *cal;
        struct event_t *next;
+       struct event_t *prev;
 } event_t;
 
+typedef struct todo_t {
+       char          *name;
+       char          *desc;
+       char          *cat;
+       status_t       status;
+       date_t         start;
+       date_t         due;
+       cal_t         *cal;
+       struct todo_t *next;
+       struct todo_t *prev;
+} todo_t;
+
 /* Global data */
-extern event_t *EVENTS;
+extern cal_t   *CAL,   *CALS;
+extern event_t *EVENT, *EVENTS;
+extern todo_t  *TODO,  *TODOS;
 
 /* Calendar functions */
 void cal_init(void);
-event_t *cal_events(year_t year, month_t month, day_t day, int days);
-
-/* Calendar event functions */
-event_t *dummy_events(cal_t *cal, year_t year, month_t month, day_t day, int days);
-event_t *ical_events(cal_t *cal, year_t year, month_t month, day_t day, int days);
+void cal_load(year_t year, month_t month, day_t day, int days);
+void cal_config(const char *group, const char *name, const char *key, const char *value);
 
-/* Test fuctions */
-void ical_test(void);
+/* Event functions */
+event_t *find_event(date_t *target);