mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-11-04 05:23:56 +01:00 
			
		
		
		
	Update with https://www.scintilla.org/scintilla521.zip https://www.scintilla.org/lexilla515.zip - fix setting to bring Scintilla::PositionCR from ScintillaStructures.h inline with Sci_Position.h Sci_PositionCR - add workaround to enable lexer for searchResult commented out SCI_SETILEXER call on searchResult to get one result which is correctly handled by the lexer, added comment about the current problem with property @MarkingsStruct which seems to disappear after call to SCI_SETILEXER or CreateLexer - corrected usage of ObjC lexer - removed unnecessary filter stuff - use own sections for scintilla and lexilla build targets and allow parallel builds - as libscilex is no longer existing, changed to libscintilla - adapt makefiles and cmake - use VS2019 - started simple changes for createlexer adaptations, nullpointercheck missing on return of lexer name from deprecated LexerNameFromID -> undefined behaviour - movement from id -> lexer name, mostly done via LexerNameFromID + switching off corresponding compiler warning - changed to SCI_SETILEXER from SCI_SETLEXER, SCI_SETLEXERLANGUAGE needs to be corrected, see Scintilla5Migration.html - just commented out: SCI_LOADLEXERLIBRARY Fix #10504, close #11419
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**
 | 
						|
 *  QuartzTextStyleAttribute.h
 | 
						|
 *
 | 
						|
 *  Original Code by Evan Jones on Wed Oct 02 2002.
 | 
						|
 *  Contributors:
 | 
						|
 *  Shane Caraveo, ActiveState
 | 
						|
 *  Bernd Paradies, Adobe
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
 | 
						|
#ifndef QUARTZTEXTSTYLEATTRIBUTE_H
 | 
						|
#define QUARTZTEXTSTYLEATTRIBUTE_H
 | 
						|
 | 
						|
class QuartzFont {
 | 
						|
public:
 | 
						|
	/** Create a font style from a name. */
 | 
						|
	QuartzFont(const char *name, size_t length, float size, Scintilla::FontWeight weight, bool italic) {
 | 
						|
		assert(name != NULL && length > 0 && name[length] == '\0');
 | 
						|
 | 
						|
		CFStringRef fontName = CFStringCreateWithCString(kCFAllocatorDefault, name, kCFStringEncodingMacRoman);
 | 
						|
		assert(fontName != NULL);
 | 
						|
		bool bold = weight > Scintilla::FontWeight::Normal;
 | 
						|
 | 
						|
		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);
 | 
						|
			if (fontid) {
 | 
						|
				CFRelease(iFont);
 | 
						|
			} else {
 | 
						|
				// Traits failed so use base font
 | 
						|
				fontid = iFont;
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			// create the font, no traits
 | 
						|
			fontid = ::CTFontCreateWithName(fontName, size, NULL);
 | 
						|
		}
 | 
						|
 | 
						|
		if (!fontid) {
 | 
						|
			// Failed to create requested font so use font always present
 | 
						|
			fontid = ::CTFontCreateWithName((CFStringRef)@"Monaco", size, NULL);
 | 
						|
		}
 | 
						|
 | 
						|
		CFRelease(fontName);
 | 
						|
	}
 | 
						|
 | 
						|
	CTFontRef getFontID() {
 | 
						|
		return fontid;
 | 
						|
	}
 | 
						|
 | 
						|
private:
 | 
						|
	CTFontRef fontid;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
 |