From 40bbf3c14a782673bbd36c8a98adb0934b06add5 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Mon, 3 Nov 2025 20:48:22 +0800 Subject: Osx remove Resource.h. --- src/base/platform/osx/Base.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/base/platform/osx/Base.cpp (limited to 'src/base/platform/osx') diff --git a/src/base/platform/osx/Base.cpp b/src/base/platform/osx/Base.cpp new file mode 100644 index 00000000..1206d514 --- /dev/null +++ b/src/base/platform/osx/Base.cpp @@ -0,0 +1,32 @@ +#include "cru/base/platform/osx/Base.h" +#include "cru/base/StringUtil.h" + +namespace cru { +CFWrapper ToCFString(std::string_view string) { + return CFWrapper(CFStringCreateWithBytes( + nullptr, reinterpret_cast(string.data()), + string.size() * sizeof(char), kCFStringEncodingUTF8, false)); +} + +std::string FromCFStringRef(CFStringRef string) { + auto length = CFStringGetLength(string); + + std::string result; + + for (int i = 0; i < length; i++) { + cru::string::Utf8EncodeCodePointAppend( + CFStringGetCharacterAtIndex(string, i), + [&result](char c) { result += c; }); + } + + return result; +} + +CFRange ToCFRange(const Range& range) { + return CFRangeMake(range.position, range.count); +} + +Range FromCFRange(const CFRange& range) { + return Range(range.location, range.length); +} +} // namespace cru -- cgit v1.2.3