]> Pileus Git - lackey/commitdiff
Add simple event/todo display to edit view
authorAndy Spencer <andy753421@gmail.com>
Mon, 17 Jun 2013 06:38:14 +0000 (06:38 +0000)
committerAndy Spencer <andy753421@gmail.com>
Mon, 17 Jun 2013 06:38:14 +0000 (06:38 +0000)
views/edit.c

index 8e8c87177ec64d3c43205c70da0170e1e5bd638b..eb810aaea2033d01173055259a6f58dd10b31f73 100644 (file)
 /* Static data */
 static WINDOW *win;
 
+/* Helper functions */
+static const char *timestr(date_t date)
+{
+       static char buf[64];
+       if (date.year)
+               sprintf(buf, "%04d-%02d-%02d %02d:%02d",
+                       date.year, date.month+1, date.day+1,
+                       date.hour, date.min);
+       else
+               sprintf(buf, "[none]");
+       return buf;
+}
+
+/* Event editing */
+static void draw_event(event_t *event)
+{
+       wmove(win, 0, 0);
+       wprintw(win, "Edit Event\n");
+       wprintw(win, "    Name:        %s\n",  event->name      ?: "[none]");
+       wprintw(win, "    Description: %s\n",  event->desc      ?: "[none]");
+       wprintw(win, "    Location:    %s\n",  event->loc       ?: "[none]");
+       wprintw(win, "    Category:    %s\n",  event->cat       ?: "[none]");
+       wprintw(win, "    Start Time:  %s\n",  timestr(event->start));
+       wprintw(win, "    End Time:    %s\n",  timestr(event->end));
+       wprintw(win, "    Calendar:    %s\n",  event->cal->name ?: "[none]");
+}
+
+static int edit_event(event_t *event, int key, mmask_t btn, int row, int col)
+{
+       return 0;
+}
+
+/* Todo editing */
+static void draw_todo(todo_t *todo)
+{
+       wmove(win, 0, 0);
+       wprintw(win, "Edit Todo\n");
+       wprintw(win, "    Name:        %s\n",   todo->name      ?: "[none]");
+       wprintw(win, "    Description: %s\n",   todo->desc      ?: "[none]");
+       wprintw(win, "    Category:    %s\n",   todo->cat       ?: "[none]");
+       wprintw(win, "    Completed:   %d%%\n", todo->status);
+       wprintw(win, "    Start Time:  %s\n",   timestr(todo->start));
+       wprintw(win, "    Due Date:    %s\n",   timestr(todo->due));
+       wprintw(win, "    Calendar:    %s\n",   todo->cal->name ?: "[none]");
+}
+
+static int edit_todo(todo_t *todo, int key, mmask_t btn, int row, int col)
+{
+       return 0;
+}
+
 /* Edit init */
 void edit_init(WINDOW *_win)
 {
@@ -41,11 +92,21 @@ void edit_size(int rows, int cols)
 /* Edit draw */
 void edit_draw(void)
 {
-       mvwprintw(win, 1, 1, "Edit\n");
+       switch (EDIT) {
+               case EDIT_CAL:   break;
+               case EDIT_EVENT: draw_event(EVENT); break;
+               case EDIT_TODO:  draw_todo(TODO);   break;
+               default:         break;
+       }
 }
 
 /* Edit run */
 int edit_run(int key, mmask_t btn, int row, int col)
 {
-       return 0;
+       switch (EDIT) {
+               case EDIT_CAL:   return 1;
+               case EDIT_EVENT: return edit_event(EVENT, key, btn, row, col);
+               case EDIT_TODO:  return edit_todo(TODO, key, btn, row, col);
+               default:         return 0;
+       }
 }