aboutsummaryrefslogtreecommitdiff
path: root/XcodePlugin/GTMXcodeAboutItem.m
blob: c87ab4770ba9309e30797ac5dea5ddb11a63eb2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//
//  GTMXcodeAboutItem.m
//
//  Copyright 2007-2009 Google Inc.
//
//  Licensed under the Apache License, Version 2.0 (the "License"); you may not
//  use this file except in compliance with the License.  You may obtain a copy
//  of the License at
//
//  http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
//  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
//  License for the specific language governing permissions and limitations under
//  the License.
//

#import "GTMXcodeMenuItem.h"
#import "GTMXcodePlugin.h"

// Handles the about GTM Xcode Plugin menu item in the Application menu.
@interface GTMXcodeAboutItem : GTMXcodeMenuItem
@end

@implementation GTMXcodeAboutItem
+ (void)load {
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  [GTMXcodePlugin registerMenuItem:[[[self alloc] init] autorelease]];
  [pool release];
}

- (NSString*)title {
  return @"About GTM Xcode Plugin";
}

- (void)action:(id)sender {
  NSBundle *mainBundle = [GTMXcodePlugin pluginBundle];
  NSString *creditsPath = [mainBundle pathForResource:@"Credits" ofType:@"rtf"];
  NSAttributedString *credits
    = [[[NSAttributedString alloc] initWithPath:creditsPath
                             documentAttributes:nil] autorelease];

  NSString *path = [mainBundle pathForResource:@"GTM"
                                        ofType:@"icns"];
  NSImage *icon = [[[NSImage alloc] initWithContentsOfFile:path] autorelease];
  NSDictionary *optionsDict = [NSDictionary dictionaryWithObjectsAndKeys:
    credits, @"Credits",
    [mainBundle objectForInfoDictionaryKey:@"CFBundleName"], 
    @"ApplicationName",
    [mainBundle objectForInfoDictionaryKey:@"NSHumanReadableCopyright"], 
    @"Copyright",
    [mainBundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"], 
    @"ApplicationVersion",
    @"", @"Version",
    icon, @"ApplicationIcon",
    nil];
  [NSApp orderFrontStandardAboutPanelWithOptions:optionsDict];
}

- (NSMenu*)insertionMenu {
  NSMenu *rootMenu = [NSApp mainMenu];
  NSMenuItem *appleMenuItem = [rootMenu itemAtIndex:0];
  return [appleMenuItem submenu];
}

- (int)insertionIndex {
  return 1;
}
@end