mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-10-30 02:53:52 +01:00 
			
		
		
		
	git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@791 f5eea248-9336-0410-98b8-ebc06183d4e3
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**
 | |
|  *  QuartzTextStyleAttribute.h
 | |
|  *
 | |
|  *  Original Code by Evan Jones on Wed Oct 02 2002.
 | |
|  *  Contributors:
 | |
|  *  Shane Caraveo, ActiveState
 | |
|  *  Bernd Paradies, Adobe
 | |
|  *
 | |
|  */
 | |
| 
 | |
| 
 | |
| #ifndef _QUARTZ_TEXT_STYLE_ATTRIBUTE_H
 | |
| #define _QUARTZ_TEXT_STYLE_ATTRIBUTE_H
 | |
| 
 | |
| class QuartzFont
 | |
| {
 | |
| public:
 | |
|     /** Create a font style from a name. */
 | |
| 	QuartzFont( const char* name, int length, float size, bool bold, bool italic )
 | |
|     {
 | |
|         assert( name != NULL && length > 0 && name[length] == '\0' );
 | |
| 
 | |
| 		CFStringRef fontName = CFStringCreateWithCString(kCFAllocatorDefault, name, kCFStringEncodingMacRoman);
 | |
| 		assert(fontName != NULL);
 | |
| 
 | |
| 		if (bold || italic)
 | |
| 		{
 | |
| 			CTFontSymbolicTraits desiredTrait = 0;
 | |
| 			CTFontSymbolicTraits traitMask = 0;
 | |
| 
 | |
| 			// if bold was specified, add the trait
 | |
| 			if (bold) {
 | |
| 				desiredTrait |= kCTFontBoldTrait;
 | |
| 				traitMask |= kCTFontBoldTrait;
 | |
| 			}
 | |
| 
 | |
| 			// if italic was specified, add the trait
 | |
| 			if (italic) {
 | |
| 				desiredTrait |= kCTFontItalicTrait;
 | |
| 				traitMask |= kCTFontItalicTrait;
 | |
| 			}
 | |
| 
 | |
| 			// create a font and then a copy of it with the sym traits
 | |
| 			CTFontRef iFont = ::CTFontCreateWithName(fontName, size, NULL);
 | |
| 			fontid = ::CTFontCreateCopyWithSymbolicTraits(iFont, size, NULL, desiredTrait, traitMask);
 | |
| 			CFRelease(iFont);
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			// create the font, no traits
 | |
| 			fontid = ::CTFontCreateWithName(fontName, size, NULL);
 | |
| 		}
 | |
|     }
 | |
| 
 | |
| 	CTFontRef getFontID()
 | |
|     {
 | |
|         return fontid;
 | |
|     }
 | |
| 
 | |
| private:
 | |
| 	CTFontRef fontid;
 | |
| };
 | |
| 
 | |
| #endif
 | |
| 
 |