/******************************************************************************* * Copyright (c) 2005 Texas Instruments Inc. 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: * Texas Instruments Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.managedbuilder.core; /** * This interface determines whether or not the option is currently displayed, * enabled, and used in command-line generation. */ public interface IOptionApplicability { /** * This method is queried whenever a makefile or makefile fragment is * generated which uses this option, and in the C/C++ Build property * pages when displaying the current command line. * * @param configuration build configuration of option * (may be IConfiguration or IResourceConfiguration) * @param holder contains the holder of the option * @param option the option itself * * @return true if this option is to be used in command line * generation, false otherwise */ public boolean isOptionUsedInCommandLine( IBuildObject configuration, IHoldsOptions holder, IOption option); /** * This method is queried whenever a new option category is displayed. * * @param configuration build configuration of option * (may be IConfiguration or IResourceConfiguration) * @param holder contains the holder of the option * @param option the option itself * * @return true if this option should be visible in the build options page, * false otherwise */ public boolean isOptionVisible( IBuildObject configuration, IHoldsOptions holder, IOption option); /** * Whenever the value of an option changes in the GUI, this method is * queried on all other visible options for the same category. Note that * this occurs when the GUI changes - the user may opt to cancel these * changes. * * @param configuration build configuration of option * (may be IConfiguration or IResourceConfiguration) * @param holder contains the holder of the option * @param option the option itself * * @return true if this option should be enabled in the build options page, * or false if it should be disabled (grayed out) */ public boolean isOptionEnabled( IBuildObject configuration, IHoldsOptions holder, IOption option); }