diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-03 20:48:22 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-03 20:48:22 +0800 |
| commit | 40bbf3c14a782673bbd36c8a98adb0934b06add5 (patch) | |
| tree | 4878604ccba77a957cbacd42dd1355fe33f5d0af /src/base/platform | |
| parent | a04627baa74b2b6660addeb9853225852634cf34 (diff) | |
| download | cru-40bbf3c14a782673bbd36c8a98adb0934b06add5.tar.gz cru-40bbf3c14a782673bbd36c8a98adb0934b06add5.tar.bz2 cru-40bbf3c14a782673bbd36c8a98adb0934b06add5.zip | |
Osx remove Resource.h.
Diffstat (limited to 'src/base/platform')
| -rw-r--r-- | src/base/platform/osx/Base.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
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<CFStringRef> ToCFString(std::string_view string) { + return CFWrapper<CFStringRef>(CFStringCreateWithBytes( + nullptr, reinterpret_cast<const UInt8*>(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 |
