mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-11-04 05:23:56 +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 QUARTZTEXTSTYLE_H
 | 
						|
#define QUARTZTEXTSTYLE_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
 | 
						|
 |