]> Pileus Git - lackey/commitdiff
Common updates to support event and todo editing
authorAndy Spencer <andy753421@gmail.com>
Mon, 17 Jun 2013 05:33:43 +0000 (05:33 +0000)
committerAndy Spencer <andy753421@gmail.com>
Mon, 17 Jun 2013 05:35:11 +0000 (05:35 +0000)
src/cal.c
src/cal.h
src/view.c
src/view.h

index b519d588fb4601d6a33470c2b60997e9bee51591..d02e885eb034481eb40b2851912bd8fb5a827fc3 100644 (file)
--- a/src/cal.c
+++ b/src/cal.c
@@ -33,9 +33,9 @@ CAL(dummy);
 CAL(ical);
 
 /* Global data */
 CAL(ical);
 
 /* Global data */
-cal_t   *CALS;
-event_t *EVENTS;
-todo_t  *TODOS;
+cal_t   *CAL,   *CALS;
+event_t *EVENT, *EVENTS;
+todo_t  *TODO,  *TODOS;
 
 /* Local data */
 static date_t start;
 
 /* Local data */
 static date_t start;
index 72bcd955db4825844db259cda32196608f9bb8a6..13b12d04c8bbdff9d080aa29b39b5f496b1d83e3 100644 (file)
--- a/src/cal.h
+++ b/src/cal.h
@@ -55,9 +55,9 @@ typedef struct todo_t {
 } todo_t;
 
 /* Global data */
 } todo_t;
 
 /* Global data */
-extern cal_t   *CALS;
-extern event_t *EVENTS;
-extern todo_t  *TODOS;
+extern cal_t   *CAL,   *CALS;
+extern event_t *EVENT, *EVENTS;
+extern todo_t  *TODO,  *TODOS;
 
 /* Calendar functions */
 void cal_init(void);
 
 /* Calendar functions */
 void cal_init(void);
index 35278494fed12cea0276c6dc04931285f36b9f8c..2e5e78ecfb9adf63cea32c43760c8b52de97b3b8 100644 (file)
@@ -81,9 +81,12 @@ view_t *menu[] = {
        &spacer, &settings_view, &help_view
 };
 
        &spacer, &settings_view, &help_view
 };
 
-/* Global data */
+/* Config data */
 int COMPACT = 0;
 
 int COMPACT = 0;
 
+/* Global data */
+edit_t EDIT = EDIT_NONE;
+
 /* Local data */
 view_t *view   = &day_view;
 view_t *active = &day_view;
 /* Local data */
 view_t *view   = &day_view;
 view_t *active = &day_view;
@@ -206,7 +209,7 @@ void event_line(WINDOW *win, event_t *event, int y, int x, int w, int flags)
        mvwaddch(win, y, x++, ACS_BLOCK);
        if (color) wattroff(win, COLOR_PAIR(color));
 
        mvwaddch(win, y, x++, ACS_BLOCK);
        if (color) wattroff(win, COLOR_PAIR(color));
 
-       if (flags & SHOW_ACTIVE)
+       if (flags & SHOW_ACTIVE && event == EVENT)
                wattron(win, A_REVERSE | A_BOLD);
        if (flags & SHOW_DETAILS) {
                if (all_day(&event->start, &event->end))
                wattron(win, A_REVERSE | A_BOLD);
        if (flags & SHOW_DETAILS) {
                if (all_day(&event->start, &event->end))
@@ -226,7 +229,7 @@ void event_line(WINDOW *win, event_t *event, int y, int x, int w, int flags)
        if (flags & SHOW_DETAILS && event->loc) {
                mvwprintw(win, y, x, " @ %s", event->loc);
        }
        if (flags & SHOW_DETAILS && event->loc) {
                mvwprintw(win, y, x, " @ %s", event->loc);
        }
-       if (flags & SHOW_ACTIVE)
+       if (flags & SHOW_ACTIVE && event == EVENT)
                wattroff(win, A_REVERSE | A_BOLD);
 }
 
                wattroff(win, A_REVERSE | A_BOLD);
 }
 
@@ -250,7 +253,7 @@ void todo_line(WINDOW *win, todo_t *todo, int y, int x, int w, int flags)
        x += 2;
 
        /* Set background */
        x += 2;
 
        /* Set background */
-       if (flags & SHOW_ACTIVE)
+       if (flags & SHOW_ACTIVE && todo == TODO)
                wattron(win, A_REVERSE | A_BOLD);
        mvwhline(win, y, x, ' ', COLS-x);
 
                wattron(win, A_REVERSE | A_BOLD);
        mvwhline(win, y, x, ' ', COLS-x);
 
@@ -275,7 +278,7 @@ void todo_line(WINDOW *win, todo_t *todo, int y, int x, int w, int flags)
        mvwprintw(win, y, x, "%s", desc);
 
        /* Reset flags */
        mvwprintw(win, y, x, "%s", desc);
 
        /* Reset flags */
-       if (flags & SHOW_ACTIVE)
+       if (flags & SHOW_ACTIVE && todo == TODO)
                wattroff(win, A_REVERSE | A_BOLD);
 }
 
                wattroff(win, A_REVERSE | A_BOLD);
 }
 
@@ -387,3 +390,10 @@ int view_run(int key, mmask_t btn, int row, int col)
        /* Pass key to active view */
        return view->run(key, btn, row, col);
 }
        /* Pass key to active view */
        return view->run(key, btn, row, col);
 }
+
+/* View event */
+void view_edit(edit_t mode)
+{
+       EDIT = mode;
+       set_view(active, &edit_view);
+}
index 7f967ea066732a90ade60f871f6b38ffe4c8003b..03d79224e00b12ddf599d9525dd41b39800ccd89 100644 (file)
 #define SHOW_DETAILS 0x1
 #define SHOW_ACTIVE  0x2
 
 #define SHOW_DETAILS 0x1
 #define SHOW_ACTIVE  0x2
 
+/* Edit modes */
+typedef enum {
+       EDIT_NONE,
+       EDIT_CAL,
+       EDIT_EVENT,
+       EDIT_TODO,
+} edit_t;
+
 /* Config data */
 /* Config data */
-extern int COMPACT;
+extern int COMPACT; // reduce layout spacing
+
+/* Global data */
+extern edit_t EDIT; // edit mode 0=cal 1=event 3=todo
 
 /* Curses functions */
 void wmvresize(WINDOW *win, int top, int left, int rows, int cols);
 
 /* Curses functions */
 void wmvresize(WINDOW *win, int top, int left, int rows, int cols);
@@ -50,3 +61,4 @@ void view_config(const char *group, const char *name, const char *key, const cha
 void view_resize(void);
 void view_draw(void);
 int  view_run(int key, mmask_t btn, int row, int col);
 void view_resize(void);
 void view_draw(void);
 int  view_run(int key, mmask_t btn, int row, int col);
+void view_edit(edit_t mode);