summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
efecad1)
This supports drawing the "current" item and allows for additional
options if we need them in the future.
if (l<h && event->desc) mvwprintw(win, y+l++, x+1, "%.*s", w-2, event->desc);
}
if (l<h && event->desc) mvwprintw(win, y+l++, x+1, "%.*s", w-2, event->desc);
}
-void event_line(WINDOW *win, event_t *event, int y, int x, int w, int full)
+void event_line(WINDOW *win, event_t *event, int y, int x, int w, int flags)
{
int color = get_color(event->cat);
{
int color = get_color(event->cat);
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)
+ wattron(win, A_REVERSE | A_BOLD);
+ if (flags & SHOW_DETAILS) {
if (all_day(&event->start, &event->end))
if (all_day(&event->start, &event->end))
- mvwprintw(win, y, x, " [all day] -");
+ mvwprintw(win, y, x+1, "[all day] - ");
- mvwprintw(win, y, x, " %2d:%02d-%2d:%02d -",
+ mvwprintw(win, y, x+1, "%2d:%02d-%2d:%02d - ",
event->start.hour, event->start.min,
event->end.hour, event->end.min);
x += 15;
event->start.hour, event->start.min,
event->end.hour, event->end.min);
x += 15;
}
if (event->name) {
const char *label = event->name ?: event->desc;
mvwprintw(win, y, x, "%-*.*s", w-1, w-1, label);
x += MIN(strlen(label), w-1);
}
}
if (event->name) {
const char *label = event->name ?: event->desc;
mvwprintw(win, y, x, "%-*.*s", w-1, w-1, label);
x += MIN(strlen(label), w-1);
}
- if (full && event->loc) {
+ if (flags & SHOW_DETAILS && event->loc) {
mvwprintw(win, y, x, " @ %s", event->loc);
}
mvwprintw(win, y, x, " @ %s", event->loc);
}
+ if (flags & SHOW_ACTIVE)
+ wattroff(win, A_REVERSE | A_BOLD);
-void todo_line(WINDOW *win, todo_t *todo, int y, int x, int w, int full)
+void todo_line(WINDOW *win, todo_t *todo, int y, int x, int w, int flags)
{
char perc[16];
char desc[LINES];
{
char perc[16];
char desc[LINES];
if (cat) wattroff(win, COLOR_PAIR(cat));
x += 2;
if (cat) wattroff(win, COLOR_PAIR(cat));
x += 2;
+ /* Set background */
+ if (flags & SHOW_ACTIVE)
+ wattron(win, A_REVERSE | A_BOLD);
+ mvwhline(win, y, x, ' ', COLS-x);
+
/* Print time */
if (no_date(&todo->due))
mvwprintw(win, y, x, "[no due date]");
/* Print time */
if (no_date(&todo->due))
mvwprintw(win, y, x, "[no due date]");
/* Print description */
mvwprintw(win, y, x, "%s", desc);
/* Print description */
mvwprintw(win, y, x, "%s", desc);
+
+ /* Reset flags */
+ if (flags & SHOW_ACTIVE)
+ wattroff(win, A_REVERSE | A_BOLD);
#define COLOR_WORK 8
#define COLOR_OTHER 9
#define COLOR_WORK 8
#define COLOR_OTHER 9
+/* Display flags */
+#define SHOW_DETAILS 0x1
+#define SHOW_ACTIVE 0x2
+
/* Config data */
extern int COMPACT;
/* Config data */
extern int COMPACT;
/* Helper functions */
void event_box(WINDOW *win, event_t *event, int y, int x, int h, int w);
/* Helper functions */
void event_box(WINDOW *win, event_t *event, int y, int x, int h, int w);
-void event_line(WINDOW *win, event_t *event, int y, int x, int w, int full);
-void todo_line(WINDOW *win, todo_t *todo, int y, int x, int w, int full);
+void event_line(WINDOW *win, event_t *event, int y, int x, int w, int flags);
+void todo_line(WINDOW *win, todo_t *todo, int y, int x, int w, int flags);
/* View functions */
void view_init(void);
/* View functions */
void view_init(void);
while (event && before(&event->start, YEAR, MONTH, DAY, 24, 0)) {
if (!before(&event->end, YEAR, MONTH, DAY, 0, 1) &&
get_mins(&event->start, &event->end) > 23*60)
while (event && before(&event->start, YEAR, MONTH, DAY, 24, 0)) {
if (!before(&event->end, YEAR, MONTH, DAY, 0, 1) &&
get_mins(&event->start, &event->end) > 23*60)
- event_line(win, event, y+allday++, 6, COLS, 1);
+ event_line(win, event, y+allday++, 6, COLS, SHOW_DETAILS);
event = event->next;
}
if (allday && !COMPACT)
event = event->next;
}
if (allday && !COMPACT)
wattroff(win, A_BOLD);
row++;
}
wattroff(win, A_BOLD);
row++;
}
- event_line(win, event, row++-line, 4, COLS-2, 1);
+ event_line(win, event, row++-line, 4, COLS-4, SHOW_DETAILS);
if (event->name && event->desc)
mvwprintw(win, row++-line, 14, "%s", event->desc);
cur = next;
if (event->name && event->desc)
mvwprintw(win, row++-line, 14, "%s", event->desc);
cur = next;
int n = 0;
for (todo_t *cur = todos; cur; cur = cur->next)
if (low <= cur->status && cur->status <= high)
int n = 0;
for (todo_t *cur = todos; cur; cur = cur->next)
if (low <= cur->status && cur->status <= high)
- todo_line(win, cur, row+n++, 4, COLS-4, 1);
+ todo_line(win, cur, row+n++, 4, COLS-4, SHOW_DETAILS);