60 lines
1.9 KiB
C
60 lines
1.9 KiB
C
/**
|
||
* @file color.h
|
||
* @brief ANSI终端颜色控制码定义
|
||
*
|
||
* 提供跨平台的终端文本颜色和样式控制支持
|
||
*/
|
||
|
||
#ifndef __SMCC_TERMINAL_COLOR_H__
|
||
#define __SMCC_TERMINAL_COLOR_H__
|
||
|
||
/// @name 前景色控制码
|
||
/// @{
|
||
#define ANSI_FG_BLACK "\33[30m" ///< 黑色前景
|
||
#define ANSI_FG_RED "\33[31m" ///< 红色前景
|
||
#define ANSI_FG_GREEN "\33[32m" ///< 绿色前景
|
||
#define ANSI_FG_YELLOW "\33[33m" ///< 黄色前景
|
||
#define ANSI_FG_BLUE "\33[34m" ///< 蓝色前景
|
||
#define ANSI_FG_MAGENTA "\33[35m" ///< 品红色前景
|
||
#define ANSI_FG_CYAN "\33[36m" ///< 青色前景
|
||
#define ANSI_FG_WHITE "\33[37m" ///< 白色前景
|
||
/// @}
|
||
|
||
/// @name 背景色控制码
|
||
/// @{
|
||
#define ANSI_BG_BLACK "\33[40m" ///< 黑色背景
|
||
#define ANSI_BG_RED "\33[41m" ///< 红色背景
|
||
#define ANSI_BG_GREEN "\33[42m" ///< 绿色背景
|
||
#define ANSI_BG_YELLOW "\33[43m" ///< 黄色背景
|
||
#define ANSI_BG_BLUE "\33[44m" ///< 蓝色背景
|
||
#define ANSI_BG_MAGENTA "\33[45m" ///< 品红色背景(注:原始代码此处应为45m)
|
||
#define ANSI_BG_CYAN "\33[46m" ///< 青色背景
|
||
#define ANSI_BG_WHITE "\33[47m" ///< 白色背景
|
||
/// @}
|
||
|
||
/// @name 文字样式控制码
|
||
/// @{
|
||
#define ANSI_UNDERLINED "\33[4m" ///< 下划线样式
|
||
#define ANSI_BOLD "\33[1m" ///< 粗体样式
|
||
#define ANSI_NONE "\33[0m" ///< 重置所有样式
|
||
/// @}
|
||
|
||
/**
|
||
* @def ANSI_FMT
|
||
* @brief 安全文本格式化宏
|
||
* @param str 目标字符串
|
||
* @param fmt ANSI格式序列(可组合多个样式)
|
||
*
|
||
* @note 当定义ANSI_FMT_DISABLE时自动禁用颜色输出
|
||
* @code
|
||
* printf(ANSI_FMT("Warning!", ANSI_FG_YELLOW ANSI_BOLD));
|
||
* @endcode
|
||
*/
|
||
#ifndef ANSI_FMT_DISABLE
|
||
#define ANSI_FMT(str, fmt) fmt str ANSI_NONE ///< 启用样式包裹
|
||
#else
|
||
#define ANSI_FMT(str, fmt) str ///< 禁用样式输出
|
||
#endif
|
||
|
||
#endif // __SMCC_TERMINAL_COLOR_H__
|