Adds Reset and Power Down menu items to the Machine menu. 

Signed-off-by: John Arbuckle <programmingk...@gmail.com>

---
 ui/cocoa.m |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index 5e558ea..2c4a61a 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -828,6 +828,8 @@ QemuCocoaView *cocoaView;
 - (void)removePause;
 - (void)ejectDeviceMedia:(id)sender;
 - (void)changeDeviceMedia:(id)sender;
+- (void)restartQemu:(id)sender;
+- (void)powerDown:(id)sender;
 @end
 
 @implementation QemuCocoaAppController
@@ -1064,6 +1066,18 @@ QemuCocoaView *cocoaView;
     }
 }
 
+/* Restarts QEMU */
+- (void)restartQemu:(id)sender
+{
+    qemu_system_reset_request();
+}
+
+/* Powers down the emulator */
+- (void)powerDown:(id)sender
+{
+    qmp_system_powerdown(NULL);
+}
+
 @end
 
 
@@ -1202,6 +1216,15 @@ static void addDeviceMenuItems(NSMenu * menu)
     }
 }
 
+// Adds the Reset and Power Down menu items to the specifed menu
+static void addResetPowerDownMenuItems(NSMenu* menu)
+{
+    [menu addItem: [NSMenuItem separatorItem]];
+    [menu addItem: [[[NSMenuItem alloc] initWithTitle: @"Reset" action: 
@selector(restartQemu:) keyEquivalent: @""] autorelease]];
+    [menu addItem: [[[NSMenuItem alloc] initWithTitle: @"Power Down" action: 
@selector(powerDown:) keyEquivalent: @""] autorelease]];
+}
+
+
 /*
    Adds the Machine menu to the menu bar.
    Has to be added separately because QEMU needs
@@ -1222,6 +1245,7 @@ static void createMachineMenu()
     [[NSApp mainMenu] insertItem: menuItem atIndex: 2]; // Insert after View 
menu
     [[menu itemWithTitle: @"Resume"] setEnabled: NO];  // Disables the Resume 
menu item because it isn't needed right now.
     addDeviceMenuItems(menu);
+    addResetPowerDownMenuItems(menu);
 }
 
 #pragma mark qemu
-- 
1.7.5.4

Reply via email to