mirror of
https://github.com/RGBCube/color.v
synced 2025-08-01 10:27:45 +00:00
Merge color files
This commit is contained in:
parent
4d734f91c0
commit
96f77d055c
4 changed files with 129 additions and 123 deletions
|
@ -1,76 +0,0 @@
|
||||||
module color
|
|
||||||
|
|
||||||
import term
|
|
||||||
|
|
||||||
enum BasicColor {
|
|
||||||
black
|
|
||||||
red
|
|
||||||
green
|
|
||||||
yellow
|
|
||||||
blue
|
|
||||||
magenta
|
|
||||||
cyan
|
|
||||||
white
|
|
||||||
bright_black
|
|
||||||
bright_red
|
|
||||||
bright_green
|
|
||||||
bright_yellow
|
|
||||||
bright_blue
|
|
||||||
bright_magenta
|
|
||||||
bright_cyan
|
|
||||||
bright_white
|
|
||||||
}
|
|
||||||
|
|
||||||
fn (c BasicColor) render(msg string) string {
|
|
||||||
return if no_color {
|
|
||||||
msg
|
|
||||||
} else {
|
|
||||||
func := match c {
|
|
||||||
.black { term.black }
|
|
||||||
.red { term.red }
|
|
||||||
.green { term.green }
|
|
||||||
.yellow { term.yellow }
|
|
||||||
.blue { term.blue }
|
|
||||||
.magenta { term.magenta }
|
|
||||||
.cyan { term.cyan }
|
|
||||||
.white { term.white }
|
|
||||||
.bright_black { term.bright_black }
|
|
||||||
.bright_red { term.bright_red }
|
|
||||||
.bright_green { term.bright_green }
|
|
||||||
.bright_yellow { term.bright_yellow }
|
|
||||||
.bright_blue { term.bright_blue }
|
|
||||||
.bright_magenta { term.bright_magenta }
|
|
||||||
.bright_cyan { term.bright_cyan }
|
|
||||||
.bright_white { term.bright_white }
|
|
||||||
}
|
|
||||||
|
|
||||||
func(msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn (c BasicColor) render_bg(msg string) string {
|
|
||||||
return if no_color {
|
|
||||||
msg
|
|
||||||
} else {
|
|
||||||
func := match c {
|
|
||||||
.black { term.bg_black }
|
|
||||||
.red { term.bg_red }
|
|
||||||
.green { term.bg_green }
|
|
||||||
.yellow { term.bg_yellow }
|
|
||||||
.blue { term.bg_blue }
|
|
||||||
.magenta { term.bg_magenta }
|
|
||||||
.cyan { term.bg_cyan }
|
|
||||||
.white { term.bg_white }
|
|
||||||
.bright_black { term.bright_bg_black }
|
|
||||||
.bright_red { term.bright_bg_red }
|
|
||||||
.bright_green { term.bright_bg_green }
|
|
||||||
.bright_yellow { term.bright_bg_yellow }
|
|
||||||
.bright_blue { term.bright_bg_blue }
|
|
||||||
.bright_magenta { term.bright_bg_magenta }
|
|
||||||
.bright_cyan { term.bright_bg_cyan }
|
|
||||||
.bright_white { term.bright_bg_white }
|
|
||||||
}
|
|
||||||
|
|
||||||
func(msg)
|
|
||||||
}
|
|
||||||
}
|
|
123
color/color.v
123
color/color.v
|
@ -1,16 +1,8 @@
|
||||||
module color
|
module color
|
||||||
|
|
||||||
pub interface Style {
|
import term
|
||||||
render(string) string
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn (s Style) cprint(msg string) {
|
// Interface
|
||||||
print(s.render(msg))
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn (s Style) cprintln(msg string) {
|
|
||||||
println(s.render(msg))
|
|
||||||
}
|
|
||||||
|
|
||||||
pub interface Color {
|
pub interface Color {
|
||||||
Style
|
Style
|
||||||
|
@ -24,3 +16,114 @@ pub fn (c Color) cprint_bg(msg string) {
|
||||||
pub fn (c Color) cprintln_bg(msg string) {
|
pub fn (c Color) cprintln_bg(msg string) {
|
||||||
println(c.render_bg(msg))
|
println(c.render_bg(msg))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TrueColor Initialization
|
||||||
|
|
||||||
|
pub fn rgb(r u8, g u8, b u8) Color {
|
||||||
|
return TrueColor{
|
||||||
|
r: r
|
||||||
|
g: g
|
||||||
|
b: b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn hex(hex int) Color {
|
||||||
|
return rgb(u8(hex >> 16), u8(hex >> 8 & 0xFF), u8(hex & 0xFF))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implementations
|
||||||
|
|
||||||
|
struct TrueColor {
|
||||||
|
r u8
|
||||||
|
g u8
|
||||||
|
b u8
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (c TrueColor) render(msg string) string {
|
||||||
|
return if no_color {
|
||||||
|
msg
|
||||||
|
} else {
|
||||||
|
term.rgb(c.r, c.g, c.b, msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (c TrueColor) render_bg(msg string) string {
|
||||||
|
return if no_color {
|
||||||
|
msg
|
||||||
|
} else {
|
||||||
|
term.bg_rgb(c.r, c.g, c.b, msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum BasicColor {
|
||||||
|
black
|
||||||
|
red
|
||||||
|
green
|
||||||
|
yellow
|
||||||
|
blue
|
||||||
|
magenta
|
||||||
|
cyan
|
||||||
|
white
|
||||||
|
bright_black
|
||||||
|
bright_red
|
||||||
|
bright_green
|
||||||
|
bright_yellow
|
||||||
|
bright_blue
|
||||||
|
bright_magenta
|
||||||
|
bright_cyan
|
||||||
|
bright_white
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (c BasicColor) render(msg string) string {
|
||||||
|
return if no_color {
|
||||||
|
msg
|
||||||
|
} else {
|
||||||
|
func := match c {
|
||||||
|
.black { term.black }
|
||||||
|
.red { term.red }
|
||||||
|
.green { term.green }
|
||||||
|
.yellow { term.yellow }
|
||||||
|
.blue { term.blue }
|
||||||
|
.magenta { term.magenta }
|
||||||
|
.cyan { term.cyan }
|
||||||
|
.white { term.white }
|
||||||
|
.bright_black { term.bright_black }
|
||||||
|
.bright_red { term.bright_red }
|
||||||
|
.bright_green { term.bright_green }
|
||||||
|
.bright_yellow { term.bright_yellow }
|
||||||
|
.bright_blue { term.bright_blue }
|
||||||
|
.bright_magenta { term.bright_magenta }
|
||||||
|
.bright_cyan { term.bright_cyan }
|
||||||
|
.bright_white { term.bright_white }
|
||||||
|
}
|
||||||
|
|
||||||
|
func(msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (c BasicColor) render_bg(msg string) string {
|
||||||
|
return if no_color {
|
||||||
|
msg
|
||||||
|
} else {
|
||||||
|
func := match c {
|
||||||
|
.black { term.bg_black }
|
||||||
|
.red { term.bg_red }
|
||||||
|
.green { term.bg_green }
|
||||||
|
.yellow { term.bg_yellow }
|
||||||
|
.blue { term.bg_blue }
|
||||||
|
.magenta { term.bg_magenta }
|
||||||
|
.cyan { term.bg_cyan }
|
||||||
|
.white { term.bg_white }
|
||||||
|
.bright_black { term.bright_bg_black }
|
||||||
|
.bright_red { term.bright_bg_red }
|
||||||
|
.bright_green { term.bright_bg_green }
|
||||||
|
.bright_yellow { term.bright_bg_yellow }
|
||||||
|
.bright_blue { term.bright_bg_blue }
|
||||||
|
.bright_magenta { term.bright_bg_magenta }
|
||||||
|
.bright_cyan { term.bright_bg_cyan }
|
||||||
|
.bright_white { term.bright_bg_white }
|
||||||
|
}
|
||||||
|
|
||||||
|
func(msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,22 @@ module color
|
||||||
|
|
||||||
import term
|
import term
|
||||||
|
|
||||||
|
// Interface
|
||||||
|
|
||||||
|
pub interface Style {
|
||||||
|
render(string) string
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (s Style) cprint(msg string) {
|
||||||
|
print(s.render(msg))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (s Style) cprintln(msg string) {
|
||||||
|
println(s.render(msg))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implementation
|
||||||
|
|
||||||
enum BasicStyle {
|
enum BasicStyle {
|
||||||
reset
|
reset
|
||||||
bold
|
bold
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
module color
|
|
||||||
|
|
||||||
import term
|
|
||||||
|
|
||||||
pub fn rgb(r u8, g u8, b u8) Color {
|
|
||||||
return TrueColor{
|
|
||||||
r: r
|
|
||||||
g: g
|
|
||||||
b: b
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn hex(hex int) Color {
|
|
||||||
return rgb(u8(hex >> 16), u8(hex >> 8 & 0xFF), u8(hex & 0xFF))
|
|
||||||
}
|
|
||||||
|
|
||||||
struct TrueColor {
|
|
||||||
r u8
|
|
||||||
g u8
|
|
||||||
b u8
|
|
||||||
}
|
|
||||||
|
|
||||||
fn (c TrueColor) render(msg string) string {
|
|
||||||
return if no_color {
|
|
||||||
msg
|
|
||||||
} else {
|
|
||||||
term.rgb(c.r, c.g, c.b, msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn (c TrueColor) render_bg(msg string) string {
|
|
||||||
return if no_color {
|
|
||||||
msg
|
|
||||||
} else {
|
|
||||||
term.bg_rgb(c.r, c.g, c.b, msg)
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue