99#import " AppDelegate.h"
1010#import " NSString+Common.h"
1111#import " NSError+Common.h"
12+ #import " HelperFunctions.h"
1213
1314#import " Constants.h"
1415
@@ -20,19 +21,20 @@ @implementation AppDelegate {
2021 AboutWindow *aboutWindow;
2122
2223 NSMenuItem *quitMenuItem;
24+ NSMenuItem *closeMenuItem;
2325}
2426
2527- (void )setupMenuItems {
2628 NSMenu *menuBar = [[NSMenu alloc ]init];
27- [NSApp setMainMenu: menuBar];
29+ [NSApp setMainMenu: menuBar];
2830
2931 NSMenuItem *mainMenuBarItem = [[NSMenuItem alloc ] init ]; {
3032 [menuBar addItem: mainMenuBarItem];
3133
3234 NSMenu *mainItemsMenu = [[NSMenu alloc ] init ]; {
3335 [mainMenuBarItem setSubmenu: mainItemsMenu];
3436
35- NSMenuItem * aboutMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_ABOUT_TITLE
37+ NSMenuItem * aboutMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_ABOUT_TITLE
3638 action: @selector (showAboutWindow )
3739 keyEquivalent: @" " ]; {
3840 [mainItemsMenu addItem: aboutMenuItem];
@@ -53,51 +55,73 @@ - (void)setupMenuItems {
5355 [menuBar addItem: editMenuBarItem];
5456
5557 NSMenu *editMenu = [[NSMenu alloc ] initWithTitle: MENU_EDIT_TITLE]; {
56- [editMenuBarItem setSubmenu: editMenu];
58+ [editMenuBarItem setSubmenu: editMenu];
5759
58- NSMenuItem * cutMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_CUT_TITLE
60+ NSMenuItem * cutMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_CUT_TITLE
5961 action: @selector (cut: )
6062 keyEquivalent: @" x" ]; {
61- [editMenu addItem: cutMenuItem];
63+ [editMenu addItem: cutMenuItem];
6264 }
6365
64- NSMenuItem * copyMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_COPY_TITLE
66+ NSMenuItem * copyMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_COPY_TITLE
6567 action: @selector (copy: )
6668 keyEquivalent: @" c" ]; {
67- [editMenu addItem: copyMenuItem];
69+ [editMenu addItem: copyMenuItem];
6870 }
6971
70- NSMenuItem * pasteMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_PASTE_TITLE
72+ NSMenuItem * pasteMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_PASTE_TITLE
7173 action: @selector (paste: )
7274 keyEquivalent: @" v" ]; {
73- [editMenu addItem: pasteMenuItem];
75+ [editMenu addItem: pasteMenuItem];
7476 }
7577
76- NSMenuItem * selectAllMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_SELECT_ALL_TITLE
78+ NSMenuItem * selectAllMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_SELECT_ALL_TITLE
7779 action: @selector (selectAll: )
7880 keyEquivalent: @" a" ]; {
79- [editMenu addItem: selectAllMenuItem];
81+ [editMenu addItem: selectAllMenuItem];
8082 }
8183 }
8284
8385 }
8486
8587 NSMenuItem *windowMenuBarItem = [[NSMenuItem alloc ] init ]; {
86- [menuBar addItem: windowMenuBarItem];
88+ [menuBar addItem: windowMenuBarItem];
8789
8890 NSMenu *windowMenu = [[NSMenu alloc ] initWithTitle: MENU_WINDOW_TITLE]; {
89- [windowMenuBarItem setSubmenu: windowMenu];
91+ [windowMenuBarItem setSubmenu: windowMenu];
9092
91- NSMenuItem * minimizeMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_MINIMIZE_TITLE
93+ closeMenuItem = [[NSMenuItem alloc ] initWithTitle: @" Close"
94+ action: NULL
95+ keyEquivalent: @" w" ]; {
96+ [windowMenu addItem: closeMenuItem];
97+ }
98+
99+ NSMenuItem *minimizeMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_MINIMIZE_TITLE
92100 action: @selector (miniaturize: )
93101 keyEquivalent: @" m" ]; {
94- [windowMenu addItem: minimizeMenuItem];
102+ [windowMenu addItem: minimizeMenuItem];
95103 }
96104
97- NSMenuItem * hideMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_HIDE_TITLE
105+ NSMenuItem * hideMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_HIDE_TITLE
98106 action: @selector (hide: )
99107 keyEquivalent: @" h" ]; {
100- [windowMenu addItem: hideMenuItem];
108+ [windowMenu addItem: hideMenuItem];
109+ }
110+ }
111+ }
112+
113+ NSMenuItem *supportMeMenuBarItem = [[NSMenuItem alloc ] init ]; {
114+ [menuBar addItem: supportMeMenuBarItem];
115+
116+ NSMenu *supportMeMenu = [[NSMenu alloc ] initWithTitle: MENU_DONATE_ME_TITLE]; {
117+ [supportMeMenuBarItem setSubmenu: supportMeMenu];
118+
119+ NSMenuItem *openDonationURLMenuItem = [[NSMenuItem alloc ] initWithTitle: MENU_ITEM_OPEN_DONATION_WEB_PAGE_TITLE
120+ action: @selector (openDonationsPage )
121+ keyEquivalent: @" d" ]; {
122+ [openDonationURLMenuItem setTarget: [HelperFunctions class ]];
123+
124+ [supportMeMenu addItem: openDonationURLMenuItem];
101125 }
102126 }
103127 }
@@ -127,7 +151,8 @@ - (void)setupWindows {
127151 padding: CHILD_CONTENT_SPACING
128152 paddingIsTitleBarAware: YES
129153 aboutWindow: aboutWindow
130- quitMenuItem: quitMenuItem];
154+ quitMenuItem: quitMenuItem
155+ closeMenuItem: closeMenuItem];
131156
132157 [mainWindow setMinSize: minWindowSize];
133158 [mainWindow setMaxSize: maxWindowSize];
0 commit comments