# HG changeset patch # User Michael Lutz # Date 1374794814 -7200 # Node ID 6baaec6722b90518b9952c2e2ac65b8c47ec3954 # Parent cfe87e917bcd922e5f0d7bfe2c20e6799a978336 -Codechange: [OSX] Make our view aware of text input by IMEs. diff --git a/src/video/cocoa/cocoa_v.h b/src/video/cocoa/cocoa_v.h --- a/src/video/cocoa/cocoa_v.h +++ b/src/video/cocoa/cocoa_v.h @@ -232,7 +232,7 @@ @end /** Subclass of NSView to fix Quartz rendering and mouse awareness */ -@interface OTTD_CocoaView : NSView { +@interface OTTD_CocoaView : NSView { CocoaSubdriver *driver; NSTrackingRectTag trackingtag; } diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -799,6 +799,65 @@ HandleTextInput([ s UTF8String ]); } +/** Set a new marked text and reposition the caret. */ +- (void)setMarkedText:(id)aString selectedRange:(NSRange)selRange +{ +} + +/** Unmark the current marked text. */ +- (void)unmarkText +{ + HandleTextInput(NULL, true); +} + +/** Get the caret position. */ +- (NSRange)selectedRange +{ + return NSMakeRange(NSNotFound, 0); +} + +/** Get the currently marked range. */ +- (NSRange)markedRange +{ + return NSMakeRange(NSNotFound, 0); +} + +/** Is any text marked? */ +- (BOOL)hasMarkedText +{ + return NO; +} + +/** Get a string corresponding to the given range. */ +- (NSAttributedString *)attributedSubstringFromRange:(NSRange)theRange +{ + return nil; +} + +/** Get the character that is rendered at the given point. */ +- (NSUInteger)characterIndexForPoint:(NSPoint)thePoint +{ + return NSNotFound; +} + +/** Get the bounding rect for the given range. */ +- (NSRect)firstRectForCharacterRange:(NSRange)aRange +{ + return NSMakeRect(0, 0, 0, 0); +} + +/** Get all string attributes that we can process for marked text. */ +- (NSArray*)validAttributesForMarkedText +{ + return [ NSArray array ]; +} + +/** Identifier for this text input instance. */ +- (NSInteger)conversationIdentifier +{ + return 0; +} + /** Invoke the selector if we implement it. */ - (void)doCommandBySelector:(SEL)aSelector {