Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
ncurses.c File Reference
#include <curses.h>
#include "duktape.h"

Go to the source code of this file.

Functions

static int ncurses_initscr (duk_context *ctx)
 
static int ncurses_endwin (duk_context *ctx)
 
static int ncurses_delscreen (duk_context *ctx)
 
static int ncurses_getmaxyx (duk_context *ctx)
 
static int ncurses_printw (duk_context *ctx)
 
static int ncurses_mvprintw (duk_context *ctx)
 
static int ncurses_refresh (duk_context *ctx)
 
static int ncurses_getch (duk_context *ctx)
 
void ncurses_register (duk_context *ctx)
 

Variables

static duk_function_list_entry ncurses_funcs []
 

Function Documentation

◆ ncurses_delscreen()

static int ncurses_delscreen ( duk_context * ctx)
static

Definition at line 30 of file duktape-1.5.2/examples/eventloop/ncurses.c.

30 {
31 /* XXX: no screen management now */
32 (void) ctx;
33 return 0;
34}

◆ ncurses_endwin()

static int ncurses_endwin ( duk_context * ctx)
static

Definition at line 22 of file duktape-1.5.2/examples/eventloop/ncurses.c.

22 {
23 int rc;
24
25 rc = endwin();
26 duk_push_int(ctx, rc);
27 return 1;
28}
DUK_EXTERNAL void duk_push_int(duk_context *ctx, duk_int_t val)

References duk_push_int().

◆ ncurses_getch()

static int ncurses_getch ( duk_context * ctx)
static

Definition at line 78 of file duktape-1.5.2/examples/eventloop/ncurses.c.

78 {
79 int rc;
80
81 rc = getch();
82 duk_push_int(ctx, rc);
83 return 1;
84}

References duk_push_int().

◆ ncurses_getmaxyx()

static int ncurses_getmaxyx ( duk_context * ctx)
static

Definition at line 36 of file duktape-1.5.2/examples/eventloop/ncurses.c.

36 {
37 int row, col;
38
39 getmaxyx(stdscr, row, col);
40
41 duk_push_array(ctx);
42 duk_push_int(ctx, row);
43 duk_put_prop_index(ctx, -2, 0);
44 duk_push_int(ctx, col);
45 duk_put_prop_index(ctx, -2, 1);
46 return 1;
47}
DUK_EXTERNAL duk_bool_t duk_put_prop_index(duk_context *ctx, duk_idx_t obj_idx, duk_uarridx_t arr_idx)
DUK_EXTERNAL duk_idx_t duk_push_array(duk_context *ctx)

References duk_push_array(), duk_push_int(), and duk_put_prop_index().

◆ ncurses_initscr()

static int ncurses_initscr ( duk_context * ctx)
static

Definition at line 14 of file duktape-1.5.2/examples/eventloop/ncurses.c.

14 {
15 WINDOW *win;
16
17 win = initscr();
18 duk_push_pointer(ctx, (void *) win);
19 return 1;
20}
DUK_EXTERNAL void duk_push_pointer(duk_context *ctx, void *val)

References duk_push_pointer().

◆ ncurses_mvprintw()

static int ncurses_mvprintw ( duk_context * ctx)
static

Definition at line 59 of file duktape-1.5.2/examples/eventloop/ncurses.c.

59 {
60 int y = duk_to_int(ctx, 0);
61 int x = duk_to_int(ctx, 1);
62 const char *str = duk_to_string(ctx, 2);
63 int rc;
64
65 rc = mvprintw(y, x, "%s", str);
66 duk_push_int(ctx, rc);
67 return 1;
68}
DUK_EXTERNAL const char * duk_to_string(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_int_t duk_to_int(duk_context *ctx, duk_idx_t index)

References duk_push_int(), duk_to_int(), and duk_to_string().

◆ ncurses_printw()

static int ncurses_printw ( duk_context * ctx)
static

Definition at line 49 of file duktape-1.5.2/examples/eventloop/ncurses.c.

49 {
50 int rc;
51 const char *str;
52
53 str = duk_to_string(ctx, 0);
54 rc = printw("%s", str);
55 duk_push_int(ctx, rc);
56 return 1;
57}

References duk_push_int(), and duk_to_string().

◆ ncurses_refresh()

static int ncurses_refresh ( duk_context * ctx)
static

Definition at line 70 of file duktape-1.5.2/examples/eventloop/ncurses.c.

70 {
71 int rc;
72
73 rc = refresh();
74 duk_push_int(ctx, rc);
75 return 1;
76}

References duk_push_int().

◆ ncurses_register()

void ncurses_register ( duk_context * ctx)

Definition at line 98 of file duktape-1.5.2/examples/eventloop/ncurses.c.

98 {
99 /* Set global 'Ncurses'. */
101 duk_push_object(ctx);
103 duk_put_prop_string(ctx, -2, "Ncurses");
104 duk_pop(ctx);
105}
static duk_function_list_entry ncurses_funcs[]
DUK_EXTERNAL duk_bool_t duk_put_prop_string(duk_context *ctx, duk_idx_t obj_idx, const char *key)
DUK_EXTERNAL duk_idx_t duk_push_object(duk_context *ctx)
DUK_EXTERNAL void duk_push_global_object(duk_context *ctx)
DUK_EXTERNAL void duk_put_function_list(duk_context *ctx, duk_idx_t obj_index, const duk_function_list_entry *funcs)
DUK_EXTERNAL void duk_pop(duk_context *ctx)

Variable Documentation

◆ ncurses_funcs

duk_function_list_entry ncurses_funcs[]
static
Initial value:
= {
{ "initscr", ncurses_initscr, 0 },
{ "endwin", ncurses_endwin, 0 },
{ "delscreen", ncurses_delscreen, 0 },
{ "getmaxyx", ncurses_getmaxyx, 0 },
{ "printw", ncurses_printw, 1 },
{ "mvprintw", ncurses_mvprintw, 3 },
{ "refresh", ncurses_refresh, 0 },
{ "getch", ncurses_getch, 0 },
{ NULL, NULL, 0 }
}
static int ncurses_mvprintw(duk_context *ctx)
static int ncurses_initscr(duk_context *ctx)
static int ncurses_getch(duk_context *ctx)
static int ncurses_getmaxyx(duk_context *ctx)
static int ncurses_endwin(duk_context *ctx)
static int ncurses_delscreen(duk_context *ctx)
static int ncurses_refresh(duk_context *ctx)
static int ncurses_printw(duk_context *ctx)
#define NULL
Definition gmacros.h:924

Definition at line 86 of file duktape-1.5.2/examples/eventloop/ncurses.c.

86 {
87 { "initscr", ncurses_initscr, 0 },
88 { "endwin", ncurses_endwin, 0 },
89 { "delscreen", ncurses_delscreen, 0 },
90 { "getmaxyx", ncurses_getmaxyx, 0 },
91 { "printw", ncurses_printw, 1 },
92 { "mvprintw", ncurses_mvprintw, 3 },
93 { "refresh", ncurses_refresh, 0 },
94 { "getch", ncurses_getch, 0 },
95 { NULL, NULL, 0 }
96};

Referenced by ncurses_register().