Bug 205792 [Mac] Enhance org.eclipse.ui.carbon plugin in order to modify the system menus
Build ID: Eclipse 3.3 Steps To Reproduce: the org.eclipse.ui.carbon provides the About and Preferences menu items but it doesn;t handle the menu text of "Hide eclipse" and "Quit eclipse". It should modify the menu text as the corresponding product name as like as About menu More information: here has some sample code to modify the menu text in org.eclipse.ui.carbon private static final int kHICommandHide = ('h' << 24) + ('i' << 16) + ('d' << 8) + 'e'; int[] outHideMenu = new int[1]; short[] outHideIndex = new short[1]; if (OS.GetIndMenuItemWithCommandID(0, kHICommandHide, 1, outHideMenu, outHideIndex) == OS.noErr && outHideMenu[0] != 0) { int l = fHideActionName.length(); char buffer[] = new char[l]; fHideActionName.getChars(0, l, buffer, 0); int str = OS.CFStringCreateWithCharacters(OS.kCFAllocatorDefault, buffer, l); OS.SetMenuItemTextWithCFString (outHideMenu[0], outHideIndex[0], str); OS.CFRelease(str); }
bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/carbon/CarbonUIEnhancer.java
}
        }
        return OS.eventNotHandledErr;
       
    }
    
    private int runCommand(String commandId) {
		IWorkbench workbench = PlatformUI.getWorkbench();
		if (workbench == null)
			return OS.eventNotHandledErr;
		
		IWorkbenchWindow activeWorkbenchWindow = workbench
				.getActiveWorkbenchWindow();
		if (activeWorkbenchWindow == null)
			return OS.eventNotHandledErr;
		
		IHandlerService commandService = (IHandlerService) activeWorkbenchWindow
				.getService(IHandlerService.class);
		if (commandService != null) {
			try {
				commandService.executeCommand(commandId, null);
				return OS.noErr;
			} catch (ExecutionException e) {
			} catch (NotDefinedException e) {
			} catch (NotEnabledException e) {
			} catch (NotHandledException e) {
			}
		}
		return OS.eventNotHandledErr;
	}