// // AppController.m // #import "AppController.h" #include @implementation NSAffineTransform (Description) - (NSString *) description; { NSAffineTransformStruct ts=[self transformStruct]; return [NSString stringWithFormat: @"((%f,%f,%f),(%f,%f,%f),(%f,%f,%f))", ts.m11, ts.m21, 0.0, ts.m12, ts.m22, 0.0, ts.tX, ts.tY, 1.0]; } @end @implementation AppController - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication { return YES; } - (void) awakeFromNib { [image45 setBoundsRotation:45.0]; [image90 setBoundsRotation:90.0]; #if OLD NSWindow *w; NSLog(@"awakeFromNib"); NSLog(@"NSNotFound=%d %u %08x", NSNotFound, NSNotFound, NSNotFound); NSLog(@"NSApp=%@", NSApp); NSLog(@"Bundle=%@", [NSBundle bundleForClass:[self class]]); #if 1 NSLog(@"scale factor=%lf", [[[NSScreen screens] objectAtIndex:0] userSpaceScaleFactor]); #endif #if 0 NSLog(@"available Font Families=%@", [[NSFontManager sharedFontManager] availableFontFamilies]); NSLog(@"available Fonts=%@", [[NSFontManager sharedFontManager] availableFonts]); NSLog(@"font collections=%@", [[NSFontManager sharedFontManager] collectionNames]); // this one appears to be empty?? NSLog(@"'All Fonts' collection=%@", [[NSFontManager sharedFontManager] fontDescriptorsInCollection:@"All Fonts"]); NSLog(@"'Web' collection=%@", [[NSFontManager sharedFontManager] fontDescriptorsInCollection:@"Web"]); NSLog(@"'Undefined' collection=%@", [[NSFontManager sharedFontManager] fontDescriptorsInCollection:@"Undefined"]); #if 1 { // NSFont and NSFontDescriptor NSFont *f=[NSFont boldSystemFontOfSize:12]; NSFontDescriptor *fd; NSLog(@"test systemFontOfSize:12 = %@", f); NSLog(@"descriptor = %@", [f fontDescriptor]); f=[f screenFont]; NSLog(@"screen font = %@", f); NSLog(@"descriptor = %@", [f fontDescriptor]); fd=[NSFontDescriptor fontDescriptorWithName:@"Helveticb" size:12.0]; NSLog(@"fd = %@", fd); NSLog(@"match keys=%@", [NSSet setWithArray:[[fd fontAttributes] allKeys]]); NSLog(@"fonts1 = %@", [fd matchingFontDescriptorsWithMandatoryKeys:[NSSet setWithArray:[[fd fontAttributes] allKeys]]]); NSLog(@"fonts2 = %@", [fd matchingFontDescriptorsWithMandatoryKeys:[[NSSet new] autorelease]]); // result is array of NSFontDescriptors(!), always matches name, dows not contain size property } #endif #endif #if 0 v=[NSMenuView alloc]; NSLog(@"allocated"); v=[v initWithFrame:NSMakeRect(0.0, 0.0, 100.0, 100.0)]; [v setMenu:[NSApp mainMenu]]; // use to display the main menu NSLog(@"main menu attached"); NSLog(@"view created: %@", v); [[win contentView] addSubview:v]; [[win contentView] setNeedsDisplay:YES]; // and reflect change NSLog(@"added to %@ content View %@ - %@", win, [win contentView], [[win contentView] subviews]); #endif // NSLog(@"PATH_MAX=%d", PATH_MAX); w=nil; NSLog(@"before alloc %d, %@", [w retainCount], [NSApp windows]); w=[NSWindow alloc]; NSLog(@"after alloc %d, %@", [w retainCount], [NSApp windows]); w=[w initWithContentRect:NSMakeRect(10.0, 10.0, 50.0, 50.0) styleMask:0 backing:0 defer:NO]; NSLog(@"after init %d, %@", [w retainCount], [NSApp windows]); [w orderFront:self]; NSLog(@"after orderFront %d, %@", [w retainCount], [NSApp windows]); [w orderBack:self]; NSLog(@"after orderBack %d, %@", [w retainCount], [NSApp windows]); [w orderOut:self]; NSLog(@"after orderOut %d, %@", [w retainCount], [NSApp windows]); [w setReleasedWhenClosed:NO]; [w close]; // might (auto)release NSLog(@"after close %d, %@", [w retainCount], [NSApp windows]); [w retain]; NSLog(@"after retain %d, %@", [w retainCount], [NSApp windows]); [w release]; NSLog(@"after release %d, %@", [w retainCount], [NSApp windows]); [w release]; NSLog(@"after 2nd release %d, %@", [w retainCount], [NSApp windows]); #if 1 { // check that Foundation is working properly NSAffineTransform *atm, *atm2; int i; atm=[NSAffineTransform transform]; NSLog(@"unity=%@", atm); for(i=1; i<3; i++) { [atm translateXBy:10.0 yBy:20.0]; NSLog(@"translated by (10,20)=%@", atm); [atm scaleXBy:2.0 yBy:3.0]; NSLog(@"scaled by (2,3)=%@", atm); [atm rotateByDegrees:30.0]; NSLog(@"rotated by (30deg)=%@", atm); } [atm invert]; NSLog(@"inverted=%@", atm); atm2=[NSAffineTransform transform]; [atm2 translateXBy:-10.0 yBy:-20.0]; NSLog(@"atm2 translated by (-10,-20)=%@", atm2); [atm2 rotateByDegrees:60.0]; NSLog(@"atm2 rotated by (90deg)=%@", atm2); [atm prependTransform:atm2]; NSLog(@"atm2 prepended=%@", atm); NSLog(@"point %@ -> %@", NSStringFromPoint(NSMakePoint(20.0, 10.0)), NSStringFromPoint([atm transformPoint:NSMakePoint(20.0, 10.0)])); NSLog(@"size %@ -> %@", NSStringFromSize(NSMakeSize(30.0, 20.0)), NSStringFromSize([atm transformSize:NSMakeSize(30.0, 20.0)])); [atm appendTransform:atm2]; NSLog(@"atm2 appended=%@", atm); NSLog(@"point %@ -> %@", NSStringFromPoint(NSMakePoint(20.0, 10.0)), NSStringFromPoint([atm transformPoint:NSMakePoint(20.0, 10.0)])); NSLog(@"size %@ -> %@", NSStringFromSize(NSMakeSize(30.0, 20.0)), NSStringFromSize([atm transformSize:NSMakeSize(30.0, 20.0)])); } #endif #endif } @end