From c64e297e0c3f5f1f59a21d1ad3e12e6834e155d7 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 5 Aug 2013 20:37:40 +0000 Subject: [PATCH] (svn r25688) -Codechange: [OSX] Make our view aware of text input by IMEs. --- src/video/cocoa/cocoa_v.h | 2 +- src/video/cocoa/cocoa_v.mm | 63 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/video/cocoa/cocoa_v.h b/src/video/cocoa/cocoa_v.h index e350f0a060..8a964f03b2 100644 --- a/src/video/cocoa/cocoa_v.h +++ b/src/video/cocoa/cocoa_v.h @@ -232,7 +232,7 @@ uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_i @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 index 99f2c3fedd..1a0ea1a60d 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -799,6 +799,69 @@ void cocoaReleaseAutoreleasePool() 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. */ +#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 +- (long)conversationIdentifier +#else +- (NSInteger)conversationIdentifier +#endif +{ + return 0; +} + /** Invoke the selector if we implement it. */ - (void)doCommandBySelector:(SEL)aSelector {