evil-qemacs/qestyles.h
Charlie Gordon 820b640c14 Improve color handling
Vastly improve window style handling:
* fix status and minibuf style handling
* add inactive window styles (window, border and mode-line)
* add commands: `set-foreground-color`, `set-background-color`
  `set-default-style`
* add styles for `window`, `window-inactive`, `window-border-inactive`,
  `mode-line-inactive`, `terminal`
* use custom colors for COLOR_TRANSPARENT and terminal *original pair*
* terminal background color is default background color
* change `get_style` argument types and order
* add `qe_styledef_parse` to construct full styles from text
* rename `qe_term_get_style` -> `qe_term_style_parse`
* pass 2 styles and extra flags to `print_at_bytes` to handle
  alignment correctly
2026-06-26 23:36:00 +02:00

99 lines
5.3 KiB
C

#ifdef STYLE_DEF
/* root style, must be complete */
STYLE_DEF(QE_STYLE_DEFAULT, "default", /* #f8d8b0 on black */
QERGB(0xf8, 0xd8, 0xb0), QERGB(0x00, 0x00, 0x00), QE_FONT_FAMILY_FIXED, 12)
/* system styles */
STYLE_DEF(QE_STYLE_WINDOW, "window", /* default */
COLOR_DEFAULT, COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_WINDOW_INACTIVE, "window-inactive", /* same */
COLOR_DEFAULT, COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_MODE_LINE, "mode-line", /* black on grey88 */
QERGB(0x00, 0x00, 0x00), QERGB(0xe0, 0xe0, 0xe0), 0, 0)
STYLE_DEF(QE_STYLE_MODE_LINE_INACTIVE, "mode-line-inactive", /* same */
COLOR_DEFAULT, COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_WINDOW_BORDER, "window-border", /* black on grey88 */
QERGB(0x00, 0x00, 0x00), QERGB(0xe0, 0xe0, 0xe0), 0, 0)
STYLE_DEF(QE_STYLE_WINDOW_BORDER_INACTIVE, "window-border-inactive", /* same */
COLOR_DEFAULT, COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_MINIBUF, "minibuf", /* yellow */
QERGB(0xff, 0xff, 0x00), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_STATUS, "status", /* yellow */
QERGB(0xff, 0xff, 0x00), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_GUTTER, "gutter", /* #f84400 on grey25 */
QERGB(0xf8, 0x44, 0x00), QERGB(0x3f, 0x3f, 0x3f), 0, 0)
/* default style for HTML/CSS2 pages */
STYLE_DEF(QE_STYLE_CSS_DEFAULT, "css-default", /* black on grey74 */
QERGB(0x00, 0x00, 0x00), QERGB(0xbb, 0xbb, 0xbb), QE_FONT_FAMILY_SERIF, 12)
/* coloring styles */
STYLE_DEF(QE_STYLE_HIGHLIGHT, "highlight", /* black on #f8d8b0 */
QERGB(0x00, 0x00, 0x00), QERGB(0xf8, 0xd8, 0xb0), 0, 0)
STYLE_DEF(QE_STYLE_SELECTION, "selection", /* white on blue */
QERGB(0xff, 0xff, 0xff), QERGB(0x00, 0x00, 0xff), 0, 0)
STYLE_DEF(QE_STYLE_ERROR_LOCATION, "error-location", /* bright-white */
QERGB(0xff, 0xff, 0xff), COLOR_TRANSPARENT, QE_FONT_STYLE_BOLD, 0)
/* Generic syntax coloring styles */
STYLE_DEF(QE_STYLE_COMMENT, "comment", /* #f84400 */
QERGB(0xf8, 0x44, 0x00), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_PREPROCESS, "preprocess", /* cyan */
QERGB(0x00, 0xff, 0xff), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_STRING, "string", /* #f8a078 */
QERGB(0xf8, 0xa0, 0x78), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_STRING_Q, "string-q", /* #f8a078 */
QERGB(0xf8, 0xa0, 0x78), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_KEYWORD, "keyword", /* cyan */
QERGB(0x00, 0xff, 0xff), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_NUMBER, "number", /* #f8d8b0 */
QERGB(0xf8, 0xd8, 0xb0), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_FUNCTION, "function", /* #80ccf0 */
QERGB(0x80, 0xcc, 0xf0), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_VARIABLE, "variable", /* #e8dc80 */
QERGB(0xe8, 0xdc, 0x80), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_TYPE, "type", /* #98f898 */
QERGB(0x98, 0xf8, 0x98), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_TAG, "tag", /* cyan */
QERGB(0x00, 0xff, 0xff), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_CSS, "css", /* #98f898 */
QERGB(0x98, 0xf8, 0x98), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_ERROR, "error", /* red */
QERGB(0xff, 0x00, 0x00), COLOR_TRANSPARENT, 0, 0)
/* popup / region styles */
STYLE_DEF(QE_STYLE_REGION_HILITE, "region-hilite", /* black on #80f0f0 */
QERGB(0x00, 0x00, 0x00), QERGB(0x80, 0xf0, 0xf0), 0, 0)
STYLE_DEF(QE_STYLE_SEARCH_HILITE, "search-hilite", /* black on teal */
QERGB(0x00, 0x00, 0x00), QERGB(0x00, 0x80, 0x80), 0, 0)
STYLE_DEF(QE_STYLE_SEARCH_MATCH, "search-match", /* grey88 on #f000f0 */
QERGB(0xe0, 0xe0, 0xe0), QERGB(0xf0, 0x00, 0xf0), 0, 0)
STYLE_DEF(QE_STYLE_BLANK_HILITE, "blank-hilite", /* black on red */
QERGB(0x00, 0x00, 0x00), QERGB(0xff, 0x00, 0x00), 0, 0)
/* shell windows */
STYLE_DEF(QE_STYLE_SHELL, "shell", /* grey */
QERGB(0xbb, 0xbb, 0xbb), COLOR_TRANSPARENT, 0, 0)
/* diff/patch styles */
STYLE_DEF(QE_STYLE_DIFF_HEAD, "diff-head", /* bold bright white */
QERGB(0xff, 0xff, 0xff), COLOR_TRANSPARENT, QE_FONT_STYLE_BOLD, 0)
STYLE_DEF(QE_STYLE_DIFF_MARK, "diff-mark", /* bold grey88 on blue */
QERGB(0xc0, 0xc0, 0xc0), QERGB(0x00, 0x00, 0x40), QE_FONT_STYLE_BOLD, 0)
STYLE_DEF(QE_STYLE_DIFF_OLD, "diff-old", /* default on dark red */
COLOR_TRANSPARENT, QERGB(0x40, 0x00, 0x00), 0, 0)
STYLE_DEF(QE_STYLE_DIFF_NEW, "diff-new", /* default on dark green */
COLOR_TRANSPARENT, QERGB(0x00, 0x40, 0x00), 0, 0)
/* HTML coloring styles */
STYLE_DEF(QE_STYLE_HTML_COMMENT, "html-comment", /* #f84400 */
QERGB(0xf8, 0x44, 0x00), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_HTML_STRING, "html-string", /* #f8a078 */
QERGB(0xf8, 0xa0, 0x78), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_HTML_ENTITY, "html-entity", /* #e8dc80 */
QERGB(0xe8, 0xdc, 0x80), COLOR_TRANSPARENT, 0, 0)
STYLE_DEF(QE_STYLE_HTML_TAG, "html-tag", /* #80ccf0 */
QERGB(0x80, 0xcc, 0xf0), COLOR_TRANSPARENT, 0, 0)
#endif