1
0
mirror of https://github.com/mum4k/termdash.git synced 2025-04-25 13:48:50 +08:00
termdash/terminal/terminalapi/color_mode.go
Jakub Sobon 503c0ada52
Fixing color setting for tcell.
Our tcell library incorrectly referenced tcell color values rather than
just names. The values aren't part of the public API and did change with
the update to v2.

This commit switches our tcell library to using the public constants
exported by the `tcell` project.

Also aligning our color definition of the first 16 colors with `tcell`
and Xterm. Adding two additional colors to make this change backward
compatible with `termbox-go`.
2020-11-14 23:21:07 -05:00

61 lines
2.0 KiB
Go

// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package terminalapi
// color_mode.go defines the terminal color modes.
// ColorMode represents a color mode of a terminal.
type ColorMode int
// String implements fmt.Stringer()
func (cm ColorMode) String() string {
if n, ok := colorModeNames[cm]; ok {
return n
}
return "ColorModeUnknown"
}
// colorModeNames maps ColorMode values to human readable names.
var colorModeNames = map[ColorMode]string{
ColorModeNormal: "ColorModeNormal",
ColorMode256: "ColorMode256",
ColorMode216: "ColorMode216",
ColorModeGrayscale: "ColorModeGrayscale",
}
// Supported color modes.
const (
// ColorModeNormal supports 16 Xterm colors.
// These are defined as constants in the cell package.
ColorModeNormal ColorMode = iota
// ColorMode256 enables using any of the 256 terminal colors.
// 0-7: the 8 Xterm colors accessible in ColorModeNormal.
// 8-15: the 8 "bright" Xterm colors.
// 16-231: the 216 different terminal colors.
// 232-255: the 24 different shades of grey.
ColorMode256
// ColorMode216 supports only the third range of the ColorMode256, i.e the
// 216 different terminal colors. However in this mode the colors are zero
// based, so the caller doesn't need to provide an offset.
ColorMode216
// ColorModeGrayscale supports only the fourth range of the ColorMode256,
// i.e the 24 different shades of grey. However in this mode the colors are
// zero based, so the caller doesn't need to provide an offset.
ColorModeGrayscale
)