diff --git a/src/tsm_screen.c b/src/tsm_screen.c index 2cbdae5..c2990a7 100644 --- a/src/tsm_screen.c +++ b/src/tsm_screen.c @@ -60,6 +60,7 @@ struct line { struct tsm_screen { size_t ref; llog_submit_t llog; + unsigned int opts; unsigned int flags; struct shl_timer *timer; @@ -456,6 +457,30 @@ void tsm_screen_unref(struct tsm_screen *con) free(con); } +void tsm_screen_set_opts(struct tsm_screen *scr, unsigned int opts) +{ + if (!scr || !opts) + return; + + scr->opts |= opts; +} + +void tsm_screen_reset_opts(struct tsm_screen *scr, unsigned int opts) +{ + if (!scr || !opts) + return; + + scr->opts &= ~opts; +} + +unsigned int tsm_screen_get_opts(struct tsm_screen *scr) +{ + if (!scr) + return 0; + + return scr->opts; +} + unsigned int tsm_screen_get_width(struct tsm_screen *con) { if (!con) diff --git a/src/tsm_screen.h b/src/tsm_screen.h index 7a01469..688b70c 100644 --- a/src/tsm_screen.h +++ b/src/tsm_screen.h @@ -103,6 +103,10 @@ int tsm_screen_new(struct tsm_screen **out, tsm_log_t log); 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,