#define KEY_NS_INSERT_WORKING_TEXT ((1<<28)|(0<<16)|9)
#define KEY_NS_DELETE_WORKING_TEXT ((1<<28)|(0<<16)|10)
#define KEY_NS_SPI_SERVICE_CALL ((1<<28)|(0<<16)|11)
+#define KEY_NS_NEW_FRAME ((1<<28)|(0<<16)|12)
/* Convert a symbol indexed with an NSxxx value to a value as defined
in keyboard.c (lispy_function_key). I hope this is a correct way
NSEnumerator *lenum, *cenum;
NSString *name;
NSColorList *clist;
+
#ifdef NS_IMPL_GNUSTEP
/* XXX: who is wrong, the requestor or the implementation? */
if ([nsname compare: @"Highlight" options: NSCaseInsensitiveSearch]
== NSOrderedSame)
nsname = @"highlightColor";
#endif
- if ([nsname compare: @"dark blue" options: NSCaseInsensitiveSearch]
- == NSOrderedSame
- || [nsname compare: @"darkblue" options: NSCaseInsensitiveSearch]
- == NSOrderedSame)
- nsname = @"navy blue";
lenum = [[NSColorList availableColorLists] objectEnumerator];
while ( (clist = [lenum nextObject]) && new == nil)
appMenu = [[EmacsMenu alloc] initWithTitle: @"Emacs"];
[appMenu setAutoenablesItems: NO];
mainMenu = [[EmacsMenu alloc] initWithTitle: @""];
+ dockMenu = [[EmacsMenu alloc] initWithTitle: @""];
[appMenu insertItemWithTitle: @"About Emacs"
action: @selector (orderFrontStandardAboutPanel:)
keyEquivalent: @""
atIndex: 0];
[mainMenu setSubmenu: appMenu forItem: item];
+ [dockMenu insertItemWithTitle: @"New Frame"
+ action: @selector (newFrame:)
+ keyEquivalent: @""
+ atIndex: 0];
[NSApp setMainMenu: mainMenu];
[NSApp setAppleMenu: appMenu];
}
+- (void)newFrame: (id)sender
+{
+ struct frame *emacsframe = SELECTED_FRAME ();
+ NSEvent *theEvent = [NSApp currentEvent];
+
+ if (!emacs_event)
+ return;
+ emacs_event->kind = NON_ASCII_KEYSTROKE_EVENT;
+ emacs_event->code = KEY_NS_NEW_FRAME;
+ emacs_event->modifiers = 0;
+ EV_TRAILER (theEvent);
+}
+
+
/* Open a file (used by below, after going into queue read by ns_read_socket) */
- (BOOL) openFile: (NSString *)fileName
{
}
+
+/* Handle dock menu requests. */
+- (NSMenu *)applicationDockMenu: (NSApplication *) sender
+{
+ return dockMenu;
+}
+
+
/* TODO: these may help w/IO switching btwn terminal and NSApp */
- (void)applicationDidBecomeActive: (NSNotification *)notification
{
return rect;
}
-#ifdef NS_IMPL_GNUSTEP
-- (long)conversationIdentifier
-{
- return (long)self;
-}
-#else
- (NSInteger)conversationIdentifier
{
return (NSInteger)self;
}
-#endif
/* TODO: below here not yet implemented correctly, but may not be needed */
NSTRACE (windowShouldClose);
windowClosing = YES;
- if (ns_window_num <= 1)
- return NO;
if (!emacs_event)
return NO;
emacs_event->kind = DELETE_WINDOW_EVENT;
ns_send_appdefined (-1);
- /* The following line causes a crash on GNUstep. Adrian Roberts
+ /* The following line causes a crash on GNUstep. Adrian Robert
says he doesn't remember why he added this line, but removing it
doesn't seem to cause problems on OSX, either. */
#if 0