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
/*******************************************************************************
 * Copyright (c) 2000, 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui.carbon;
import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.NotEnabledException;
import org.eclipse.core.commands.NotHandledException;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.core.runtime.IProduct;
import org.eclipse.core.runtime.Platform;