73 lines
999 B
Go
73 lines
999 B
Go
// Copyright 2016 Canonical Ltd.
|
|
// Licensed under the LGPLv3, see LICENCE file for details.
|
|
|
|
package ansiterm
|
|
|
|
const (
|
|
_ Style = iota
|
|
Bold
|
|
Faint
|
|
Italic
|
|
Underline
|
|
Blink
|
|
Reverse
|
|
Strikethrough
|
|
Conceal
|
|
)
|
|
|
|
type Style int
|
|
|
|
func (s Style) String() string {
|
|
switch s {
|
|
case Bold:
|
|
return "bold"
|
|
case Faint:
|
|
return "faint"
|
|
case Italic:
|
|
return "italic"
|
|
case Underline:
|
|
return "underline"
|
|
case Blink:
|
|
return "blink"
|
|
case Reverse:
|
|
return "reverse"
|
|
case Strikethrough:
|
|
return "strikethrough"
|
|
case Conceal:
|
|
return "conceal"
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
func (s Style) enable() attribute {
|
|
switch s {
|
|
case Bold:
|
|
return 1
|
|
case Faint:
|
|
return 2
|
|
case Italic:
|
|
return 3
|
|
case Underline:
|
|
return 4
|
|
case Blink:
|
|
return 5
|
|
case Reverse:
|
|
return 7
|
|
case Conceal:
|
|
return 8
|
|
case Strikethrough:
|
|
return 9
|
|
default:
|
|
return unknownAttribute
|
|
}
|
|
}
|
|
|
|
func (s Style) disable() attribute {
|
|
value := s.enable()
|
|
if value != unknownAttribute {
|
|
return value + 20
|
|
}
|
|
return value
|
|
}
|