Newer
Older
libkc / modules / include / kc_term.h
/**
 * @file   kc_term.h
 * @brief  KC 端末制御モジュール
 * @copyright  2003 - 2023  Nomura Kei
 * @depends
 * kc.h
 */
#ifndef KC_TERM_H
#define KC_TERM_H

#include <kc.h>

// ASCII エスケープコードによる表示

// 装飾
#define KC_TERM_CLR "\x1b[0m" //!< 装飾無し
#define KC_TERM_BLD "\x1b[1m" //!< 太字
#define KC_TERM_LGT "\x1b[2m" //!< 細字
#define KC_TERM_ITA "\x1b[3m" //!< イタリック
#define KC_TERM_UND "\x1b[4m" //!< 下線
#define KC_TERM_BLN "\x1b[5m" //!< 点滅
#define KC_TERM_FBL "\x1b[6m" //!< 高速点滅
#define KC_TERM_INV "\x1b[7m" //!< 反転表示
#define KC_TERM_HID "\x1b[8m" //!< 非表示 (コピーは可能)
#define KC_TERM_CAN "\x1b[9m" //!< 取り消し

// 文字色
#define KC_TERM_DEF "\x1b[39m"   //!< デフォルト
#define KC_TERM_BLK "\x1b[30m"   //!< 黒
#define KC_TERM_RED "\x1b[31m"   //!< 赤
#define KC_TERM_GRN "\x1b[32m"   //!< 緑
#define KC_TERM_YEL "\x1b[33m"   //!< 黄
#define KC_TERM_BLU "\x1b[34m"   //!< 青
#define KC_TERM_MAG "\x1b[35m"   //!< 紫
#define KC_TERM_CYN "\x1b[36m"   //!< 水
#define KC_TERM_WHT "\x1b[37m"   //!< 白
#define KC_TERM_H_BLK "\x1b[90m" //!< 黒(高輝度)
#define KC_TERM_H_RED "\x1b[91m" //!< 赤(高輝度)
#define KC_TERM_H_GRN "\x1b[92m" //!< 緑(高輝度)
#define KC_TERM_H_YEL "\x1b[93m" //!< 黄(高輝度)
#define KC_TERM_H_BLU "\x1b[94m" //!< 青(高輝度)
#define KC_TERM_H_MAG "\x1b[95m" //!< 紫(高輝度)
#define KC_TERM_H_CYN "\x1b[96m" //!< 水(高輝度)
#define KC_TERM_H_WHT "\x1b[97m" //!< 白(高輝度)
// 背景
#define KC_TERM_BG_DEF "\x1b[49m"    //!< デフォルト
#define KC_TERM_BG_BLK "\x1b[40m"    //!< 黒
#define KC_TERM_BG_RED "\x1b[41m"    //!< 赤
#define KC_TERM_BG_GRN "\x1b[42m"    //!< 緑
#define KC_TERM_BG_YEL "\x1b[43m"    //!< 黄
#define KC_TERM_BG_BLU "\x1b[44m"    //!< 青
#define KC_TERM_BG_MAG "\x1b[45m"    //!< 紫
#define KC_TERM_BG_CYN "\x1b[46m"    //!< 水
#define KC_TERM_BG_WHT "\x1b[47m"    //!< 白
#define KC_TERM_BG_H_BLK "\x1b[100m" //!< 黒(高輝度)
#define KC_TERM_BG_H_RED "\x1b[101m" //!< 赤(高輝度)
#define KC_TERM_BG_H_GRN "\x1b[102m" //!< 緑(高輝度)
#define KC_TERM_BG_H_YEL "\x1b[103m" //!< 黄(高輝度)
#define KC_TERM_BG_H_BLU "\x1b[104m" //!< 青(高輝度)
#define KC_TERM_BG_H_MAG "\x1b[105m" //!< 紫(高輝度)
#define KC_TERM_BG_H_CYN "\x1b[106m" //!< 水(高輝度)
#define KC_TERM_BG_H_WHT "\x1b[107m" //!< 白(高輝度)

// 移動系
#define KC_TERM_UP(n) "\x1b[" #n "A"             //!< n 上に移動
#define KC_TERM_DOWN(n) "\x1b[" #n "B"           //!< n 下に移動
#define KC_TERM_RIGHT(n) "\x1b[" #n "C"          //!< n 右に移動
#define KC_TERM_LEFT(n) "\x1b[" #n "D"           //!< n 左に移動
#define KC_TERM_DOWN_LINE(n) "\x1b[" #n "E"      //!< n 行下に移動(行頭[1列目])
#define KC_TERM_UP_LINE(n) "\x1b[" #n "F"        //!< n 行上に移動(行頭[1列目])
#define KC_TERM_COL(n) "\x1b[" #n "G"            //!< n 列に移動
#define KC_TERM_MOVE(n, m) "\x1b[" #n ";" #m "H" //!< n,m 位置へ移動
#define KC_TERM_DEL_AFT "\x1b[0J"                //!< カーソル以降を消去
#define KC_TERM_DEL_BEF "\x1b[1J"                //!< カーソル以前を消去
#define KC_TERM_DEL "\x1b[2J"                    //!< 全体を消去
#define KC_TERM_DEL_AFT_LINE "\x1b[0K"           //!< カーソル行のカーソル以降を消去
#define KC_TERM_DEL_BEF_LINE "\x1b[1K"           //!< カーソル行のカーソル以前を消去
#define KC_TERM_DEL_LINE "\x1b[2K"               //!< カーソル行を消去
#define KC_TERM_SCROLL(n) "\x1b[" #n "S"         //!< n行分次にスクロール
#define KC_TERM_SCROLL_R(n) "\x1b[" #n "T"       //!< n行分前にスクロール

#endif // KC_TERM_H