summaryrefslogtreecommitdiff
path: root/src/color.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-05-07 18:52:23 +0200
committerMaxime Coste <frrrwww@gmail.com>2013-05-13 14:25:05 +0200
commit56ab33c9d6dc0255bf15ebd1fbc216766ffb247c (patch)
tree40f3cff1b16397f1ea4ab4c7bff7c69b3cd8a606 /src/color.hh
parentd80815b927b54be6fb51d244b567f52185ee6cea (diff)
support specifying colors with RGB components
Diffstat (limited to 'src/color.hh')
-rw-r--r--src/color.hh23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/color.hh b/src/color.hh
index 0cd7d18c..9cc5abf5 100644
--- a/src/color.hh
+++ b/src/color.hh
@@ -8,7 +8,7 @@ namespace Kakoune
class String;
-enum class Color : char
+enum class Colors : char
{
Default,
Black,
@@ -18,7 +18,26 @@ enum class Color : char
Blue,
Magenta,
Cyan,
- White
+ White,
+ RGB,
+};
+
+struct Color
+{
+ Colors color;
+ unsigned char r;
+ unsigned char g;
+ unsigned char b;
+
+ Color() : Color{Colors::Default} {}
+ Color(Colors c) : color{c}, r{0}, g{0}, b{0} {}
+ Color(unsigned char r, unsigned char g, unsigned char b)
+ : color{Colors::RGB}, r{r}, g{g}, b{b} {}
+
+ bool operator==(const Color& c) const
+ { return color == c.color and r == c.r and g == c.g and b == c.b; }
+ bool operator!=(const Color& c) const
+ { return color != c.color or r != c.r or g != c.g or b != c.b; }
};
using ColorPair = std::pair<Color, Color>;