chiark / gitweb /
Added a dock menu which makes it more convenient to launch a new
authorSimon Tatham <anakin@pobox.com>
Mon, 24 Jan 2005 07:42:01 +0000 (07:42 +0000)
committerSimon Tatham <anakin@pobox.com>
Mon, 24 Jan 2005 07:42:01 +0000 (07:42 +0000)
game window.

[originally from svn r5184]

osx.m

diff --git a/osx.m b/osx.m
index fae2e15c1b1986821bd4edc2b4a5867ae2410855..2514130a9603bdbfa75edac3e2afd753eafd2ecf 100644 (file)
--- a/osx.m
+++ b/osx.m
  *    think help is HTML round here anyway so perhaps we can work
  *    with what we already have.
  * 
- *  - Can we arrange for a pop-up menu from the Dock icon which
- *    launches specific games, perhaps?
- *     + apparently we can; see the NSApplication method
- *      `applicationDockMenu:'. Good good. Do so.
- *
  *  - Why are the right and bottom edges of the Pattern grid one
  *    pixel thinner than they should be?
  * 
@@ -1105,6 +1100,23 @@ void status_bar(frontend *fe, char *text)
     [win makeKeyAndOrderFront:self];
 }
 
+- (NSMenu *)applicationDockMenu:(NSApplication *)sender
+{
+    NSMenu *menu = newmenu("Dock Menu");
+    {
+       int i;
+
+       for (i = 0; i < gamecount; i++) {
+           id item =
+               initnewitem([DataMenuItem allocWithZone:[NSMenu menuZone]],
+                           menu, gamelist[i]->name, "", self,
+                           @selector(newGame:));
+           [item setPayload:(void *)gamelist[i]];
+       }
+    }
+    return menu;
+}
+
 @end
 
 /* ----------------------------------------------------------------------
@@ -1125,6 +1137,7 @@ int main(int argc, char **argv)
     [NSApp setApplicationIconImage:icon];
 
     controller = [[[AppController alloc] init] autorelease];
+    [NSApp setDelegate:controller];
 
     [NSApp setMainMenu: newmenu("Main Menu")];