mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-10-31 03:24:04 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  *  QuartzTextStyle.h
 | |
|  *
 | |
|  *  Created by Evan Jones on Wed Oct 02 2002.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef _QUARTZ_TEXT_STYLE_H
 | |
| #define _QUARTZ_TEXT_STYLE_H
 | |
| 
 | |
| #include "QuartzTextStyleAttribute.h"
 | |
| 
 | |
| class QuartzTextStyle {
 | |
| public:
 | |
| 	QuartzTextStyle() {
 | |
| 		fontRef = NULL;
 | |
| 		styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
 | |
| 						      &kCFTypeDictionaryKeyCallBacks,
 | |
| 						      &kCFTypeDictionaryValueCallBacks);
 | |
| 
 | |
| 		characterSet = 0;
 | |
| 	}
 | |
| 
 | |
| 	QuartzTextStyle(const QuartzTextStyle &other) {
 | |
| 		// Does not copy font colour attribute
 | |
| 		fontRef = static_cast<CTFontRef>(CFRetain(other.fontRef));
 | |
| 		styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
 | |
| 						      &kCFTypeDictionaryKeyCallBacks,
 | |
| 						      &kCFTypeDictionaryValueCallBacks);
 | |
| 		CFDictionaryAddValue(styleDict, kCTFontAttributeName, fontRef);
 | |
| 		characterSet = other.characterSet;
 | |
| 	}
 | |
| 
 | |
| 	~QuartzTextStyle() {
 | |
| 		if (styleDict != NULL) {
 | |
| 			CFRelease(styleDict);
 | |
| 			styleDict = NULL;
 | |
| 		}
 | |
| 
 | |
| 		if (fontRef) {
 | |
| 			CFRelease(fontRef);
 | |
| 			fontRef = NULL;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	CFMutableDictionaryRef getCTStyle() const {
 | |
| 		return styleDict;
 | |
| 	}
 | |
| 
 | |
| 	void setCTStyleColour(CGColor *inColour) {
 | |
| 		CFDictionarySetValue(styleDict, kCTForegroundColorAttributeName, inColour);
 | |
| 	}
 | |
| 
 | |
| 	float getAscent() const {
 | |
| 		return static_cast<float>(::CTFontGetAscent(fontRef));
 | |
| 	}
 | |
| 
 | |
| 	float getDescent() const {
 | |
| 		return static_cast<float>(::CTFontGetDescent(fontRef));
 | |
| 	}
 | |
| 
 | |
| 	float getLeading() const {
 | |
| 		return static_cast<float>(::CTFontGetLeading(fontRef));
 | |
| 	}
 | |
| 
 | |
| 	void setFontRef(CTFontRef inRef, int characterSet_) {
 | |
| 		fontRef = inRef;
 | |
| 		characterSet = characterSet_;
 | |
| 
 | |
| 		if (styleDict != NULL)
 | |
| 			CFRelease(styleDict);
 | |
| 
 | |
| 		styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
 | |
| 						      &kCFTypeDictionaryKeyCallBacks,
 | |
| 						      &kCFTypeDictionaryValueCallBacks);
 | |
| 
 | |
| 		CFDictionaryAddValue(styleDict, kCTFontAttributeName, fontRef);
 | |
| 	}
 | |
| 
 | |
| 	CTFontRef getFontRef() {
 | |
| 		return fontRef;
 | |
| 	}
 | |
| 
 | |
| 	int getCharacterSet() {
 | |
| 		return characterSet;
 | |
| 	}
 | |
| 
 | |
| private:
 | |
| 	CFMutableDictionaryRef styleDict;
 | |
| 	CTFontRef fontRef;
 | |
| 	int characterSet;
 | |
| };
 | |
| 
 | |
| #endif
 | |
| 
 |