1 #ifdef __cplusplus
2 extern "C" {
3 #endif
4 
5 #ifndef __TICKIT_MOCKTERM_H__
6 #define __TICKIT_MOCKTERM_H__
7 
8 /*
9  * The contents of this file should be considered entirely experimental, and
10  * subject to any change at any time. We make no API or ABI stability
11  * guarantees at this time.
12  */
13 
14 #include "tickit.h"
15 
16 typedef struct
17 {
18   enum {
19     LOG_GOTO = 1,
20     LOG_PRINT,
21     LOG_ERASECH,
22     LOG_CLEAR,
23     LOG_SCROLLRECT,
24     LOG_SETPEN,
25   } type;
26   int val1, val2;  // GOTO(line, col); ERASECH(count, moveend); SCROLLRECT(downward,rightward)
27   const char *str; // PRINT
28   TickitRect rect; // SCROLLRECT
29   TickitPen *pen;  // SETPEN
30 } TickitMockTermLogEntry;
31 
32 /* A TickitMockTerm really is a TickitTerm */
33 typedef TickitTerm TickitMockTerm;
34 
35 TickitMockTerm *tickit_mockterm_new(int lines, int cols);
36 void tickit_mockterm_destroy(TickitMockTerm *mt);
37 
38 void tickit_mockterm_resize(TickitMockTerm *mt, int newlines, int newcols);
39 
40 size_t tickit_mockterm_get_display_text(TickitMockTerm *mt, char *buffer, size_t len, int line, int col, int width);
41 TickitPen *tickit_mockterm_get_display_pen(TickitMockTerm *mt, int line, int col);
42 
43 int tickit_mockterm_loglen(TickitMockTerm *mt);
44 TickitMockTermLogEntry *tickit_mockterm_peeklog(TickitMockTerm *mt, int i);
45 void tickit_mockterm_clearlog(TickitMockTerm *mt);
46 
47 void tickit_mockterm_get_position(TickitMockTerm *mt, int *line, int *col);
48 
49 #endif
50 
51 #ifdef __cplusplus
52 }
53 #endif
54