1/*
2 * Copyright (C) 2020-2022 The opuntiaOS Project Authors.
3 * + Contributed by Nikita Melekhin <nimelehin@gmail.com>
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9#include <libg/Color.h>
10
11namespace LG {
12
13Color::Color(Colors clr)
14{
15 struct rgb {
16 uint8_t r;
17 uint8_t g;
18 uint8_t b;
19 uint8_t o;
20 } rgb_color;
21
22 switch (clr) {
23 case Red:
24 rgb_color = { 255, 0, 0, 0 };
25 break;
26 case Blue:
27 rgb_color = { 0, 0, 255, 0 };
28 break;
29 case Green:
30 rgb_color = { 0, 255, 0, 0 };
31 break;
32 case White:
33 rgb_color = { 255, 255, 255, 0 };
34 break;
35 case Black:
36 rgb_color = { 0, 0, 0, 0 };
37 break;
38 case LightSystemBackground:
39 rgb_color = { 243, 243, 243, 0 };
40 break;
41 case LightSystemText:
42 rgb_color = { 243, 243, 243, 0 };
43 break;
44 case LightSystemAccentText:
45 rgb_color = { 36, 93, 150, 0 };
46 break;
47 case LightSystemButton:
48 rgb_color = { 235, 235, 235, 0 };
49 break;
50 case LightSystemAccentButton:
51 rgb_color = { 209, 231, 253, 0 };
52 break;
53 case LightSystemBlue:
54 rgb_color = { 62, 119, 233, 0 };
55 break;
56 case LightSystemOpaque:
57 rgb_color = { 243, 243, 243, 25 };
58 break;
59 case LightSystemOpaque128:
60 rgb_color = { 243, 243, 243, 128 };
61 break;
62 case DarkSystemBackground:
63 rgb_color = { 25, 26, 26, 0 };
64 break;
65 case DarkSystemText:
66 rgb_color = { 25, 26, 26, 0 };
67 break;
68 case Opaque:
69 rgb_color = { 0, 0, 0, 255 };
70 default:
71 break;
72 }
73
74 m_r = rgb_color.r;
75 m_g = rgb_color.g;
76 m_b = rgb_color.b;
77 m_opacity = rgb_color.o;
78}
79
80} // namespace LG