diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /layout/base/nsCSSColorUtils.h | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/base/nsCSSColorUtils.h')
-rw-r--r-- | layout/base/nsCSSColorUtils.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/layout/base/nsCSSColorUtils.h b/layout/base/nsCSSColorUtils.h new file mode 100644 index 0000000000..e64241328e --- /dev/null +++ b/layout/base/nsCSSColorUtils.h @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* functions that manipulate colors */ + +#ifndef __nsCSSColorUtils_h +#define __nsCSSColorUtils_h + +#include "nsColor.h" + +// "Sufficient contrast" is determined by +// "Techniques For Accessibility Evalution And Repair Tools". +// See http://www.w3.org/TR/AERT#color-contrast +#define NS_SUFFICIENT_LUMINOSITY_DIFFERENCE 125000 +// NS_SUFFICIENT_LUMINOSITY_DIFFERENCE is the a11y standard for text +// on a background. Use 20% of that standard since we have a background +// on top of another background +#define NS_SUFFICIENT_LUMINOSITY_DIFFERENCE_BG \ + (NS_SUFFICIENT_LUMINOSITY_DIFFERENCE / 5) + +#define NS_LUMINOSITY_DIFFERENCE(a, b) \ + int32_t(mozilla::Abs(NS_GetLuminosity(a | 0xff000000) - \ + NS_GetLuminosity(b | 0xff000000))) + +// Maximum value that NS_GetLuminosity can return. +#define NS_MAX_LUMINOSITY 255000 + +// To determine 3D colors for groove / ridge borders based on the border color +void NS_GetSpecial3DColors(nscolor aResult[2], nscolor aBorderColor); + +// Determins brightness for a specific color +int NS_GetBrightness(uint8_t aRed, uint8_t aGreen, uint8_t aBlue); + +// Get Luminosity of a specific color. That is same as Y of YIQ color space. +// The range of return value is 0 to NS_MAX_LUMINOSITY. +int32_t NS_GetLuminosity(nscolor aColor); + +// function to convert from RGBA color space to HSVA color space +void NS_RGB2HSV(nscolor aColor, uint16_t& aHue, uint16_t& aSat, + uint16_t& aValue, uint8_t& aAlpha); + +// function to convert from HSVA color space to RGBA color space +void NS_HSV2RGB(nscolor& aColor, uint16_t aHue, uint16_t aSat, uint16_t aValue, + uint8_t aAlpha); + +#endif |