diff --git a/src/package.lisp b/src/package.lisp index 22f27af..f3d0d4b 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -1044,8 +1044,8 @@ :find-max-line-width :ncat-complex-string :cat-complex-string - :complex-char->char :cat-tui-string + :tui-char->char :tui-string->chars-string :text-ellipsis :right-pad-text @@ -1062,7 +1062,9 @@ :colorize-line :colorized-line->tui-string :standard-error-notify-life - :with-notify-errors)) + :with-notify-errors + :make-tui-char + :make-tui-string)) (defpackage :command-line (:use diff --git a/src/tui-utils.lisp b/src/tui-utils.lisp index 2fc101d..79c3865 100644 --- a/src/tui-utils.lisp +++ b/src/tui-utils.lisp @@ -163,6 +163,9 @@ as argument `complex-string'." (defalias cat-tui-string #'cat-complex-string) +(defun tui-char->char (complex-char) + (simple-char complex-char)) + (defun tui-string->chars-string (tui-string) "Convert a `tui-string' to a `string'." (croatoan:complex-string->chars-string tui-string)) @@ -381,3 +384,27 @@ latter has a length equals to `total-size'")) (ui:notify (format nil (_ "Error: ~a") e) :life (* (swconf:config-notification-life) 5) :as-error t)))) + +(defun make-tui-char (char + &key + (attributes nil) + (fgcolor nil) + (bgcolor nil)) + "Make a `complex-char'" + (make-instance 'complex-char + :simple-char char + :attributes attributes + :fgcolor fgcolor + :bgcolor bgcolor)) + +(defun make-tui-string (string + &key + (attributes nil) + (fgcolor nil) + (bgcolor nil)) + "Make a `complex-string' using `string' for text contents" + (make-instance 'complex-string + :string string + :attributes attributes + :fgcolor fgcolor + :bgcolor bgcolor))