4 #include "console_sel.h"
6 #pragma RcB2 DEP "console.c"
10 #include "console_events.h"
11 #include "console_chars.h"
13 #include "sdlconsole.h"
14 #include "tbconsole.h"
15 #include "ncconsole.h"
16 #include "nopconsole.h"
18 #include "fonts/font.h"
20 extern unsigned int console_chartab
[CC_MAX
];
21 #define CCT(charname) (console_chartab[charname])
23 #include "fonts/allfonts.h"
32 typedef struct Console
{
33 enum ConsoleBackend backendtype
;
35 point dim
; //dimensions
37 int automove
:1; // flag which affects putchar and printf (cursor will be advanced)
49 /* initialize a Console struct and set backend type. does not initialize
50 graphics mode yet so console_getbackendtype() can be queried before the
51 terminal goes into some weird mode. */
52 void console_init(struct Console
* self
);
54 /* must be called after console_init() - initializes the graphics mode.
55 in case the backend is a terminal, the terminal will be put into
56 a "painters mode", and the resolution and font arguments ignored. */
57 void console_init_graphics(Console
* self
, point resolution
, font
* fnt
);
59 /* cleanup restores the original term behaviour and releases acquired resources. */
60 void console_cleanup(struct Console
* self
);
61 int console_getcolorcount(Console
*self
);
63 int console_setcolor(struct Console
* self
, int is_fg
, rgb_t mycolor
);
64 int console_setcolors(struct Console
* self
, rgb_t bgcolor
, rgb_t fgcolor
);
65 void console_initoutput(struct Console
* self
);
66 /* get width and height of the console display (in characters) */
67 void console_getbounds(struct Console
* self
, int* width
, int* height
);
68 void console_getcursor(struct Console
* self
, int* x
, int* y
);
69 void console_goto(struct Console
* self
, int x
, int y
);
70 /* prints a char and NOT advances cursor */
71 void console_addchar(struct Console
* self
, int c
, unsigned int attributes
);
72 /* prints a char and advances cursor */
73 void console_printchar(struct Console
* self
, int c
, unsigned int attributes
);
75 /* prints a char and updates (redraws) the screen when doupdate is 1. advances cursor if automove is set. */
76 void console_putchar(Console
* self
, int ch
, int doupdate
);
78 //void console_printfxy (struct Console* con, int x, int y, const char* fmt, ...);
80 #define console_printfxy(con, x, y, ...) do { console_goto(con, x, y); console_printf(con, __VA_ARGS__); } while (0)
82 void console_printf (struct Console
* con
, const char* fmt
, ...);
84 int console_getkey(struct Console
* self
);
86 int console_getkey_nb(struct Console
* self
);
87 void console_sleep(struct Console
* self
, int ms
);
89 #define console_draw(C) console_refresh(C)
90 void console_refresh(struct Console
* self
);
91 void console_clear(struct Console
* self
);
93 void console_lock(void);
94 void console_unlock(void);
95 void console_blink_cursor(struct Console
* self
);
98 void console_fill(Console
*c
, rect
* area
, int ch
);
99 mouse_event
console_getmouse(Console
* c
);
100 void console_advance_cursor(Console
* c
, int steps
);
101 void console_setautomove(Console
* c
, int automove
);
102 void console_linebreak(Console
* c
);
103 void console_cursor_up(Console
* c
);
104 void console_cursor_down(Console
* c
);
105 void console_cursor_left(Console
* c
);
106 void console_cursor_right(Console
* c
);
107 void console_unblink(Console
* c
);
108 enum ConsoleBackend
console_getbackendtype(Console
*c
);
110 /* sdl-specific, only implemented in SDL backend. */
111 void console_toggle_fullscreen(Console
*c
);
112 void console_settitle(Console
*c
, const char *title
);
117 rgb_tuple sdlconsole_getcolors(sdlconsole* c);
118 void sdlconsole_putchar(sdlconsole* c, int ch, int doupdate);
119 int sdlconsole_getchar(sdlconsole* c);
120 void sdlconsole_cursor_up(sdlconsole* c);
121 void sdlconsole_cursor_down(sdlconsole* c);
122 void sdlconsole_cursor_left(sdlconsole* c);
123 void sdlconsole_cursor_right(sdlconsole* c);
125 OK void sdlconsole_cleanup(sdlconsole* c);
126 OK void sdlconsole_goto(sdlconsole* c, int x, int y);
127 OK void sdlconsole_setcolor(sdlconsole* c, int is_fg, sdl_rgb_t color);
128 OK void sdlconsole_setcolors(sdlconsole* c, sdl_rgb_t bgcolor, sdl_rgb_t fgcolor);
129 OK void sdlconsole_getcursor(sdlconsole* c, int* x, int* y);
130 OK void sdlconsole_getbounds(sdlconsole* c, int* x, int* y);
131 OK void sdlconsole_printf(sdlconsole* c, const char* fmt, ...);
135 void sdlconsole_draw(sdlconsole* c);
136 void sdlconsole_blink_cursor(sdlconsole* c);
137 void sdlconsole_unblink(sdlconsole* c);
138 void sdlconsole_scrollup(sdlconsole* c);
139 void sdlconsole_linebreak(sdlconsole* c);
140 void sdlconsole_advance_cursor(sdlconsole* c, int steps);
141 void sdlconsole_toggle_fullscreen(sdlconsole* c);
143 void sdlconsole_resize(sdlconsole *c, int w, int h);
144 void sdlconsole_setautomove(sdlconsole* c, int automove);
145 mouse_event sdlconsole_getmouse(sdlconsole* c);
146 void sdlconsole_fill(sdlconsole *c, rect* area, int ch);
147 int sdlconsole_translate_event(sdlconsole* c, SDL_Event* ev);
148 void sdlconsole_lock(void);
149 void sdlconsole_unlock(void); */