Moved -[NSDisplay menuFontNameAndSize:] to KTFont

This commit is contained in:
Christopher Lloyd 2008-12-08 15:09:33 +00:00
parent 090430cc4b
commit 63a0128401
15 changed files with 120 additions and 50 deletions

View File

@ -13,6 +13,18 @@ CTFontRef CTFontCreateWithGraphicsFont(CGFontRef cgFont,CGFloat size,CGAffineTra
return [[KTFont alloc] initWithFont:cgFont size:size];
}
CTFontRef CTFontCreateUIFontForLanguage(CTFontUIFontType uiFontType,CGFloat size,NSString *language ) {
return [[KTFont alloc] initWithUIFontType:uiFontType size:size language:language];
}
NSString *CTFontCopyFullName(CTFontRef self) {
return [[self name] copy];
}
CGFloat CTFontGetSize(CTFontRef self) {
return [self pointSize];
}
size_t CTFontGetGlyphCount(CTFontRef self) {
return [self numberOfGlyphs];
}

View File

@ -20,6 +20,7 @@ enum {
}
-initWithFont:(KGFont *)font size:(CGFloat)size;
-initWithUIFontType:(CTFontUIFontType)uiFontType size:(CGFloat)size language:(NSString *)language;
-(NSString *)name;
-(CGFloat)pointSize;

View File

@ -18,6 +18,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
return self;
}
-initWithUIFontType:(CTFontUIFontType)uiFontType size:(CGFloat)size language:(NSString *)language {
KGInvalidAbstractInvocation();
return nil;
}
-(void)dealloc {
[_font release];
[super dealloc];

View File

@ -30,8 +30,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
-(NSColor *)colorWithName:(NSString *)colorName;
-(void)_addSystemColor:(NSColor *) result forName:(NSString *)colorName;
-(NSString *)menuFontNameAndSize:(float *)pointSize;
-(NSTimeInterval)textCaretBlinkInterval;
-(void)hideCursor;

View File

@ -74,12 +74,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
}
-(NSString *)menuFontNameAndSize:(float *)pointSize {
NSInvalidAbstractInvocation();
return nil;
}
-(NSTimeInterval)textCaretBlinkInterval {
NSInvalidAbstractInvocation();
return 1;

View File

@ -107,14 +107,31 @@ static NSFont **_fontCache=NULL;
}
+(NSFont *)menuFontOfSize:(float)size {
float pointSize=0;
NSString *name=[[NSDisplay currentDisplay] menuFontNameAndSize:&pointSize];
return [NSFont fontWithName:name size:(size==0)?pointSize:size];
CTFontRef ctFont=CTFontCreateUIFontForLanguage(kCTFontMenuItemFontType,size,nil);
NSString *name=CTFontCopyFullName(ctFont);
size=CTFontGetSize(ctFont);
NSFont *result=[NSFont fontWithName:name size:size];
[ctFont release];
[name release];
return result;
}
+(NSFont *)menuBarFontOfSize:(float)size {
return [self menuFontOfSize:size];
CTFontRef ctFont=CTFontCreateUIFontForLanguage(kCTFontMenuTitleFontType,size,nil);
NSString *name=CTFontCopyFullName(ctFont);
size=CTFontGetSize(ctFont);
NSFont *result=[NSFont fontWithName:name size:size];
[ctFont release];
[name release];
return result;
}
+(NSFont *)messageFontOfSize:(float)size {

View File

@ -1,4 +1,5 @@
#import "KTFont_gdi.h"
#import <AppKit/KGFont.h>
#import "KGContext_gdi.h"
#import "Win32Display.h"
#import "Win32Font.h"
@ -396,6 +397,49 @@ static inline CGGlyphMetrics *fetchGlyphAdvancementIfNeeded(KTFont_gdi *self,CGG
return self;
}
-initWithUIFontType:(CTFontUIFontType)uiFontType size:(CGFloat)size language:(NSString *)language {
KGFont *font=nil;
switch(uiFontType){
case kCTFontMenuTitleFontType:
case kCTFontMenuItemFontType:
if(size==0)
size=10;
font=[KGFont createWithFontName:@"Tahoma"];
#if 0
// We should be able to get the menu font but this doesnt work
// MS Shell Dlg
// MS Shell Dlg 2
// DEFAULT_GUI_FONT
HGDIOBJ font=GetStockObject(SYSTEM_FONT);
EXTLOGFONT fontData;
GetObject(font,sizeof(fontData),&fontData);
*pointSize=fontData.elfLogFont.lfHeight;
HDC dc=GetDC(NULL);
*pointSize=(fontData.elfLogFont.lfHeight*72.0)/GetDeviceCaps(dc,LOGPIXELSY);
ReleaseDC(NULL,dc);
NSLog(@"name=%@,size=%f",[NSString stringWithCString:fontData. elfLogFont.lfFaceName],*pointSize);
#endif
break;
default:
NSUnimplementedMethod();
return nil;
}
self=[self initWithFont:font size:size];
[font release];
return self;
}
-(void)dealloc {
_glyphRangeTable=NULL;

View File

@ -46,8 +46,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
-(void)invalidateSystemColors;
-(NSColor *)colorWithName:(NSString *)colorName;
-(NSString *)menuFontNameAndSize:(float *)pointSize;
-(void)hideCursor;
-(void)unhideCursor;

View File

@ -268,31 +268,6 @@ BOOL CALLBACK monitorEnumerator(HMONITOR hMonitor,HDC hdcMonitor,LPRECT rect,LPA
[_nameToColor setObject: color forKey: name];
}
-(NSString *)menuFontNameAndSize:(float *)pointSize {
#if 1
*pointSize=10;
return @"Tahoma";
#else
// MS Shell Dlg
// MS Shell Dlg 2
// DEFAULT_GUI_FONT
HGDIOBJ font=GetStockObject(SYSTEM_FONT);
EXTLOGFONT fontData;
GetObject(font,sizeof(fontData),&fontData);
*pointSize=fontData.elfLogFont.lfHeight;
HDC dc=GetDC(NULL);
*pointSize=(fontData.elfLogFont.lfHeight*72.0)/GetDeviceCaps(dc,LOGPIXELSY);
ReleaseDC(NULL,dc);
NSLog(@"name=%@,size=%f",[NSString stringWithCString:fontData. elfLogFont.lfFaceName],*pointSize);
return [NSString stringWithCString:fontData. elfLogFont.lfFaceName];
#endif
}
-(NSTimeInterval)textCaretBlinkInterval {
return ((float)GetCaretBlinkTime())/1000.0;
}

View File

@ -7,6 +7,7 @@
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#import "TTFFont.h"
#import <AppKit/KGFont.h>
@implementation KTFont(TTFFont)
+(id)allocWithZone:(NSZone*)zone
@ -68,6 +69,30 @@ FT_Library library;
return self;
}
-initWithUIFontType:(CTFontUIFontType)uiFontType size:(CGFloat)size language:(NSString *)language {
KGFont *font=nil;
switch(uiFontType){
case kCTFontMenuTitleFontType:
case kCTFontMenuItemFontType:
if(size==0)
size=12;
font=[KGFont createWithFontName:@"Vera"];
break;
default:
NSUnimplementedMethod();
return nil;
}
self=[self initWithFont:font size:size];
[font release];
return self;
}
-(void)getGlyphs:(CGGlyph *)glyphs forCharacters:(const unichar *)characters length:(unsigned)length {
int i;
for(i=0; i<length; i++)

View File

@ -50,11 +50,6 @@
return _display;
}
-(NSString *)menuFontNameAndSize:(float *)pointSize {
*pointSize=12.0;
return @"Vera";
}
-(NSArray *)screens {
NSRect frame=NSMakeRect(0, 0,
DisplayWidth(_display, DefaultScreen(_display)),

View File

@ -15,7 +15,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
typedef KTFont *CTFontRef;
typedef enum {
kCTFontMenuTitleFontType,
kCTFontMenuItemFontType,
} CTFontUIFontType;
COREGRAPHICS_EXPORT CTFontRef CTFontCreateWithGraphicsFont(CGFontRef cgFont,CGFloat size,CGAffineTransform *xform,id attributes);
COREGRAPHICS_EXPORT CTFontRef CTFontCreateUIFontForLanguage(CTFontUIFontType uiFontType,CGFloat size,NSString *language);
COREGRAPHICS_EXPORT NSString *CTFontCopyFullName(CTFontRef self);
COREGRAPHICS_EXPORT CGFloat CTFontGetSize(CTFontRef self);
COREGRAPHICS_EXPORT size_t CTFontGetGlyphCount(CTFontRef self);
COREGRAPHICS_EXPORT BOOL CTFontGetGlyphsForCharacters(CTFontRef self,const unichar *characters,CGGlyph *glyphs,size_t count);
COREGRAPHICS_EXPORT CGRect CTFontGetBoundingBox(CTFontRef self);

View File

@ -5,9 +5,8 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
// Original - Christopher Lloyd <cjwl@objc.net>
#import <Foundation/NSConnection.h>
#import <Foundation/NSPortNameServer.h>
#import <Foundation/NSPort.h>
#import <Foundation/NSString.h>
#import <Foundation/NSArray.h>
@ -50,8 +49,7 @@ NSString *NSConnectionReplyMode=@"NSConnectionReplyMode";
}
+(NSConnection *)connectionWithRegisteredName:(NSString *)name host:(NSString *)hostName {
NSUnimplementedMethod();
return nil;
return [self connectionWithRegisteredName:name host:hostName usingNameServer:[NSPortNameServer systemDefaultPortNameServer]];
}
+(NSDistantObject *)rootProxyForConnectionWithRegisteredName:(NSString *)name host:(NSString *)hostName usingNameServer:(NSPortNameServer *)nameServer {

View File

@ -7,6 +7,7 @@
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#import <Foundation/NSConditionLock.h>
#import <pthread.h>
@class NSThread;

View File

@ -10,7 +10,6 @@
#import <Foundation/NSException.h>
#import <Foundation/NSString.h>
#import <Foundation/NSThread.h>
#import <pthread.h>
#import <time.h>
#import <math.h>