opuntiaOS - an operating system targeting x86 and ARMv7
at master 1.8 kB view raw
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