diff options
Diffstat (limited to 'src/tsm_screen.h')
-rw-r--r-- | src/tsm_screen.h | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/src/tsm_screen.h b/src/tsm_screen.h deleted file mode 100644 index b257cf7..0000000 --- a/src/tsm_screen.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - * TSM - Screen Management - * - * Copyright (c) 2011-2012 David Herrmann <dh.herrmann@googlemail.com> - * Copyright (c) 2011 University of Tuebingen - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (the "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Screen Management - * This screen does not emulate any terminal at all. This subsystem just - * provides functions to draw a screen to a framebuffer and modifying the state - * of it. - */ - -#ifndef TSM_SCREEN_H -#define TSM_SCREEN_H - -#include <inttypes.h> -#include <stdarg.h> -#include <stdbool.h> -#include <stdlib.h> -#include "tsm_unicode.h" - -/* screen objects */ - -struct tsm_screen; - -/** - * tsm_log_t: - * @data: user-provided data - * @file: Source code file where the log message originated or NULL - * @line: Line number in source code or 0 - * @func: C function name or NULL - * @subs: Subsystem where the message came from or NULL - * @sev: Kernel-style severity between 0=FATAL and 7=DEBUG - * @format: printf-formatted message - * @args: arguments for printf-style @format - * - * This is the type of a logging callback function. You can always pass NULL - * instead of such a function to disable logging. - */ -typedef void (*tsm_log_t) (void *data, - const char *file, - int line, - const char *func, - const char *subs, - unsigned int sev, - const char *format, - va_list args); - -#define TSM_SCREEN_INSERT_MODE 0x01 -#define TSM_SCREEN_AUTO_WRAP 0x02 -#define TSM_SCREEN_REL_ORIGIN 0x04 -#define TSM_SCREEN_INVERSE 0x08 -#define TSM_SCREEN_HIDE_CURSOR 0x10 -#define TSM_SCREEN_FIXED_POS 0x20 -#define TSM_SCREEN_ALTERNATE 0x40 - -#define TSM_SCREEN_OPT_RENDER_TIMING 0x01 - -struct tsm_screen_attr { - int8_t fccode; /* foreground color code or <0 for rgb */ - int8_t bccode; /* background color code or <0 for rgb */ - uint8_t fr; /* foreground red */ - uint8_t fg; /* foreground green */ - uint8_t fb; /* foreground blue */ - uint8_t br; /* background red */ - uint8_t bg; /* background green */ - uint8_t bb; /* background blue */ - unsigned int bold : 1; /* bold character */ - unsigned int underline : 1; /* underlined character */ - unsigned int inverse : 1; /* inverse colors */ - unsigned int protect : 1; /* cannot be erased */ -}; - -typedef int (*tsm_screen_prepare_cb) (struct tsm_screen *con, - void *data); -typedef int (*tsm_screen_draw_cb) (struct tsm_screen *con, - uint32_t id, - const uint32_t *ch, - size_t len, - unsigned int width, - unsigned int posx, - unsigned int posy, - const struct tsm_screen_attr *attr, - void *data); -typedef int (*tsm_screen_render_cb) (struct tsm_screen *con, - void *data); - -int tsm_screen_new(struct tsm_screen **out, tsm_log_t log, void *log_data); -void tsm_screen_ref(struct tsm_screen *con); -void tsm_screen_unref(struct tsm_screen *con); - -void tsm_screen_set_opts(struct tsm_screen *scr, unsigned int opts); -void tsm_screen_reset_opts(struct tsm_screen *scr, unsigned int opts); -unsigned int tsm_screen_get_opts(struct tsm_screen *scr); - -unsigned int tsm_screen_get_width(struct tsm_screen *con); -unsigned int tsm_screen_get_height(struct tsm_screen *con); -int tsm_screen_resize(struct tsm_screen *con, unsigned int x, - unsigned int y); -int tsm_screen_set_margins(struct tsm_screen *con, - unsigned int top, unsigned int bottom); -void tsm_screen_set_max_sb(struct tsm_screen *con, unsigned int max); -void tsm_screen_clear_sb(struct tsm_screen *con); - -void tsm_screen_sb_up(struct tsm_screen *con, unsigned int num); -void tsm_screen_sb_down(struct tsm_screen *con, unsigned int num); -void tsm_screen_sb_page_up(struct tsm_screen *con, unsigned int num); -void tsm_screen_sb_page_down(struct tsm_screen *con, unsigned int num); -void tsm_screen_sb_reset(struct tsm_screen *con); - -void tsm_screen_set_def_attr(struct tsm_screen *con, - const struct tsm_screen_attr *attr); -void tsm_screen_reset(struct tsm_screen *con); -void tsm_screen_set_flags(struct tsm_screen *con, unsigned int flags); -void tsm_screen_reset_flags(struct tsm_screen *con, unsigned int flags); -unsigned int tsm_screen_get_flags(struct tsm_screen *con); - -unsigned int tsm_screen_get_cursor_x(struct tsm_screen *con); -unsigned int tsm_screen_get_cursor_y(struct tsm_screen *con); - -void tsm_screen_set_tabstop(struct tsm_screen *con); -void tsm_screen_reset_tabstop(struct tsm_screen *con); -void tsm_screen_reset_all_tabstops(struct tsm_screen *con); - -void tsm_screen_write(struct tsm_screen *con, tsm_symbol_t ch, - const struct tsm_screen_attr *attr); -void tsm_screen_newline(struct tsm_screen *con); -void tsm_screen_scroll_up(struct tsm_screen *con, unsigned int num); -void tsm_screen_scroll_down(struct tsm_screen *con, unsigned int num); -void tsm_screen_move_to(struct tsm_screen *con, unsigned int x, - unsigned int y); -void tsm_screen_move_up(struct tsm_screen *con, unsigned int num, - bool scroll); -void tsm_screen_move_down(struct tsm_screen *con, unsigned int num, - bool scroll); -void tsm_screen_move_left(struct tsm_screen *con, unsigned int num); -void tsm_screen_move_right(struct tsm_screen *con, unsigned int num); -void tsm_screen_move_line_end(struct tsm_screen *con); -void tsm_screen_move_line_home(struct tsm_screen *con); -void tsm_screen_tab_right(struct tsm_screen *con, unsigned int num); -void tsm_screen_tab_left(struct tsm_screen *con, unsigned int num); -void tsm_screen_insert_lines(struct tsm_screen *con, unsigned int num); -void tsm_screen_delete_lines(struct tsm_screen *con, unsigned int num); -void tsm_screen_insert_chars(struct tsm_screen *con, unsigned int num); -void tsm_screen_delete_chars(struct tsm_screen *con, unsigned int num); -void tsm_screen_erase_cursor(struct tsm_screen *con); -void tsm_screen_erase_chars(struct tsm_screen *con, unsigned int num); -void tsm_screen_erase_cursor_to_end(struct tsm_screen *con, - bool protect); -void tsm_screen_erase_home_to_cursor(struct tsm_screen *con, - bool protect); -void tsm_screen_erase_current_line(struct tsm_screen *con, - bool protect); -void tsm_screen_erase_screen_to_cursor(struct tsm_screen *con, - bool protect); -void tsm_screen_erase_cursor_to_screen(struct tsm_screen *con, - bool protect); -void tsm_screen_erase_screen(struct tsm_screen *con, bool protect); - -void tsm_screen_selection_reset(struct tsm_screen *con); -void tsm_screen_selection_start(struct tsm_screen *con, - unsigned int posx, - unsigned int posy); -void tsm_screen_selection_target(struct tsm_screen *con, - unsigned int posx, - unsigned int posy); -int tsm_screen_selection_copy(struct tsm_screen *con, char **out); - -void tsm_screen_draw(struct tsm_screen *con, - tsm_screen_prepare_cb prepare_cb, - tsm_screen_draw_cb draw_cb, - tsm_screen_render_cb render_cb, - void *data); - -#endif /* TSM_SCREEN_H */ |