1 #include "tickit.h"
2
3 #include <errno.h>
4 #include <stdio.h>
5 #include <string.h>
6 #include <unistd.h>
7
on_expose(TickitWindow * win,TickitEventFlags flags,void * _info,void * data)8 static int on_expose(TickitWindow *win, TickitEventFlags flags, void *_info, void *data)
9 {
10 TickitExposeEventInfo *info = _info;
11 TickitRenderBuffer *rb = info->rb;
12
13 tickit_renderbuffer_eraserect(rb, &info->rect);
14
15 TickitPen *pen = tickit_pen_new();
16
17 tickit_renderbuffer_goto(rb, 0, 0);
18 tickit_renderbuffer_text(rb, "ANSI");
19
20 {
21 tickit_renderbuffer_save(rb);
22
23 tickit_renderbuffer_goto(rb, 2, 0);
24 for(int i = 0; i < 16; i++) {
25 tickit_pen_set_colour_attr(pen, TICKIT_PEN_BG, i);
26 tickit_renderbuffer_setpen(rb, pen);
27 tickit_renderbuffer_textf(rb, "[%02d]", i);
28 }
29
30 tickit_renderbuffer_restore(rb);
31 }
32
33 tickit_renderbuffer_goto(rb, 4, 0);
34 tickit_renderbuffer_text(rb, "216 RGB cube");
35
36 {
37 tickit_renderbuffer_save(rb);
38
39 for(int y = 0; y < 6; y++) {
40 tickit_renderbuffer_goto(rb, 6+y, 0);
41 for(int x = 0; x < 36; x++) {
42 tickit_pen_set_colour_attr(pen, TICKIT_PEN_BG, y*36 + x + 16);
43 tickit_renderbuffer_setpen(rb, pen);
44 tickit_renderbuffer_text(rb, " ");
45 }
46 }
47
48 tickit_renderbuffer_restore(rb);
49 }
50
51 tickit_renderbuffer_goto(rb, 13, 0);
52 tickit_renderbuffer_text(rb, "24 Greyscale ramp");
53
54 {
55 tickit_renderbuffer_save(rb);
56
57 tickit_renderbuffer_goto(rb, 15, 0);
58 for(int i = 0; i < 24; i++) {
59 tickit_pen_set_colour_attr(pen, TICKIT_PEN_BG, 232 + i);
60 if(i > 12)
61 tickit_pen_set_colour_attr(pen, TICKIT_PEN_FG, 0);
62 tickit_renderbuffer_setpen(rb, pen);
63 tickit_renderbuffer_textf(rb, "g%02d", i);
64 }
65
66 tickit_renderbuffer_restore(rb);
67 }
68
69 tickit_pen_unref(pen);
70
71 return 1;
72 }
73
main(int argc,char * argv[])74 int main(int argc, char *argv[])
75 {
76 Tickit *t = tickit_new_stdtty();
77
78 TickitWindow *root = tickit_get_rootwin(t);
79 if(!root) {
80 fprintf(stderr, "Cannot create TickitTerm - %s\n", strerror(errno));
81 return 1;
82 }
83
84 tickit_term_setctl_str(tickit_get_term(t),
85 TICKIT_TERMCTL_TITLE_TEXT, "XTerm256 colour demo");
86
87 tickit_window_bind_event(root, TICKIT_WINDOW_ON_EXPOSE, 0, &on_expose, NULL);
88
89 tickit_run(t);
90
91 tickit_window_close(root);
92
93 tickit_unref(t);
94
95 return 0;
96 }
97