diff --git a/src/nsfont.m b/src/nsfont.m index f4f0d2816744..06e10d52bea6 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -700,7 +700,7 @@ Properties to be considered are same as for list(). */ when setting family in ns_spec_to_descriptor(). */ if (ns_attribute_fvalue (fontDesc, NSFontWeightTrait) > 0.50F) traits |= NSBoldFontMask; - if (fabs (ns_attribute_fvalue (fontDesc, NSFontSlantTrait) > 0.05F)) + if (ns_attribute_fvalue (fontDesc, NSFontSlantTrait) > 0.05F) traits |= NSItalicFontMask; /* see https://web.archive.org/web/20100201175731/http://cocoadev.com/forums/comments.php?DiscussionID=74 */ diff --git a/src/nsmenu.m b/src/nsmenu.m index 24aa5a0ac11c..1d3e1aca0c00 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -73,7 +73,7 @@ id menu = [NSApp mainMenu]; for (int i = [menu numberOfItems] - 1 ; i >= 0; i--) { - NSMenuItem *item = [menu itemAtIndex:i]; + NSMenuItem *item = (NSMenuItem *)[menu itemAtIndex:i]; NSString *title = [item title]; if ([ns_app_name isEqualToString:title]) @@ -358,7 +358,7 @@ if (i < [menu numberOfItems]) { NSString *titleStr = [NSString stringWithUTF8String: wv->name]; - NSMenuItem *item = [menu itemAtIndex:i]; + NSMenuItem *item = (NSMenuItem *)[menu itemAtIndex:i]; submenu = (EmacsMenu*)[item submenu]; [item setTitle:titleStr]; @@ -368,8 +368,10 @@ else submenu = [menu addSubmenuWithTitle: wv->name]; +#ifdef NS_IMPL_COCOA if ([[submenu title] isEqualToString:@"Help"]) [NSApp setHelpMenu:submenu]; +#endif if (deep_p) [submenu fillWithWidgetValue: wv->contents]; @@ -472,7 +474,7 @@ - (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr if (menu_separator_name_p (wv->name)) { - item = [NSMenuItem separatorItem]; + item = (NSMenuItem *)[NSMenuItem separatorItem]; } else { @@ -534,7 +536,7 @@ -(void)removeAllItems needsUpdate = YES; } - +#ifdef NS_IMPL_COCOA typedef struct { const char *from, *to; } subst_t; @@ -591,17 +593,18 @@ -(void)removeAllItems xfree (buf); return SSDATA (result); } +#endif /* NS_IMPL_COCOA */ - (void)fillWithWidgetValue: (void *)wvptr { widget_value *first_wv = (widget_value *)wvptr; - NSFont *menuFont = [NSFont menuFontOfSize:0]; NSDictionary *attributes = nil; #ifdef NS_IMPL_COCOA /* Cocoa doesn't allow multi-key sequences in its menu display, so work around it by using tabs to split the title into two columns. */ + NSFont *menuFont = [NSFont menuFontOfSize:0]; NSDictionary *font_attribs = @{NSFontAttributeName: menuFont}; CGFloat maxNameWidth = 0; CGFloat maxKeyWidth = 0; @@ -672,9 +675,9 @@ - (void)fillWithWidgetValue: (void *)wvptr - (EmacsMenu *)addSubmenuWithTitle: (const char *)title { NSString *titleStr = [NSString stringWithUTF8String: title]; - NSMenuItem *item = [self addItemWithTitle: titleStr - action: (SEL)nil /*@selector (menuDown:) */ - keyEquivalent: @""]; + NSMenuItem *item = (NSMenuItem *)[self addItemWithTitle: titleStr + action: (SEL)nil + keyEquivalent: @""]; EmacsMenu *submenu = [[EmacsMenu alloc] initWithTitle: titleStr]; [self setSubmenu: submenu forItem: item]; [submenu release]; @@ -711,6 +714,26 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f : Qnil; } +#ifdef NS_IMPL_GNUSTEP +/* GNUstep seems to have a number of required methods in + NSMenuDelegate that are optional in Cocoa. */ + +- (void) menuWillOpen:(NSMenu *)menu +{ +} +- (void) menuDidClose:(NSMenu *)menu +{ +} +- (NSRect)confinementRectForMenu:(NSMenu *)menu + onScreen:(NSScreen *)screen +{ + return NSZeroRect; +} +- (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item +{ +} +#endif + @end /* EmacsMenu */ diff --git a/src/nsterm.h b/src/nsterm.h index e7ea907569e3..f64354b8a7bb 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -504,6 +504,10 @@ typedef id instancetype; NSPoint grabOffset; } +#ifdef NS_IMPL_GNUSTEP +- (NSInteger) orderedIndex; +#endif + - (BOOL)restackWindow:(NSWindow *)win above:(BOOL)above; - (void)setAppearance; @end diff --git a/src/nsterm.m b/src/nsterm.m index 838c14d5abba..e81a4cbc0dc8 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -8763,6 +8763,16 @@ - (void)makeKeyAndOrderFront:(id)sender } +#ifdef NS_IMPL_GNUSTEP +/* orderedIndex isn't yet available in GNUstep, but it seems pretty + easy to implement. */ +- (NSInteger) orderedIndex +{ + return [[NSApp orderedWindows] indexOfObjectIdenticalTo:self]; +} +#endif + + /* The array returned by [NSWindow parentWindow] may already be sorted, but the documentation doesn't tell us whether or not it is, so to be safe we'll sort it. */