1# -*- tcl -*-
2# ### ### ### ######### ######### #########
3## Terminal packages - ANSI - Attribute codes
4
5# ### ### ### ######### ######### #########
6## Requirements
7
8package require  term::ansi::code ; # Constants
9
10namespace eval ::term::ansi::code::attr {}
11
12# ### ### ### ######### ######### #########
13## API. Symbolic names.
14
15proc ::term::ansi::code::attr::names {} {
16    variable attr
17    return  $attr
18}
19
20proc ::term::ansi::code::attr::import {{ns attr} args} {
21    if {![llength $args]} {set args *}
22    set args ::term::ansi::code::attr::[join $args " ::term::ansi::code::attr::"]
23    uplevel 1 [list namespace eval ${ns} [linsert $args 0 namespace import]]
24    return
25}
26
27# ### ### ### ######### ######### #########
28## Internal - Setup
29
30proc ::term::ansi::code::attr::DEF {name value} {
31    variable  attr
32    const            $name $value
33    lappend   attr   $name
34    namespace export $name
35    return
36}
37
38proc ::term::ansi::code::attr::INIT {} {
39    # ### ### ### ######### ######### #########
40    ##
41
42    # Colors. Foreground <=> Text
43    DEF	fgblack   30	; # Black
44    DEF	fgred     31	; # Red
45    DEF	fggreen   32	; # Green
46    DEF	fgyellow  33	; # Yellow
47    DEF	fgblue    34	; # Blue
48    DEF	fgmagenta 35	; # Magenta
49    DEF	fgcyan    36	; # Cyan
50    DEF	fgwhite   37	; # White
51    DEF	fgdefault 39    ; # Default (Black)
52
53    # Colors. Background.
54    DEF	bgblack   40	; # Black
55    DEF	bgred     41	; # Red
56    DEF	bggreen   42	; # Green
57    DEF	bgyellow  43	; # Yellow
58    DEF	bgblue    44	; # Blue
59    DEF	bgmagenta 45	; # Magenta
60    DEF	bgcyan    46	; # Cyan
61    DEF	bgwhite   47	; # White
62    DEF	bgdefault 49    ; # Default (Transparent)
63
64    # Non-color attributes. Activation.
65    DEF	bold      1	; # Bold
66    DEF	dim       2	; # Dim
67    DEF	italic    3     ; # Italics
68    DEF	underline 4	; # Underscore
69    DEF	blink     5	; # Blink
70    DEF	revers    7	; # Reverse
71    DEF	hidden    8	; # Hidden
72    DEF	strike    9     ; # StrikeThrough
73
74    # Non-color attributes. Deactivation.
75    DEF	nobold      22	; # Bold
76    DEF	nodim       __	; # Dim
77    DEF	noitalic    23  ; # Italics
78    DEF	nounderline 24	; # Underscore
79    DEF	noblink     25	; # Blink
80    DEF	norevers    27	; # Reverse
81    DEF	nohidden    28	; # Hidden
82    DEF	nostrike    29  ; # StrikeThrough
83
84    # Remainder
85    DEF	reset       0   ; # Reset
86
87    ##
88    # ### ### ### ######### ######### #########
89    return
90}
91
92# ### ### ### ######### ######### #########
93## Data structures.
94
95namespace eval ::term::ansi::code::attr {
96    namespace import ::term::ansi::code::const
97    variable attr {}
98}
99
100::term::ansi::code::attr::INIT
101
102# ### ### ### ######### ######### #########
103## Ready
104
105package provide term::ansi::code::attr 0.1
106
107##
108# ### ### ### ######### ######### #########
109