/******************************************************************************* * Copyright (c) 2005 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.jface.menus;import org.eclipse.core.commands.INamedHandleStateIds;import org.eclipse.jface.commands.RadioState;import org.eclipse.jface.commands.ToggleState;/** * <p> * State identifiers that should be understood by {@link SItem} and renderers of * {@link SItem}. The state is associated with the command, and then * interpreted by the menu renderer. * </p> * <p> * Clients may implement or extend this class. * </p> * <p> * <strong>EXPERIMENTAL</strong>. This class or interface has been added as * part of a work in progress. There is a guarantee neither that this API will * work nor that it will remain the same. Please do not use this API without * consulting with the Platform/UI team. * </p> *  * @since 3.2 */public interface IMenuStateIds extends INamedHandleStateIds {	/**	 * The state id used for indicating the widget style of a command presented	 * in the menus and tool bars. This state must be an instance of	 * {@link ToggleState} or {@link RadioState}.	 */	public static String STYLE = "STYLE"; //$NON-NLS-1$}