/* parc * Copyright (C) 2025 Ekaitz Zarraga * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef TUI_INTERNALS_H #define TUI_INTERNALS_H #include typedef struct _tui { struct termios term_old_config; struct termios term_config; } tui; typedef struct _mouse_event { int x; int y; } mouse_event; typedef struct _scroll_event { int x; int y; } scroll_event; typedef struct _key_event { int key; int modifiers; } key_event; void tui_cursor_save (void); void tui_cursor_restore (void); void tui_mouse_enable (void); void tui_mouse_disable (void); void tui_cursor_move (int x, int y); void tui_cursor_show (void); void tui_cursor_hide (void); void tui_screen_erase (void); void tui_alternate_buffer_enable (void); void tui_alternate_buffer_disable (void); void tui_input_sequence_consume (void); tui *tui_init (void); void tui_deinit (tui *ui); void tui_loop (tui *ui); #endif /* TUI_INTERNALS_H */