Multibyte console input
parent
f65be74694
commit
489c956cf1
|
@ -31,6 +31,7 @@ class CelestiaCore;
|
|||
-(BOOL)initRenderer;
|
||||
-(void)start:(NSDate *)date withTimeZone:(NSTimeZone *)timeZone;
|
||||
-(void)charEntered:(char)c withModifiers:(int)modifiers;
|
||||
-(void)charEntered:(NSString *)string;
|
||||
-(void)keyDown:(int)c;
|
||||
-(void)keyUp:(int)c;
|
||||
-(void)mouseWheel:(float)motion modifiers:(int)modifiers;
|
||||
|
|
|
@ -23,6 +23,33 @@
|
|||
#include "qtcapture.h"
|
||||
#import <Carbon/Carbon.h>
|
||||
|
||||
class MacSettingsWatcher : public CelestiaWatcher
|
||||
{
|
||||
private:
|
||||
CelestiaSettings *settings;
|
||||
|
||||
public:
|
||||
MacSettingsWatcher(CelestiaAppCore *_appCore,
|
||||
CelestiaSettings* _settings) :
|
||||
CelestiaWatcher(*[_appCore appCore]), settings(_settings)
|
||||
{};
|
||||
|
||||
void notifyChange(CelestiaCore *, int flags)
|
||||
{
|
||||
if ( 0 != (flags & (
|
||||
CelestiaCore::LabelFlagsChanged
|
||||
| CelestiaCore::RenderFlagsChanged
|
||||
| CelestiaCore::VerbosityLevelChanged
|
||||
| CelestiaCore::TimeZoneChanged
|
||||
| CelestiaCore::AmbientLightChanged
|
||||
| CelestiaCore::FaintestChanged
|
||||
)) )
|
||||
{
|
||||
[settings validateItems];
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
class MacOSXAlerter : public CelestiaCore::Alerter
|
||||
{
|
||||
public:
|
||||
|
@ -259,14 +286,14 @@ void ContextMenuCallback(float x,float y, Selection selection) {
|
|||
return cModifiers;
|
||||
}
|
||||
|
||||
static NSMutableDictionary* tagDict;
|
||||
//static NSMutableDictionary* tagDict;
|
||||
|
||||
+(void)initialize
|
||||
{
|
||||
_sharedCelestiaAppCore = nil;
|
||||
contextMenuCallbackInvocation = nil;
|
||||
appCore = NULL;
|
||||
tagDict = [[ NSMutableDictionary dictionaryWithCapacity: 100 ] retain];
|
||||
// tagDict = [[ NSMutableDictionary dictionaryWithCapacity: 100 ] retain];
|
||||
}
|
||||
|
||||
+(CelestiaAppCore *)sharedAppCore
|
||||
|
@ -349,6 +376,12 @@ static NSMutableDictionary* tagDict;
|
|||
result = appCore->initSimulation(!confFile.empty() ? &confFile : nil,
|
||||
extrasDirsSetting ? &extrasDirs : nil,
|
||||
&progressNotifier);
|
||||
if (result)
|
||||
{
|
||||
CelestiaSettings *settings = [CelestiaSettings shared];
|
||||
new MacSettingsWatcher(self, settings); // adds itself to the appCore
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -369,6 +402,11 @@ static NSMutableDictionary* tagDict;
|
|||
appCore->charEntered(c, modifiers);
|
||||
}
|
||||
|
||||
-(void)charEntered:(NSString *)string
|
||||
{
|
||||
appCore->charEntered([string UTF8String]);
|
||||
}
|
||||
|
||||
-(void)keyDown:(int)c
|
||||
{
|
||||
appCore->keyDown(c);
|
||||
|
|
|
@ -7,9 +7,15 @@
|
|||
//
|
||||
|
||||
#import "CelestiaController.h"
|
||||
|
||||
@class MacInputWatcher;
|
||||
@class TextWindowController;
|
||||
|
||||
@interface CelestiaOpenGLView : NSOpenGLView
|
||||
{
|
||||
IBOutlet CelestiaController *controller;
|
||||
MacInputWatcher *inputWatcher;
|
||||
TextWindowController *textWindow;
|
||||
}
|
||||
- (void)setAASamples: (unsigned int)aaSamples;
|
||||
@end
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
//
|
||||
#import "CelestiaOpenGLView.h"
|
||||
#import "CelestiaAppCore.h"
|
||||
#import "MacInputWatcher.h"
|
||||
#import "TextWindowController.h"
|
||||
#import <OpenGL/gl.h>
|
||||
#import <OpenGL/glext.h>
|
||||
#import <OpenGL/CGLTypes.h>
|
||||
|
@ -19,8 +21,6 @@
|
|||
#define CEL_MIDDLE_BUTTON 2
|
||||
#define CEL_RIGHT_BUTTON 4
|
||||
|
||||
//static CelestiaAppCore* appCore = nil;
|
||||
//static NSPoint lastLoc = NSMakePoint(0.0, 0.0);
|
||||
|
||||
@implementation CelestiaOpenGLView
|
||||
|
||||
|
@ -138,7 +138,7 @@
|
|||
- (BOOL) isFlipped {return YES;}
|
||||
|
||||
- (void) viewDidMoveToWindow
|
||||
{
|
||||
{
|
||||
[[self window] setAcceptsMouseMovedEvents: YES];
|
||||
}
|
||||
|
||||
|
@ -171,9 +171,29 @@
|
|||
return [self menu];
|
||||
}
|
||||
|
||||
- (void) textEnterModeChanged
|
||||
{
|
||||
CelestiaAppCore *appCore = [CelestiaAppCore sharedAppCore];
|
||||
if ([appCore textEnterMode] & 1)
|
||||
{
|
||||
if (textWindow == nil)
|
||||
textWindow = [[TextWindowController alloc] init];
|
||||
|
||||
[textWindow makeActiveWithDelegate: inputWatcher];
|
||||
}
|
||||
else if (0 == ([appCore textEnterMode] & 1))
|
||||
{
|
||||
[[textWindow window] orderOut: nil];
|
||||
[[self window] makeFirstResponder: self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) keyDown: (NSEvent*)theEvent
|
||||
{
|
||||
CelestiaAppCore *appCore = [CelestiaAppCore sharedAppCore];
|
||||
if (inputWatcher == nil)
|
||||
inputWatcher = [[MacInputWatcher alloc] initWithWatched: self];
|
||||
|
||||
NSString *eventChars = [theEvent characters];
|
||||
if (!eventChars || [eventChars length] == 0)
|
||||
{
|
||||
|
@ -184,16 +204,18 @@
|
|||
unichar key = [eventChars characterAtIndex: 0];
|
||||
int modifiers = [appCore toCelestiaModifiers: [theEvent modifierFlags] buttons: 0];
|
||||
|
||||
if (key == 127)
|
||||
key = 8; // delete = backspace
|
||||
if ( key == NSDeleteCharacter )
|
||||
key = NSBackspaceCharacter; // delete = backspace
|
||||
else if ( key == NSDeleteFunctionKey || key == NSClearLineFunctionKey )
|
||||
key = 127; // del = delete
|
||||
|
||||
key = NSDeleteCharacter; // del = delete
|
||||
else if ( key == NSBackTabCharacter )
|
||||
key = 127;
|
||||
|
||||
if ( (key<128) && ((key < '0') || (key>'9') || !([theEvent modifierFlags] & NSNumericPadKeyMask)) )
|
||||
[ appCore charEntered: key
|
||||
withModifiers: modifiers];
|
||||
|
||||
[ appCore keyDown: [appCore toCelestiaKey: theEvent]
|
||||
[ appCore keyDown: [appCore toCelestiaKey: theEvent]
|
||||
withModifiers: modifiers ];
|
||||
}
|
||||
|
||||
|
@ -202,8 +224,8 @@
|
|||
CelestiaAppCore *appCore = [CelestiaAppCore sharedAppCore];
|
||||
// if ( [[theEvent characters] characterAtIndex: 0] >= 128 )
|
||||
// [ appCore keyUp: [appCore toCelestiaKey: theEvent] ];
|
||||
[ appCore keyUp: [appCore toCelestiaKey: theEvent]
|
||||
withModifiers: [appCore toCelestiaModifiers: [theEvent modifierFlags] buttons: 0] ];
|
||||
[ appCore keyUp: [appCore toCelestiaKey: theEvent]
|
||||
withModifiers: [appCore toCelestiaModifiers: [theEvent modifierFlags] buttons: 0] ];
|
||||
// NSLog(@"keyUp: %@",theEvent);
|
||||
}
|
||||
|
||||
|
@ -299,19 +321,16 @@
|
|||
|
||||
- (BOOL) acceptsFirstResponder: (NSEvent*)theEvent
|
||||
{
|
||||
// NSLog(@"CelestiaOpenGLView acceptsFirstResponder" );
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL) becomeFirstResponder
|
||||
{
|
||||
// NSLog(@"CelestiaOpenGLView becomeFirstResponder" );
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL) resignFirstResponder
|
||||
{
|
||||
// NSLog(@"CelestiaOpenGLView resignFirstResponder" );
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
@ -352,15 +371,12 @@
|
|||
NSString *value = nil;
|
||||
NSString *type = [pb availableTypeFromArray:
|
||||
[NSArray arrayWithObjects: NSURLPboardType, NSFilenamesPboardType, NSStringPboardType, nil ]];
|
||||
//NSLog(@"read paste");
|
||||
if ( type != nil )
|
||||
{
|
||||
CelestiaAppCore *appCore = [CelestiaAppCore sharedAppCore];
|
||||
// value = [ pb stringForType: NSURLPboardType ];
|
||||
value = [ pb stringForType: NSStringPboardType ];
|
||||
value = [ pb stringForType: NSStringPboardType ];
|
||||
if (value != nil )
|
||||
{
|
||||
NSLog(value);
|
||||
if ( [value rangeOfString:@"cel:" options: (NSCaseInsensitiveSearch|NSAnchoredSearch) ].location == 0 )
|
||||
[appCore goToUrl: value ];
|
||||
else
|
||||
|
@ -369,7 +385,6 @@
|
|||
else
|
||||
{
|
||||
value = [[NSURL URLWithString: (NSString*) [((NSArray*)[ pb propertyListForType: type ]) objectAtIndex: 0 ]] path];
|
||||
NSLog(value);
|
||||
[controller runScript: value ];
|
||||
|
||||
return NO;
|
||||
|
@ -378,7 +393,6 @@
|
|||
value = [ pb stringForType: NSFilenamesPboardType ];
|
||||
if (value != nil )
|
||||
{
|
||||
NSLog(value);
|
||||
[controller runScript: value ];
|
||||
}
|
||||
}
|
||||
|
@ -392,7 +406,6 @@
|
|||
NSPasteboard *pb = [sender draggingPasteboard];
|
||||
NSString *type = [pb availableTypeFromArray:
|
||||
[NSArray arrayWithObjects: NSStringPboardType, NSFilenamesPboardType, nil ]];
|
||||
// NSLog(@"dragentered");
|
||||
if ( type != nil )
|
||||
{
|
||||
return NSDragOperationCopy;
|
||||
|
|
|
@ -204,7 +204,7 @@
|
|||
|
||||
// GUI Methods
|
||||
|
||||
- (void) addSurfaceMenu: (id) contextMenu;
|
||||
- (void) addSurfaceMenu: (NSMenu*) contextMenu;
|
||||
- (void) actionForItem: (id) item;
|
||||
- (BOOL) validateItem: (id) item;
|
||||
- (void) validateItems;
|
||||
|
|
|
@ -74,15 +74,12 @@ static NSMutableDictionary* tagMap;
|
|||
[[super init] release];
|
||||
return sharedInstance;
|
||||
}
|
||||
|
||||
self = [super init];
|
||||
|
||||
tagMap = [[ NSMutableDictionary dictionaryWithCapacity: 100 ] retain];
|
||||
|
||||
appCore = (CelestiaCore*) [[CelestiaAppCore sharedAppCore] appCore];
|
||||
|
||||
MacOSXWatcher* theWatcher = new MacOSXWatcher(appCore,self);
|
||||
appCore->addWatcher(theWatcher);
|
||||
self = [super init];
|
||||
|
||||
tagMap = [[ NSMutableDictionary dictionaryWithCapacity: 100 ] retain];
|
||||
|
||||
appCore = (CelestiaCore*) [[CelestiaAppCore sharedAppCore] appCore];
|
||||
|
||||
tagDict = [[NSDictionary dictionaryWithObjectsAndKeys:
|
||||
// TAGDEF(101,@"time")
|
||||
|
@ -182,7 +179,7 @@ static NSMutableDictionary* tagMap;
|
|||
return self;
|
||||
}
|
||||
|
||||
-(void) setControl: (CelestiaController*) _control
|
||||
-(void) setControl: (id) _control
|
||||
{
|
||||
control = _control;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = TextWindowController;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {textView = NSTextField; };
|
||||
SUPERCLASS = NSWindowController;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>69 48 356 240 0 0 1280 832 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>446.1</string>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8P135</string>
|
||||
</dict>
|
||||
</plist>
|
Binary file not shown.
|
@ -0,0 +1,25 @@
|
|||
//
|
||||
// MacInputWatcher.h
|
||||
// celestia
|
||||
//
|
||||
// Created by Da Woon Jung on 2007-06-15.
|
||||
// Copyright 2007 Da Woon Jung. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@class _MacInputWatcher;
|
||||
|
||||
|
||||
@interface MacInputWatcher : NSObject
|
||||
{
|
||||
_MacInputWatcher *watcher;
|
||||
id watched;
|
||||
}
|
||||
- (id)initWithWatched: (id)aWatched;
|
||||
|
||||
- (BOOL) control: (NSControl *)aControl textShouldBeginEditing: (NSText *)aTextObject;
|
||||
- (void) controlTextDidChange: (NSNotification *)aNotification;
|
||||
- (BOOL) control: (NSControl *)aControl textView: (NSTextView *)aTextView doCommandBySelector: (SEL)aCommand;
|
||||
- (void) stringEntered: (NSString *)aString;
|
||||
@end
|
|
@ -0,0 +1,177 @@
|
|||
//
|
||||
// MacInputWatcher.mm
|
||||
// celestia
|
||||
//
|
||||
// Created by Da Woon Jung on 2007-06-15.
|
||||
// Copyright 2007 Da Woon Jung. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MacInputWatcher.h"
|
||||
#import "CelestiaAppCore.h"
|
||||
#import "CelestiaController.h"
|
||||
#import "celestiacore.h"
|
||||
|
||||
@interface MacInputWatcher(Private)
|
||||
- (id) watched;
|
||||
@end
|
||||
|
||||
|
||||
class _MacInputWatcher : public CelestiaWatcher
|
||||
{
|
||||
private:
|
||||
MacInputWatcher *watcherWrapper;
|
||||
|
||||
public:
|
||||
_MacInputWatcher(CelestiaAppCore *_appCore, MacInputWatcher *_watcherWrapper) :
|
||||
CelestiaWatcher(*[_appCore appCore]), watcherWrapper(_watcherWrapper)
|
||||
{};
|
||||
|
||||
void notifyChange(CelestiaCore *, int flags)
|
||||
{
|
||||
if ( 0 != (flags & CelestiaCore::TextEnterModeChanged) )
|
||||
{
|
||||
id watched = [watcherWrapper watched];
|
||||
if ([watched respondsToSelector: @selector(textEnterModeChanged)])
|
||||
[watched performSelector: @selector(textEnterModeChanged)];
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@implementation MacInputWatcher
|
||||
|
||||
- (id)initWithWatched: (id)aWatched;
|
||||
{
|
||||
self = [super init];
|
||||
if (self)
|
||||
{
|
||||
watcher = new _MacInputWatcher([CelestiaAppCore sharedAppCore], self);
|
||||
watched = aWatched;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
if (watcher) delete watcher;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (id) watched
|
||||
{
|
||||
return watched;
|
||||
}
|
||||
|
||||
|
||||
- (BOOL) control: (NSControl *)aControl textShouldBeginEditing: (NSText *)aTextObject
|
||||
{
|
||||
BOOL hasMarkedText = NO;
|
||||
if ([aTextObject respondsToSelector: @selector(hasMarkedText)])
|
||||
{
|
||||
hasMarkedText = [aTextObject performSelector: @selector(hasMarkedText)];
|
||||
}
|
||||
|
||||
[[aTextObject window] makeKeyAndOrderFront: nil];
|
||||
|
||||
if (hasMarkedText)
|
||||
{
|
||||
[[aTextObject window] setAlphaValue: 1.0f];
|
||||
}
|
||||
else
|
||||
{
|
||||
[[aTextObject window] setAlphaValue: 0.0f];
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
-(void) stringEntered: (NSString *)aString
|
||||
{
|
||||
[[CelestiaAppCore sharedAppCore] charEntered: aString];
|
||||
}
|
||||
|
||||
- (void) controlTextDidChange: (NSNotification *)aNotification
|
||||
{
|
||||
id fieldEditor = [[aNotification userInfo] objectForKey: @"NSFieldEditor"];
|
||||
NSString *changedText = [fieldEditor string];
|
||||
[[[aNotification object] window] setAlphaValue: 0.0f];
|
||||
[self stringEntered: changedText];
|
||||
if ([fieldEditor shouldChangeTextInRange: NSMakeRange(NSNotFound, 0)
|
||||
replacementString: nil])
|
||||
{
|
||||
[fieldEditor setString: @""];
|
||||
// Make sure textShouldBeginEditing gets reinvoked
|
||||
[[[aNotification object] window] makeFirstResponder: [aNotification object]];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL) control: (NSControl *)aControl textView: (NSTextView *)aTextView doCommandBySelector: (SEL)aCommand
|
||||
{
|
||||
CelestiaAppCore *appCore = [CelestiaAppCore sharedAppCore];
|
||||
unichar key = 0;
|
||||
int modifiers = 0;
|
||||
|
||||
if (@selector(insertNewline:) == aCommand)
|
||||
key = NSNewlineCharacter;
|
||||
else if (@selector(deleteBackward:) == aCommand)
|
||||
key = NSBackspaceCharacter;
|
||||
else if (@selector(insertTab:) == aCommand)
|
||||
key = NSTabCharacter;
|
||||
else if (@selector(insertBacktab:) == aCommand)
|
||||
key = 127;
|
||||
else if (@selector(cancelOperation:) == aCommand)
|
||||
key = '\033';
|
||||
else
|
||||
{
|
||||
// Allow zoom/pan etc during console input
|
||||
if (@selector(scrollToBeginningOfDocument:) == aCommand)
|
||||
key = CelestiaCore::Key_Home;
|
||||
else if (@selector(scrollToEndOfDocument:) == aCommand)
|
||||
key = CelestiaCore::Key_End;
|
||||
else if (@selector(scrollPageUp:) == aCommand)
|
||||
key = CelestiaCore::Key_PageUp;
|
||||
else if (@selector(scrollPageDown:) == aCommand)
|
||||
key = CelestiaCore::Key_PageDown;
|
||||
else if (@selector(moveLeft:) == aCommand)
|
||||
key = CelestiaCore::Key_Left;
|
||||
else if (@selector(moveLeftAndModifySelection:) == aCommand)
|
||||
{ key = CelestiaCore::Key_Left;
|
||||
modifiers = [appCore toCelestiaModifiers: NSShiftKeyMask buttons: 0]; }
|
||||
else if (@selector(moveRight:) == aCommand)
|
||||
key = CelestiaCore::Key_Right;
|
||||
else if (@selector(moveRightAndModifySelection:) == aCommand)
|
||||
{ key = CelestiaCore::Key_Right;
|
||||
modifiers = [appCore toCelestiaModifiers: NSShiftKeyMask buttons: 0]; }
|
||||
else if (@selector(moveUp:) == aCommand)
|
||||
key = CelestiaCore::Key_Up;
|
||||
else if (@selector(moveUpAndModifySelection:) == aCommand)
|
||||
{ key = CelestiaCore::Key_Up;
|
||||
modifiers = [appCore toCelestiaModifiers: NSShiftKeyMask buttons: 0]; }
|
||||
else if (@selector(moveDown:) == aCommand)
|
||||
key = CelestiaCore::Key_Down;
|
||||
else if (@selector(moveDownAndModifySelection:) == aCommand)
|
||||
{ key = CelestiaCore::Key_Down;
|
||||
modifiers = [appCore toCelestiaModifiers: NSShiftKeyMask buttons: 0]; }
|
||||
else
|
||||
{
|
||||
NSEvent *currEvent = [[aTextView window] currentEvent];
|
||||
if (currEvent && [currEvent type] == NSKeyDown)
|
||||
{
|
||||
NSString *eventChars = [currEvent charactersIgnoringModifiers];
|
||||
if (eventChars && [eventChars length])
|
||||
{
|
||||
key = [eventChars characterAtIndex: 0];
|
||||
modifiers = [appCore toCelestiaModifiers: [currEvent modifierFlags] buttons: 0];
|
||||
}
|
||||
}
|
||||
else
|
||||
return NO;
|
||||
}
|
||||
|
||||
[appCore keyDown: key withModifiers: modifiers];
|
||||
return YES;
|
||||
}
|
||||
|
||||
[appCore charEntered: key withModifiers: modifiers];
|
||||
return YES;
|
||||
}
|
||||
@end
|
|
@ -0,0 +1,16 @@
|
|||
//
|
||||
// TextWindowController.h
|
||||
// celestia
|
||||
//
|
||||
// Created by Da Woon Jung on 2006-10-01.
|
||||
// Copyright 2006 Da Woon Jung. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface TextWindowController : NSWindowController
|
||||
{
|
||||
IBOutlet NSTextField *textView;
|
||||
}
|
||||
- (void)makeActiveWithDelegate: (id)aDelegate;
|
||||
@end
|
|
@ -0,0 +1,25 @@
|
|||
//
|
||||
// TextWindowController.h
|
||||
// celestia
|
||||
//
|
||||
// Created by Da Woon Jung on 2006-10-01.
|
||||
// Copyright 2006 Da Woon Jung. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TextWindowController.h"
|
||||
|
||||
@implementation TextWindowController
|
||||
- (id)init
|
||||
{
|
||||
self = [super initWithWindowNibName: @"TextWindow"];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)makeActiveWithDelegate: (id)aDelegate
|
||||
{
|
||||
[[self window] makeKeyAndOrderFront: nil];
|
||||
[[self window] setAlphaValue: 0.0f];
|
||||
[[self window] makeFirstResponder: textView];
|
||||
[textView setDelegate: aDelegate];
|
||||
}
|
||||
@end
|
|
@ -203,6 +203,7 @@
|
|||
E59AD8160AAB361400E2841D /* hubble.cmod in Copy Models */ = {isa = PBXBuildFile; fileRef = E59AD8150AAB361400E2841D /* hubble.cmod */; };
|
||||
E5A994750B1482FE009F40FA /* scriptrotation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5A994710B1482FE009F40FA /* scriptrotation.cpp */; };
|
||||
E5A994770B1482FE009F40FA /* scriptobject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5A994730B1482FE009F40FA /* scriptobject.cpp */; };
|
||||
E5B48EBA0C22065E00C6FBD7 /* MacInputWatcher.mm in Sources */ = {isa = PBXBuildFile; fileRef = E5B48EB80C22065E00C6FBD7 /* MacInputWatcher.mm */; };
|
||||
E5B615070777307F001BB2BF /* celestia.icns in Resources */ = {isa = PBXBuildFile; fileRef = E5B615060777307F001BB2BF /* celestia.icns */; };
|
||||
E5C9ADE10848FFEF0071B1EE /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5040B0602A47B91014901DC /* Carbon.framework */; };
|
||||
E5C9B478084909E40071B1EE /* README for Mac OS X.rtf in Copy App */ = {isa = PBXBuildFile; fileRef = E5C9B46B084909B90071B1EE /* README for Mac OS X.rtf */; };
|
||||
|
@ -266,6 +267,8 @@
|
|||
E5D969B20ABCC7CC00F43225 /* SBc.png in Copy Models */ = {isa = PBXBuildFile; fileRef = E5D969AA0ABCC76C00F43225 /* SBc.png */; };
|
||||
E5D969B30ABCC7CC00F43225 /* Sc.png in Copy Models */ = {isa = PBXBuildFile; fileRef = E5D969AB0ABCC76C00F43225 /* Sc.png */; };
|
||||
E5E198B00C1D9C2E0094D8BB /* scripts in Copy Misc */ = {isa = PBXBuildFile; fileRef = E5E198960C1D9BB90094D8BB /* scripts */; };
|
||||
E5E2BDD20C24F7B6000D6E83 /* TextWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = E5E2BDD00C24F7B6000D6E83 /* TextWindow.nib */; };
|
||||
E5E2BDD70C24F7E6000D6E83 /* TextWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = E5E2BDD50C24F7E6000D6E83 /* TextWindowController.m */; };
|
||||
E5E365AD095C11B500B14224 /* SplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = E5E365AB095C11B500B14224 /* SplashScreen.m */; };
|
||||
E5E365AF095C123E00B14224 /* splash.png in Resources */ = {isa = PBXBuildFile; fileRef = E5E365AE095C123E00B14224 /* splash.png */; };
|
||||
E5F8C9690795232900D1DAF2 /* libpng.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E5D471260778E33C007731C3 /* libpng.dylib */; };
|
||||
|
@ -603,6 +606,8 @@
|
|||
E5A994710B1482FE009F40FA /* scriptrotation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = scriptrotation.cpp; path = ../src/celengine/scriptrotation.cpp; sourceTree = SOURCE_ROOT; };
|
||||
E5A994720B1482FE009F40FA /* scriptobject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scriptobject.h; path = ../src/celengine/scriptobject.h; sourceTree = SOURCE_ROOT; };
|
||||
E5A994730B1482FE009F40FA /* scriptobject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = scriptobject.cpp; path = ../src/celengine/scriptobject.cpp; sourceTree = SOURCE_ROOT; };
|
||||
E5B48EB70C22065E00C6FBD7 /* MacInputWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacInputWatcher.h; sourceTree = "<group>"; };
|
||||
E5B48EB80C22065E00C6FBD7 /* MacInputWatcher.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MacInputWatcher.mm; sourceTree = "<group>"; };
|
||||
E5B615060777307F001BB2BF /* celestia.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = celestia.icns; sourceTree = "<group>"; };
|
||||
E5B61B2C077737A6001BB2BF /* lua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lua.h; sourceTree = "<group>"; };
|
||||
E5B61B2D077737A6001BB2BF /* lualib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lualib.h; sourceTree = "<group>"; };
|
||||
|
@ -677,6 +682,9 @@
|
|||
E5D969AA0ABCC76C00F43225 /* SBc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = SBc.png; sourceTree = "<group>"; };
|
||||
E5D969AB0ABCC76C00F43225 /* Sc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Sc.png; sourceTree = "<group>"; };
|
||||
E5E198960C1D9BB90094D8BB /* scripts */ = {isa = PBXFileReference; lastKnownFileType = folder; name = scripts; path = ../scripts; sourceTree = SOURCE_ROOT; };
|
||||
E5E2BDD10C24F7B6000D6E83 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/TextWindow.nib; sourceTree = "<group>"; };
|
||||
E5E2BDD40C24F7E6000D6E83 /* TextWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextWindowController.h; sourceTree = "<group>"; };
|
||||
E5E2BDD50C24F7E6000D6E83 /* TextWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextWindowController.m; sourceTree = "<group>"; };
|
||||
E5E365AA095C11B500B14224 /* SplashScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplashScreen.h; sourceTree = "<group>"; };
|
||||
E5E365AB095C11B500B14224 /* SplashScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SplashScreen.m; sourceTree = "<group>"; };
|
||||
E5E365AE095C123E00B14224 /* splash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = splash.png; path = ../splash.png; sourceTree = "<group>"; };
|
||||
|
@ -977,6 +985,7 @@
|
|||
F5EDC6BA0456666601000002 /* SetTimeWindowController.m */,
|
||||
E5E365AB095C11B500B14224 /* SplashScreen.m */,
|
||||
E5D956DF096651DF00CB02B2 /* SplashWindowController.m */,
|
||||
E5E2BDD50C24F7E6000D6E83 /* TextWindowController.m */,
|
||||
F5040B0E02A484DA014901DC /* CelestiaController.h */,
|
||||
F5231C7202C2997601000006 /* CelestiaFavorites.h */,
|
||||
F5274ED202AE88260100020A /* CelestiaOpenGLView.h */,
|
||||
|
@ -992,6 +1001,7 @@
|
|||
F5EDC6B90456666601000002 /* SetTimeWindowController.h */,
|
||||
E5E365AA095C11B500B14224 /* SplashScreen.h */,
|
||||
E5D956DE096651DF00CB02B2 /* SplashWindowController.h */,
|
||||
E5E2BDD40C24F7E6000D6E83 /* TextWindowController.h */,
|
||||
F578B79D02B3E2AD0100020A /* Cocoa Extensions */,
|
||||
F55A246702B2D4FF0100020A /* Wrappers */,
|
||||
E5CC203109AA832000CFFF2C /* POConverter */,
|
||||
|
@ -1077,6 +1087,7 @@
|
|||
E54343100783C3F200053094 /* BrowserWindow.nib */,
|
||||
E50CCA530C065F0100E9C76A /* EclipseFinder.nib */,
|
||||
E5D7660E0982B1860099DBBD /* HelpWindow.nib */,
|
||||
E5E2BDD00C24F7B6000D6E83 /* TextWindow.nib */,
|
||||
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
|
||||
E5CC204509AA843300CFFF2C /* Localizable.strings */,
|
||||
);
|
||||
|
@ -1509,6 +1520,8 @@
|
|||
F55A246702B2D4FF0100020A /* Wrappers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E5B48EB80C22065E00C6FBD7 /* MacInputWatcher.mm */,
|
||||
E5B48EB70C22065E00C6FBD7 /* MacInputWatcher.h */,
|
||||
F55F041202B1105D0100020A /* Astro.mm */,
|
||||
F51FB0E102AF0C820100020A /* CelestiaAppCore.mm */,
|
||||
F55A246202B2AE6E0100020A /* CelestiaBody.mm */,
|
||||
|
@ -1695,6 +1708,7 @@
|
|||
E5D766140982B1860099DBBD /* HelpWindow.nib in Resources */,
|
||||
E5CC204709AA843300CFFF2C /* Localizable.strings in Resources */,
|
||||
E50CCA590C065F0100E9C76A /* EclipseFinder.nib in Resources */,
|
||||
E5E2BDD20C24F7B6000D6E83 /* TextWindow.nib in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -1875,6 +1889,8 @@
|
|||
E50CCA6A0C06632A00E9C76A /* EclipseFinderController.mm in Sources */,
|
||||
E53E619B0C0CA105003CD767 /* scriptmenu.cpp in Sources */,
|
||||
E53E61AD0C0CA444003CD767 /* ScriptsController.mm in Sources */,
|
||||
E5B48EBA0C22065E00C6FBD7 /* MacInputWatcher.mm in Sources */,
|
||||
E5E2BDD70C24F7E6000D6E83 /* TextWindowController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -1972,6 +1988,14 @@
|
|||
name = HelpWindow.nib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5E2BDD00C24F7B6000D6E83 /* TextWindow.nib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
E5E2BDD10C24F7B6000D6E83 /* English */,
|
||||
);
|
||||
name = TextWindow.nib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
|
|
Loading…
Reference in New Issue