MacOS-X compatibility stuff.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@7495 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2000-09-13 12:32:19 +00:00
parent eb642b39e2
commit 9f18a77807
5 changed files with 124 additions and 46 deletions

View file

@ -37,7 +37,8 @@
#include <Foundation/NSNotification.h>
#include <Foundation/NSUserDefaults.h>
static BOOL MacOSX = NO; // Compatibility mode
extern BOOL GSMacOSXCompatibleGeometry(); // Compatibility mode
static Class NSStringClass = 0;
static Class NSScannerClass = 0;
static SEL scanFloatSel = @selector(scanFloat:);
@ -47,36 +48,6 @@ static BOOL (*scanFloatImp)(NSScanner*, SEL, float*);
static BOOL (*scanStringImp)(NSScanner*, SEL, NSString*, NSString**);
static id (*scannerImp)(Class, SEL, NSString*);
/*
* A trivial class to monitor user defaults to see how we should be
* producing strings describing geometry structures.
*/
@interface GSGeometryDefaultObserver : NSObject
+ (void) defaultsChanged: (NSNotification*)aNotification;
@end
@implementation GSGeometryDefaultObserver
+ (void) defaultsChanged: (NSNotification*)aNotification
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
id def;
def = [defaults objectForKey: @"GSMacOSXCompatibleGeometry"];
if (def == nil)
{
def = [defaults objectForKey: @"GSMacOSXCompatible"];
}
if (def != nil && [def isKindOfClass: NSStringClass] == YES)
{
MacOSX = [def boolValue];
}
else
{
MacOSX = NO;
}
}
@end
static inline void
setupCache()
{
@ -90,13 +61,6 @@ setupCache()
[NSScannerClass instanceMethodForSelector: scanStringSel];
scannerImp = (id (*)(Class, SEL, NSString*))
[NSScannerClass methodForSelector: scannerSel];
[[NSNotificationCenter defaultCenter]
addObserver: [GSGeometryDefaultObserver class]
selector: @selector(defaultsChanged:)
name: NSUserDefaultsDidChangeNotification
object: nil];
[[GSGeometryDefaultObserver class] defaultsChanged: nil];
}
}
@ -238,7 +202,7 @@ NSString*
NSStringFromPoint(NSPoint aPoint)
{
setupCache();
if (MacOSX == YES)
if (GSMacOSXCompatibleGeometry() == YES)
return [NSStringClass stringWithFormat:
@"{%g, %g}", aPoint.x, aPoint.y];
else
@ -250,7 +214,7 @@ NSString*
NSStringFromRect(NSRect aRect)
{
setupCache();
if (MacOSX == YES)
if (GSMacOSXCompatibleGeometry() == YES)
return [NSStringClass stringWithFormat:
@"{{%g, %g}, {%g, %g}}",
aRect.origin.x, aRect.origin.y, aRect.size.width, aRect.size.height];
@ -264,7 +228,7 @@ NSString*
NSStringFromSize(NSSize aSize)
{
setupCache();
if (MacOSX == YES)
if (GSMacOSXCompatibleGeometry() == YES)
return [NSStringClass stringWithFormat:
@"{%g, %g}", aSize.width, aSize.height];
else