*.log
*.o
+*.swp
*~
.vimrc
acal
static void on_sigint(int signum)
{
endwin();
- debug("got sigint\n");
exit(0);
}
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
act.sa_handler = on_sigint;
- if (sigaction(SIGINT, &act, NULL) < 0)
- debug("sigint error\n");
+ sigaction(SIGINT, &act, NULL);
act.sa_handler = on_sigwinch;
- if (sigaction(SIGWINCH, &act, NULL) < 0)
- debug("sigwinch error\n");
+ sigaction(SIGWINCH, &act, NULL);
/* Curses setup */
initscr();
init_pair(COLOR_TITLE, COLOR_GREEN, COLOR_BLACK);
init_pair(COLOR_ERROR, COLOR_RED, COLOR_BLACK);
screen_init();
+ screen_draw();
/* Run */
while (1) {
/* Cleanup, see also on_sigint */
endwin();
- debug("cleanup");
return 0;
}
/* Types */
typedef struct {
- char *name;
- void (*init)(void);
- void (*draw)(void);
- int (*run)(int,mmask_t,int,int);
- int keys[8];
+ char *name;
+ void (*init)(WINDOW*);
+ void (*draw)(void);
+ int (*run)(int,mmask_t,int,int);
+ int keys[8];
+ WINDOW *win;
} view_t;
/* Data */
}
attroff(COLOR_PAIR(COLOR_TITLE));
mvhline(1, 0, ACS_HLINE, COLS);
+ refresh();
}
/* Screen init */
void screen_init(void)
{
+ for (int i = 0; i < N_ELEMENTS(views); i++) {
+ if (views[i].init) {
+ views[i].win = newwin(LINES-2, COLS, 2, 0);
+ views[i].init(views[i].win);
+ }
+ }
}
/* Screen draw */
int screen_run(int key, mmask_t btn, int row, int col);
/* View init functions */
-void day_init(void);
-void week_init(void);
-void month_init(void);
-void year_init(void);
-void todo_init(void);
-void notes_init(void);
-void settings_init(void);
-void help_init(void);
+void day_init(WINDOW *win);
+void week_init(WINDOW *win);
+void month_init(WINDOW *win);
+void year_init(WINDOW *win);
+void todo_init(WINDOW *win);
+void notes_init(WINDOW *win);
+void settings_init(WINDOW *win);
+void help_init(WINDOW *win);
/* View draw functions */
void day_draw(void);
#include <ncurses.h>
-/* day init */
-void day_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Day init */
+void day_init(WINDOW *_win)
{
+ win = _win;
}
-/* day draw */
+/* Day draw */
void day_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "day");
+ wrefresh(win);
}
-/* day run */
+/* Day run */
int day_run(int key, mmask_t btn, int row, int col)
{
return 0;
#include <ncurses.h>
-/* help init */
-void help_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Help init */
+void help_init(WINDOW *_win)
{
+ win = _win;
}
-/* help draw */
+/* Help draw */
void help_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "help");
+ wrefresh(win);
}
-/* help run */
+/* Help run */
int help_run(int key, mmask_t btn, int row, int col)
{
return 0;
#!/bin/bash
for file; do
- name=${file%.c}
+ func=$(basename ${file%.c})
+ name=$(echo $func | sed -r 's/./\U&/')
tab=" "
cat > $file <<-EOF
#include <ncurses.h>
+ /* Static data */
+ static WINDOW *win;
+
/* $name init */
- void ${name}_init(void)
+ void ${func}_init(WINDOW *_win)
{
+ ${tab}win = _win;
}
/* $name draw */
- void ${name}_draw(void)
+ void ${func}_draw(void)
{
+ ${tab}mvwprintw(win, 0, 1, "%s\n", "${func}");
+ ${tab}wrefresh(win);
}
/* $name run */
- int ${name}_run(int key, mmask_t btn, int row, int col)
+ int ${func}_run(int key, mmask_t btn, int row, int col)
{
${tab}return 0;
}
#include <ncurses.h>
-/* month init */
-void month_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Month init */
+void month_init(WINDOW *_win)
{
+ win = _win;
}
-/* month draw */
+/* Month draw */
void month_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "month");
+ wrefresh(win);
}
-/* month run */
+/* Month run */
int month_run(int key, mmask_t btn, int row, int col)
{
return 0;
#include <ncurses.h>
-/* notes init */
-void notes_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Notes init */
+void notes_init(WINDOW *_win)
{
+ win = _win;
}
-/* notes draw */
+/* Notes draw */
void notes_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "notes");
+ wrefresh(win);
}
-/* notes run */
+/* Notes run */
int notes_run(int key, mmask_t btn, int row, int col)
{
return 0;
#include <ncurses.h>
-/* settings init */
-void settings_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Settings init */
+void settings_init(WINDOW *_win)
{
+ win = _win;
}
-/* settings draw */
+/* Settings draw */
void settings_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "settings");
+ wrefresh(win);
}
-/* settings run */
+/* Settings run */
int settings_run(int key, mmask_t btn, int row, int col)
{
return 0;
#include <ncurses.h>
-/* todo init */
-void todo_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Todo init */
+void todo_init(WINDOW *_win)
{
+ win = _win;
}
-/* todo draw */
+/* Todo draw */
void todo_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "todo");
+ wrefresh(win);
}
-/* todo run */
+/* Todo run */
int todo_run(int key, mmask_t btn, int row, int col)
{
return 0;
#include <ncurses.h>
-/* week init */
-void week_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Week init */
+void week_init(WINDOW *_win)
{
+ win = _win;
}
-/* week draw */
+/* Week draw */
void week_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "week");
+ wrefresh(win);
}
-/* week run */
+/* Week run */
int week_run(int key, mmask_t btn, int row, int col)
{
return 0;
#include <ncurses.h>
-/* year init */
-void year_init(void)
+/* Static data */
+static WINDOW *win;
+
+/* Year init */
+void year_init(WINDOW *_win)
{
+ win = _win;
}
-/* year draw */
+/* Year draw */
void year_draw(void)
{
+ mvwprintw(win, 0, 1, "%s\n", "year");
+ wrefresh(win);
}
-/* year run */
+/* Year run */
int year_run(int key, mmask_t btn, int row, int col)
{
return 0;