~kris/hacks

stask

ref: 6000827889e5288301e63b20e2aeff245801679c stask/stask.h -rw-r--r-- 2.1 KiB
60008278 — Kris Yotam v0.2: add markdown document system for tasks 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/* stask - simple task manager
 * See LICENSE file for copyright and license details. */

#ifndef STASK_H
#define STASK_H

#include <sqlite3.h>

enum { TASK_TODO, TASK_DONE };

typedef struct {
	double bg[4];
	double card[4];
	double fg[4];
	double border[4];
	double muted[4];
	double muted_fg[4];
	double primary[4];
	double primary_fg[4];
	double sel[4];
	double accent[4];
	double accent_fg[4];
} Theme;

typedef struct {
	int id;
	char name[128];
	char created[32];
} List;

typedef struct {
	int id;
	int list_id;
	char text[512];
	int done;
	char added[32];
} Task;

typedef struct {
	sqlite3 *db;
	char dbpath[1024];
	char docdir[1024];
} TaskDB;

/* data.c */
int db_open(TaskDB *tdb);
void db_close(TaskDB *tdb);

int list_create(TaskDB *tdb, const char *name);
int list_delete(TaskDB *tdb, const char *name);
int list_all(TaskDB *tdb, List **out, int *count);
int list_by_name(TaskDB *tdb, const char *name, List *out);

int task_add(TaskDB *tdb, int list_id, const char *text);
int task_del(TaskDB *tdb, int task_id);
int task_done(TaskDB *tdb, int task_id);
int task_undo(TaskDB *tdb, int task_id);
int task_all(TaskDB *tdb, int list_id, Task **out, int *count);
int task_count(TaskDB *tdb, int list_id, int *total, int *done);
int task_get(TaskDB *tdb, int task_id, Task *out);
int task_update_text(TaskDB *tdb, int task_id, const char *text);
char *task_list_name(TaskDB *tdb, int list_id);

/* doc.c */
void doc_path(TaskDB *tdb, const char *listname, int task_id,
	char *buf, int len);
void doc_dir(TaskDB *tdb, const char *listname,
	char *buf, int len);
int doc_create(TaskDB *tdb, const char *listname,
	int task_id, const char *title, const char *date);
int doc_delete(TaskDB *tdb, const char *listname, int task_id);
int doc_delete_all(TaskDB *tdb, const char *listname);
int doc_edit(TaskDB *tdb, const char *listname, int task_id);
int doc_show(TaskDB *tdb, const char *listname, int task_id);
int doc_sync_title(TaskDB *tdb, const char *listname,
	int task_id);
void doc_sync_done(TaskDB *tdb, const char *listname,
	int task_id, int done);

/* gui.c */
int gui_run(TaskDB *tdb, int argc, char *argv[]);

#endif /* STASK_H */