aboutsummaryrefslogtreecommitdiff
path: root/src/base/platform/osx/Base.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-03 20:48:22 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-03 20:48:22 +0800
commit40bbf3c14a782673bbd36c8a98adb0934b06add5 (patch)
tree4878604ccba77a957cbacd42dd1355fe33f5d0af /src/base/platform/osx/Base.cpp
parenta04627baa74b2b6660addeb9853225852634cf34 (diff)
downloadcru-40bbf3c14a782673bbd36c8a98adb0934b06add5.tar.gz
cru-40bbf3c14a782673bbd36c8a98adb0934b06add5.tar.bz2
cru-40bbf3c14a782673bbd36c8a98adb0934b06add5.zip
Osx remove Resource.h.
Diffstat (limited to 'src/base/platform/osx/Base.cpp')
-rw-r--r--src/base/platform/osx/Base.cpp32
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