1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 19:37:34 +00:00

Ladybird/AppKit: Add color picker support

This commit is contained in:
Bastiaan van der Plaat 2023-09-29 08:28:48 +02:00 committed by Tim Flynn
parent ebee480bcc
commit 0ce9dc4c8e
3 changed files with 44 additions and 0 deletions

View file

@ -8,6 +8,7 @@
#include <AK/String.h>
#include <AK/StringView.h>
#include <LibGfx/Color.h>
#include <LibGfx/Point.h>
#include <LibGfx/Rect.h>
#include <LibGfx/Size.h>
@ -30,4 +31,7 @@ NSSize gfx_size_to_ns_size(Gfx::IntSize);
Gfx::IntPoint ns_point_to_gfx_point(NSPoint);
NSPoint gfx_point_to_ns_point(Gfx::IntPoint);
Gfx::Color ns_color_to_gfx_color(NSColor*);
NSColor* gfx_color_to_ns_color(Gfx::Color);
}

View file

@ -86,4 +86,25 @@ NSPoint gfx_point_to_ns_point(Gfx::IntPoint point)
static_cast<CGFloat>(point.y()));
}
Gfx::Color ns_color_to_gfx_color(NSColor* color)
{
auto rgb_color = [color colorUsingColorSpace:NSColorSpace.genericRGBColorSpace];
if (rgb_color != nil)
return {
static_cast<u8>([rgb_color redComponent] * 255),
static_cast<u8>([rgb_color greenComponent] * 255),
static_cast<u8>([rgb_color blueComponent] * 255),
static_cast<u8>([rgb_color alphaComponent] * 255)
};
return {};
}
NSColor* gfx_color_to_ns_color(Gfx::Color color)
{
return [NSColor colorWithRed:(color.red() / 255.f)
green:(color.green() / 255.f)
blue:(color.blue() / 255.f)
alpha:(color.alpha() / 255.f)];
}
}