1static void ui_bridge_mode_info_set_event(void **argv)
2{
3 UI *ui = UI(argv[0]);
4 Array cursor_styles = (Array){.items = argv[2],.size = (size_t)argv[3]};
5 ui->mode_info_set(ui, PTR2INT(argv[1]), cursor_styles);
6 api_free_array(cursor_styles);
7}
8
9static void ui_bridge_mode_info_set(UI *ui, Boolean enabled, Array cursor_styles)
10{
11 Array copy_cursor_styles = copy_array(cursor_styles);
12 UI_BRIDGE_CALL(ui, mode_info_set, 4, ui, INT2PTR(enabled), copy_cursor_styles.items, INT2PTR(copy_cursor_styles.size));
13}
14
15static void ui_bridge_update_menu_event(void **argv)
16{
17 UI *ui = UI(argv[0]);
18 ui->update_menu(ui);
19}
20
21static void ui_bridge_update_menu(UI *ui)
22{
23 UI_BRIDGE_CALL(ui, update_menu, 1, ui);
24}
25
26static void ui_bridge_busy_start_event(void **argv)
27{
28 UI *ui = UI(argv[0]);
29 ui->busy_start(ui);
30}
31
32static void ui_bridge_busy_start(UI *ui)
33{
34 UI_BRIDGE_CALL(ui, busy_start, 1, ui);
35}
36
37static void ui_bridge_busy_stop_event(void **argv)
38{
39 UI *ui = UI(argv[0]);
40 ui->busy_stop(ui);
41}
42
43static void ui_bridge_busy_stop(UI *ui)
44{
45 UI_BRIDGE_CALL(ui, busy_stop, 1, ui);
46}
47
48static void ui_bridge_mouse_on_event(void **argv)
49{
50 UI *ui = UI(argv[0]);
51 ui->mouse_on(ui);
52}
53
54static void ui_bridge_mouse_on(UI *ui)
55{
56 UI_BRIDGE_CALL(ui, mouse_on, 1, ui);
57}
58
59static void ui_bridge_mouse_off_event(void **argv)
60{
61 UI *ui = UI(argv[0]);
62 ui->mouse_off(ui);
63}
64
65static void ui_bridge_mouse_off(UI *ui)
66{
67 UI_BRIDGE_CALL(ui, mouse_off, 1, ui);
68}
69
70static void ui_bridge_mode_change_event(void **argv)
71{
72 UI *ui = UI(argv[0]);
73 String mode = (String){.data = argv[1],.size = (size_t)argv[2]};
74 ui->mode_change(ui, mode, PTR2INT(argv[3]));
75 api_free_string(mode);
76}
77
78static void ui_bridge_mode_change(UI *ui, String mode, Integer mode_idx)
79{
80 String copy_mode = copy_string(mode);
81 UI_BRIDGE_CALL(ui, mode_change, 4, ui, copy_mode.data, INT2PTR(copy_mode.size), INT2PTR(mode_idx));
82}
83
84static void ui_bridge_bell_event(void **argv)
85{
86 UI *ui = UI(argv[0]);
87 ui->bell(ui);
88}
89
90static void ui_bridge_bell(UI *ui)
91{
92 UI_BRIDGE_CALL(ui, bell, 1, ui);
93}
94
95static void ui_bridge_visual_bell_event(void **argv)
96{
97 UI *ui = UI(argv[0]);
98 ui->visual_bell(ui);
99}
100
101static void ui_bridge_visual_bell(UI *ui)
102{
103 UI_BRIDGE_CALL(ui, visual_bell, 1, ui);
104}
105
106static void ui_bridge_flush_event(void **argv)
107{
108 UI *ui = UI(argv[0]);
109 ui->flush(ui);
110}
111
112static void ui_bridge_flush(UI *ui)
113{
114 UI_BRIDGE_CALL(ui, flush, 1, ui);
115}
116
117static void ui_bridge_set_title_event(void **argv)
118{
119 UI *ui = UI(argv[0]);
120 String title = (String){.data = argv[1],.size = (size_t)argv[2]};
121 ui->set_title(ui, title);
122 api_free_string(title);
123}
124
125static void ui_bridge_set_title(UI *ui, String title)
126{
127 String copy_title = copy_string(title);
128 UI_BRIDGE_CALL(ui, set_title, 3, ui, copy_title.data, INT2PTR(copy_title.size));
129}
130
131static void ui_bridge_set_icon_event(void **argv)
132{
133 UI *ui = UI(argv[0]);
134 String icon = (String){.data = argv[1],.size = (size_t)argv[2]};
135 ui->set_icon(ui, icon);
136 api_free_string(icon);
137}
138
139static void ui_bridge_set_icon(UI *ui, String icon)
140{
141 String copy_icon = copy_string(icon);
142 UI_BRIDGE_CALL(ui, set_icon, 3, ui, copy_icon.data, INT2PTR(copy_icon.size));
143}
144
145static void ui_bridge_default_colors_set_event(void **argv)
146{
147 UI *ui = UI(argv[0]);
148 ui->default_colors_set(ui, PTR2INT(argv[1]), PTR2INT(argv[2]), PTR2INT(argv[3]), PTR2INT(argv[4]), PTR2INT(argv[5]));
149}
150
151static void ui_bridge_default_colors_set(UI *ui, Integer rgb_fg, Integer rgb_bg, Integer rgb_sp, Integer cterm_fg, Integer cterm_bg)
152{
153 UI_BRIDGE_CALL(ui, default_colors_set, 6, ui, INT2PTR(rgb_fg), INT2PTR(rgb_bg), INT2PTR(rgb_sp), INT2PTR(cterm_fg), INT2PTR(cterm_bg));
154}
155
156static void ui_bridge_grid_resize_event(void **argv)
157{
158 UI *ui = UI(argv[0]);
159 ui->grid_resize(ui, PTR2INT(argv[1]), PTR2INT(argv[2]), PTR2INT(argv[3]));
160}
161
162static void ui_bridge_grid_resize(UI *ui, Integer grid, Integer width, Integer height)
163{
164 UI_BRIDGE_CALL(ui, grid_resize, 4, ui, INT2PTR(grid), INT2PTR(width), INT2PTR(height));
165}
166
167static void ui_bridge_grid_clear_event(void **argv)
168{
169 UI *ui = UI(argv[0]);
170 ui->grid_clear(ui, PTR2INT(argv[1]));
171}
172
173static void ui_bridge_grid_clear(UI *ui, Integer grid)
174{
175 UI_BRIDGE_CALL(ui, grid_clear, 2, ui, INT2PTR(grid));
176}
177
178static void ui_bridge_grid_cursor_goto_event(void **argv)
179{
180 UI *ui = UI(argv[0]);
181 ui->grid_cursor_goto(ui, PTR2INT(argv[1]), PTR2INT(argv[2]), PTR2INT(argv[3]));
182}
183
184static void ui_bridge_grid_cursor_goto(UI *ui, Integer grid, Integer row, Integer col)
185{
186 UI_BRIDGE_CALL(ui, grid_cursor_goto, 4, ui, INT2PTR(grid), INT2PTR(row), INT2PTR(col));
187}
188
189static void ui_bridge_grid_scroll_event(void **argv)
190{
191 UI *ui = UI(argv[0]);
192 ui->grid_scroll(ui, PTR2INT(argv[1]), PTR2INT(argv[2]), PTR2INT(argv[3]), PTR2INT(argv[4]), PTR2INT(argv[5]), PTR2INT(argv[6]), PTR2INT(argv[7]));
193}
194
195static void ui_bridge_grid_scroll(UI *ui, Integer grid, Integer top, Integer bot, Integer left, Integer right, Integer rows, Integer cols)
196{
197 UI_BRIDGE_CALL(ui, grid_scroll, 8, ui, INT2PTR(grid), INT2PTR(top), INT2PTR(bot), INT2PTR(left), INT2PTR(right), INT2PTR(rows), INT2PTR(cols));
198}
199
200