aboutsummaryrefslogtreecommitdiffhomepage
path: root/cocoa/DictionaryForCF.h
diff options
context:
space:
mode:
Diffstat (limited to 'cocoa/DictionaryForCF.h')
-rw-r--r--cocoa/DictionaryForCF.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/cocoa/DictionaryForCF.h b/cocoa/DictionaryForCF.h
new file mode 100644
index 000000000..09233bab5
--- /dev/null
+++ b/cocoa/DictionaryForCF.h
@@ -0,0 +1,36 @@
+/**
+ * Scintilla source code edit control
+ * @file DictionaryForCF.h - Wrapper for CFMutableDictionary
+ *
+ * Copyright 2024 Neil Hodgson.
+ * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
+ */
+
+#ifndef DICTIONARYFORCF_H
+#define DICTIONARYFORCF_H
+
+class DictionaryForCF {
+ CFMutableDictionaryRef dict;
+public:
+ DictionaryForCF() noexcept :
+ dict(::CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
+ &kCFTypeDictionaryKeyCallBacks,
+ &kCFTypeDictionaryValueCallBacks)) {
+ }
+ ~DictionaryForCF() {
+ ::CFRelease(dict);
+ }
+ CFMutableDictionaryRef get() const noexcept {
+ return dict;
+ }
+ void SetValue(const void *key, const void *value) noexcept {
+ ::CFDictionarySetValue(dict, key, value);
+ }
+ void SetItem(const void *key, CFNumberType theType, const void *valuePtr) noexcept {
+ CFNumberRef number = ::CFNumberCreate(kCFAllocatorDefault, theType, valuePtr);
+ ::CFDictionarySetValue(dict, key, number);
+ ::CFRelease(number);
+ }
+};
+
+#endif