blob: a237a46fb2988da49e0e6bc044b30be1240ff5f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include "cru/osx/Convert.hpp"
namespace cru::platform::osx {
CFStringRef Convert(const String& string) {
return CFStringCreateWithBytes(
nullptr, reinterpret_cast<const UInt8*>(string.data()),
string.size() * sizeof(std::uint16_t), kCFStringEncodingUTF16, false);
}
String Convert(CFStringRef string) {
auto d = CFStringCreateExternalRepresentation(nullptr, string,
kCFStringEncodingUTF16, 0);
auto l = CFDataGetLength(d);
auto s = String(reinterpret_cast<const char16_t*>(CFDataGetBytePtr(d)),
CFDataGetLength(d) / 2);
CFRelease(d);
return s;
}
CFRange Convert(const Range& range) {
return CFRangeMake(range.position, range.count);
}
Range Convert(const CFRange& range) {
return Range(range.location, range.length);
}
} // namespace cru::cru::platform::osx
|