X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Fcal.h;h=7d308ec23fe47f60dad9681571407685af30941f;hb=HEAD;hp=3191733f24b70451cbdd4638aa8e4763a43dd223;hpb=9d6df8f874cef59df16086c71031db2ba0267d3a;p=lackey diff --git a/src/cal.h b/src/cal.h index 3191733..7d308ec 100644 --- a/src/cal.h +++ b/src/cal.h @@ -1,49 +1,68 @@ /* - * Copyright (C) 2012 Andy Spencer - * + * Copyright (C) 2012-2013 Andy Spencer + * * 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 . */ -/* 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);