summaryrefslogtreecommitdiff
path: root/src/tsm_screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tsm_screen.h')
-rw-r--r--src/tsm_screen.h196
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 */