v/vlib/gx/gx.v

110 lines
2.3 KiB
V
Raw Normal View History

2020-01-23 21:04:46 +01:00
// Copyright (c) 2019-2020 Alexander Medvednikov. All rights reserved.
2019-06-23 04:21:30 +02:00
// Use of this source code is governed by an MIT license
// that can be found in the LICENSE file.
2019-06-22 20:20:28 +02:00
module gx
pub struct Color {
2019-06-22 20:20:28 +02:00
pub:
r int
g int
b int
}
2019-12-03 11:08:57 +01:00
pub const (
Blue = Color { r: 0, g: 0, b: 255 }
2019-12-03 11:08:57 +01:00
blue = Color { r: 0, g: 0, b: 255 }
Red = Color { r: 255, g: 0, b: 0 }
red = Color { r: 255, g: 0, b: 0 }
2019-11-11 15:18:32 +01:00
Green = Color { r: 0, g: 255, b: 0 }
green = Color { r: 0, g: 255, b: 0 }
Yellow = Color { r: 255, g: 255, b: 0 }
2019-12-03 11:08:57 +01:00
Orange = Color { r: 255, g: 165, b: 0 }
2019-12-03 11:08:57 +01:00
orange = Color { r: 255, g: 165, b: 0 }
Purple = Color { r: 128, g: 0, b: 128 }
2019-12-03 11:08:57 +01:00
Black = Color { r: 0, g: 0, b: 0 }
2019-12-03 11:08:57 +01:00
black = Color { r: 0, g: 0, b: 0 }
Gray = Color { r: 128, g: 128, b: 128 }
2019-12-03 11:08:57 +01:00
gray = Color { r: 128, g: 128, b: 128 }
Indigo = Color { r: 75, g: 0, b: 130 }
Pink = Color { r: 255, g: 192, b: 203 }
Violet = Color { r: 238, g: 130, b: 238 }
White = Color { r: 255, g: 255, b: 255 }
2019-11-11 15:18:32 +01:00
white = Color { r: 255, g: 255, b: 255 }
2019-12-03 11:08:57 +01:00
// Shades
DarkBlue = Color { r: 0, g: 0, b: 139 }
DarkGray = Color { r: 169, g: 169, b: 169 }
2019-12-03 11:08:57 +01:00
dark_gray = Color { r: 169, g: 169, b: 169 }
DarkGreen = Color { r: 0, g: 100, b: 0 }
DarkRed = Color { r: 139, g: 0, b: 0 }
LightBlue = Color { r: 173, g: 216, b: 230 }
2019-12-03 11:08:57 +01:00
light_blue = Color { r: 173, g: 216, b: 230 }
LightGray = Color { r: 211, g: 211, b: 211 }
LightGreen = Color { r: 144, g: 238, b: 144 }
LightRed = Color { r: 255, g: 204, b: 203 }
2019-06-22 20:20:28 +02:00
)
pub const (
2020-04-02 01:45:22 +02:00
align_left = 1
align_right = 4
2019-06-22 20:20:28 +02:00
ALIGN_RIGHT = 4
)
pub struct TextCfg {
2019-06-22 20:20:28 +02:00
pub:
color Color
size int
align int
max_width int
family string
bold bool
mono bool
}
2019-10-27 12:05:50 +01:00
pub struct Image {
2019-06-22 20:20:28 +02:00
mut:
obj voidptr
pub:
id int
width int
height int
}
pub fn (img Image) is_empty() bool {
return isnil(img.obj)
}
pub fn (c Color) str() string {
return '{$c.r, $c.g, $c.b}'
}
pub fn (a Color) eq(b Color) bool {
2019-10-31 10:15:45 +01:00
return a.r == b.r && a.g == b.g && a.b == b.b
2019-06-22 20:20:28 +02:00
}
pub fn rgb(r, g, b int) Color {
res := Color {
2019-10-31 10:15:45 +01:00
r: r
g: g
b: b
2019-06-22 20:20:28 +02:00
}
return res
}
2020-03-07 04:30:35 +01:00
pub fn hex(color int) Color {
res := Color {
r: (color >> 16) & 0xFF
g: (color >> 8) & 0xFF
b: color & 0xFF
}
return res
}
2019-06-22 20:20:28 +02:00
// fn text_width_char(c char) int {
// return text_width(char2string(c))
// // return C.text_width_char(c)
// }