summaryrefslogtreecommitdiff
path: root/src/g_curses_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/g_curses_input.c')
-rw-r--r--src/g_curses_input.c79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/g_curses_input.c b/src/g_curses_input.c
deleted file mode 100644
index ece0213..0000000
--- a/src/g_curses_input.c
+++ /dev/null
@@ -1,79 +0,0 @@
-#include <curses.h>
-#include <glib.h>
-#include "interface.h"
-#include "g_curses_input.h"
-
-typedef struct _GCursesInput {
- GSource source;
- WINDOW *win;
-} GCursesInput;
-
-static gboolean
-check(GSource *source)
-{
- GCursesInput *curses_input = (GCursesInput*) source;
- gint ch = wgetch(curses_input->win);
-
- if (ch != ERR)
- ungetch(ch);
- return ch != ERR;
-}
-
-static gboolean
-prepare(GSource *source, gint *timeout_)
-{
- *timeout_ = 2;
- return check(source);
-}
-
-static gboolean
-dispatch(GSource *source, GSourceFunc callback, gpointer user_data)
-{
- GCursesInput *curses_input = (GCursesInput*) source;
-
- return callback((gpointer)curses_input->win) ? TRUE : FALSE;
-}
-
-static GSourceFuncs SourceFuncs =
-{
- .prepare = prepare,
- .check = check,
- .dispatch = dispatch,
- .finalize = NULL,
- .closure_callback = NULL, .closure_marshal = NULL
-};
-
-GSource *
-g_curses_input_source_new(WINDOW *win) {
- GSource *source = g_source_new(&SourceFuncs, sizeof(GCursesInput));
- GCursesInput *curses_input = (GCursesInput*) source;
-
- curses_input->win = win;
- nodelay(win, TRUE); /* important! make wgetch non-blocking */
-
- return source;
-}
-
-guint
-g_curses_input_add_full(gint priority, WINDOW *win, GSourceFunc function,
- gpointer data, GDestroyNotify notify)
-{
- g_return_val_if_fail(function != NULL, 0);
- GSource *source = g_curses_input_source_new(win);
- guint id;
-
- if (priority != G_PRIORITY_DEFAULT)
- g_source_set_priority (source, priority);
- g_source_set_callback(source, function, data, notify);
- id = g_source_attach(source, NULL);
- g_source_unref(source);
-
- return id;
-}
-
-guint
-g_curses_input_add(WINDOW *win, GSourceFunc function, gpointer data)
-{
- return g_curses_input_add_full(G_PRIORITY_DEFAULT,
- win, function, data, NULL);
-}