1 #include "tickit.h"
2 #include "taplib.h"
3 #include "taplib-mockterm.h"
4
main(int argc,char * argv[])5 int main(int argc, char *argv[])
6 {
7 TickitTerm *tt = make_term(25, 80);
8 TickitRenderBuffer *rb;
9 char buffer[256];
10
11 rb = tickit_renderbuffer_new(10, 20);
12
13 // Absolute characters
14 {
15 TickitPen *fg_pen = tickit_pen_new_attrs(TICKIT_PEN_FG, 4, 0);
16 tickit_renderbuffer_setpen(rb, fg_pen);
17
18 tickit_renderbuffer_char_at(rb, 5, 5, 0x41);
19 tickit_renderbuffer_char_at(rb, 5, 6, 0x42);
20 tickit_renderbuffer_char_at(rb, 5, 7, 0x43);
21
22 is_int(tickit_renderbuffer_get_cell_text(rb, 5, 5, buffer, sizeof buffer), 1, "get_cell_text CHAR at 5,5");
23 is_str(buffer, "A", "buffer text at 5,5");
24
25 tickit_renderbuffer_flush_to_term(rb, tt);
26 is_termlog("RenderBuffer renders char_at to terminal",
27 GOTO(5,5), SETPEN(.fg=4), PRINT("A"),
28 SETPEN(.fg=4), PRINT("B"),
29 SETPEN(.fg=4), PRINT("C"),
30 NULL);
31
32 tickit_pen_unref(fg_pen);
33 }
34
35 // VC characters
36 {
37 tickit_renderbuffer_goto(rb, 0, 4);
38 TickitPen *fg_pen = tickit_pen_new_attrs(TICKIT_PEN_FG, 5, 0);
39 tickit_renderbuffer_setpen(rb, fg_pen);
40
41 tickit_renderbuffer_char(rb, 0x47);
42
43 tickit_renderbuffer_flush_to_term(rb, tt);
44 is_termlog("RenderBuffer renders chars at VC",
45 GOTO(0,4), SETPEN(.fg=5), PRINT("G"),
46 NULL);
47
48 tickit_pen_unref(fg_pen);
49 }
50
51 // Characters with translation
52 {
53 tickit_renderbuffer_translate(rb, 3, 5);
54
55 tickit_renderbuffer_char_at(rb, 1, 1, 0x31);
56 tickit_renderbuffer_char_at(rb, 1, 2, 0x32);
57
58 tickit_renderbuffer_flush_to_term(rb, tt);
59 is_termlog("RenderBuffer renders char_at with translation",
60 GOTO(4,6), SETPEN(), PRINT("1"),
61 SETPEN(), PRINT("2"),
62 NULL);
63 }
64
65 tickit_renderbuffer_unref(rb);
66 tickit_term_unref(tt);
67
68 return exit_status();
69 }
70