gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r7877 - GNUnet/src/setup/cocoa


From: gnunet
Subject: [GNUnet-SVN] r7877 - GNUnet/src/setup/cocoa
Date: Tue, 11 Nov 2008 05:58:06 -0700 (MST)

Author: holindho
Date: 2008-11-11 05:58:06 -0700 (Tue, 11 Nov 2008)
New Revision: 7877

Modified:
   GNUnet/src/setup/cocoa/config_cocoa.m
Log:
add app menu and a simple about dialog


Modified: GNUnet/src/setup/cocoa/config_cocoa.m
===================================================================
--- GNUnet/src/setup/cocoa/config_cocoa.m       2008-11-10 23:25:51 UTC (rev 
7876)
+++ GNUnet/src/setup/cocoa/config_cocoa.m       2008-11-11 12:58:06 UTC (rev 
7877)
@@ -32,6 +32,11 @@
 #import "GNUNETSetupView.h"
 #include "config_cocoa.h"
 
+// Stupid hack
address@hidden NSApplication(Boohoo)
+- (void) setAppleMenu:(NSMenu *)menu;
address@hidden
+
 @interface GNUNETSetupApp : NSObject
 {
        struct GNUNET_GC_Configuration *gnunetConfig;
@@ -48,9 +53,11 @@
        setupContext:(struct GNUNET_GNS_Context *)gns
        errorContext:(struct GNUNET_GE_Context *)ectx
        configFilename:(const char *)filename;
+- (void) createMenu;
 - (void) createWindow;
 - (void) setupViewDidResize;
 - (BOOL) needsToSaveConfig;
+- (void) openAboutPanel:(id)sender;
 - (void) errorSavingAlertDidEnd:(NSAlert *)theAlert
        returnCode:(int)returnCode
        contextInfo:(void *)contextInfo;
@@ -86,6 +93,104 @@
        [super dealloc];
 }
 
+- (void) createMenu
+{
+       NSString *appName = [[NSProcessInfo processInfo] processName];
+       NSMenuItem *menuItem;
+       NSMenu *menu;
+       NSMenu *appleMenu;
+
+       appleMenu = [[NSMenu alloc] initWithTitle:@""];
+
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:[@"About " stringByAppendingString:appName]
+               action:@selector(openAboutPanel:) 
+               keyEquivalent:@""];
+       [menuItem setTarget:self];
+       [appleMenu addItem:menuItem];
+       [menuItem release];
+
+       [appleMenu addItem:[NSMenuItem separatorItem]];
+
+       menu = [[NSMenu alloc] init];
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:@"Services" 
+               action:nil
+               keyEquivalent:@""];
+       [menuItem setSubmenu:menu];
+       [appleMenu addItem:menuItem];
+       [menuItem release];
+       
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:[@"Hide " stringByAppendingString:appName]
+               action:@selector(hide:)
+               keyEquivalent:@"h"];
+       [menuItem setTarget:NSApp];
+       [appleMenu addItem:menuItem];
+       [menuItem release];
+
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:@"Hide Others" 
+               action:@selector(hideOtherApplications:) 
+               keyEquivalent:@"h"];
+       [menuItem setKeyEquivalentModifierMask:
+               (NSAlternateKeyMask | NSCommandKeyMask)];
+       [menuItem setTarget:NSApp];
+       [appleMenu addItem:menuItem];
+       [menuItem release];
+
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:@"Show All" 
+               action:@selector(unhideAllApplications:) 
+               keyEquivalent:@""];
+       [menuItem setTarget:NSApp];
+       [appleMenu addItem:menuItem];
+       [menuItem release];
+       
+       [appleMenu addItem:[NSMenuItem separatorItem]];
+
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:[@"Quit " stringByAppendingString:appName]
+               action:@selector(terminate:) 
+               keyEquivalent:@"q"];
+       [menuItem setTarget:NSApp];
+       [appleMenu addItem:menuItem];
+       [menuItem release];
+       
+       menuItem = [[NSMenuItem alloc] initWithTitle:@"" 
+               action:nil 
+               keyEquivalent:@""];
+       [menuItem setSubmenu:appleMenu];        
+       [NSApp setMainMenu:[[[NSMenu alloc] init] autorelease]];
+       [[NSApp mainMenu] addItem:menuItem];
+       [menuItem release];
+
+       [NSApp setAppleMenu:appleMenu];
+       [appleMenu release];
+       [NSApp setServicesMenu:menu];
+       [menu release];
+
+       menu = [[NSMenu alloc] initWithTitle:@"Window"];
+
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:@"Minimize"
+               action:@selector(performMiniaturize:)
+               keyEquivalent:@"m"];
+       [menu addItem:menuItem];
+       [menuItem release];
+
+       menuItem = [[NSMenuItem alloc]
+               initWithTitle:@"Window"
+               action:nil
+               keyEquivalent:@""];
+       [menuItem setSubmenu:menu];
+       [[NSApp mainMenu] addItem:menuItem];
+       [menuItem release];
+
+       [NSApp setWindowsMenu:menu];
+       [menu release];
+}
+
 - (void) createWindow
 {
        rootView = [[[PackingBoxContainer alloc]
@@ -133,6 +238,35 @@
 
 }
 
+- (void) openAboutPanel:(id)sender
+{
+       NSDictionary *options;
+       NSImage *image;
+       char *dirname;
+       char *imageName;
+
+       dirname = GNUNET_get_installation_path (GNUNET_IPK_DATADIR);
+       GNUNET_GE_ASSERT (gnunetGECtx, dirname != NULL);
+       imageName = GNUNET_malloc(strlen (dirname) +
+                       strlen ("gnunet-logo-color.png") + 1);
+       strcpy (imageName, dirname);
+       strcat (imageName, "gnunet-logo-color.png");
+       printf("[%s]\n", imageName);
+
+       image = [[NSImage alloc] initByReferencingFile:[[[NSString alloc]
+                                initWithCString:imageName
+                                encoding:NSUTF8StringEncoding] autorelease]];
+       GNUNET_free (imageName);
+
+       options = [NSDictionary dictionaryWithObjectsAndKeys:
+               image, @"ApplicationIcon",
+               @"Copyright 2001-2008 Christian Grothoff (and other 
contributing authors)", @"Copyright",
+               @PACKAGE_STRING, @"ApplicationVersion",
+               nil];
+
+       [NSApp orderFrontStandardAboutPanelWithOptions:options];
+}
+
 - (void) errorSavingAlertDidEnd:(NSAlert *)theAlert
        returnCode:(int)returnCode
        contextInfo:(void *)contextInfo
@@ -277,7 +411,8 @@
                 initWithConfig:cfg setupContext:gns errorContext:ectx
                configFilename:filename];
        [NSApp setDelegate:setup];
-       //[NSApp setMainMenu:[[NSMenu alloc] init]];
+
+       [setup createMenu];
        
        [NSApp run];
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]