You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
notepad-plus-plus/scintilla/cocoa/DictionaryForCF.h

37 lines
1011 B

/**
* 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