/******************************************************************************* * Copyright (c) 2005, 2015 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 * QNX Software System * Markus Schorn (Wind River Systems) * Anton Leherbauer (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.ui.viewsupport; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.model.IWorkbenchAdapter; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.IArchiveContainer; import org.eclipse.cdt.core.model.IBinary; import org.eclipse.cdt.core.model.IBinaryContainer; import org.eclipse.cdt.core.model.IBinaryModule; import org.eclipse.cdt.core.model.ICContainer; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.IContributedCElement; import org.eclipse.cdt.core.model.IDeclaration; import org.eclipse.cdt.core.model.IField; import org.eclipse.cdt.core.model.IInclude; import org.eclipse.cdt.core.model.IIncludeReference; import org.eclipse.cdt.core.model.ILibraryReference; import org.eclipse.cdt.core.model.IMethodDeclaration; import org.eclipse.cdt.core.model.ISourceReference; import org.eclipse.cdt.core.model.ISourceRoot; import org.eclipse.cdt.core.model.ITemplate; import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility; import org.eclipse.cdt.ui.CDTSharedImages; import org.eclipse.cdt.ui.CElementImageDescriptor; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.internal.core.model.CModelManager; /** * Default strategy of the C plugin for the construction of C element icons. */ public class CElementImageProvider { /** * Flags for the CElementImageProvider: * Generate images with overlays. */ public final static int OVERLAY_ICONS= 0x1; /** * Generate small sized images. */ public final static int SMALL_ICONS= 0x2; /** * Use the 'light' style for rendering types. */ public final static int LIGHT_TYPE_ICONS= 0x4; /** * Show error overlay. */ public final static int OVERLAY_ERROR= 0x8; /** * Show warning overlay */ public final static int OVERLAY_WARNING= 0x10; /** * Show override overlay. */ public final static int OVERLAY_OVERRIDE= 0x20; /** * Show implements overlay. */ public final static int OVERLAY_IMPLEMENTS= 0x40; /** * Show external file overlay. */ public final static int OVERLAY_EXTERNAL= 0x80; public static final Point SMALL_SIZE= new Point(16, 16); public static final Point BIG_SIZE= new Point(22, 16); private static ImageDescriptor DESC_OBJ_PROJECT_CLOSED; private static ImageDescriptor DESC_OBJ_PROJECT; //private static ImageDescriptor DESC_OBJ_FOLDER; { ISharedImages images= CUIPlugin.getDefault().getWorkbench().getSharedImages(); DESC_OBJ_PROJECT_CLOSED= images.getImageDescriptor(IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED); DESC_OBJ_PROJECT= images.getImageDescriptor(IDE.SharedImages.IMG_OBJ_PROJECT); //DESC_OBJ_FOLDER= images.getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER); } public CElementImageProvider() { } /** * Returns the icon for a given element. The icon depends on the element type * and element properties. If configured, overlay icons are constructed for * <code>ISourceReference</code>s. * @param flags Flags as defined by the CElementImageProvider */ public Image getImageLabel(Object element, int flags) { ImageDescriptor descriptor= null; if (element instanceof ICElement) { if (!CCorePlugin.showSourceRootsAtTopOfProject() && element instanceof ICContainer && isParentOfSourceRoot(element)) { descriptor = CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_SOURCE2_ROOT); } else { descriptor= getCImageDescriptor((ICElement) element, flags); } } else if (element instanceof IFile) { // Check for Non Translation Unit. IFile file = (IFile)element; String name = file.getName(); if (CoreModel.isValidTranslationUnitName(file.getProject(), name) || CoreModel.isValidTranslationUnitName(null, name)) { if (CoreModel.isValidCHeaderUnitName(null, name) || CoreModel.isValidCXXHeaderUnitName(null, name)) descriptor = CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TUNIT_RESOURCE_H); else if (CoreModel.isValidASMSourceUnitName(null, name)) descriptor = CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TUNIT_RESOURCE_A); else descriptor = CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TUNIT_RESOURCE); Point size= useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE; descriptor = new CElementImageDescriptor(descriptor, 0, size); } } else if (!CCorePlugin.showSourceRootsAtTopOfProject() && element instanceof IFolder && isParentOfSourceRoot(element)) { descriptor = CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_SOURCE2_ROOT); } if (descriptor == null && element instanceof IAdaptable) { descriptor= getWorkbenchImageDescriptor((IAdaptable) element, flags); } if (descriptor != null) { return CUIPlugin.getImageDescriptorRegistry().get(descriptor); } return null; } private boolean isParentOfSourceRoot(Object element) { // we want to return true for parents of source roots which are not themselves source roots // so we can distinguish the two and return the source root icon or the parent of source root icon IFolder folder = null; if (element instanceof ICContainer && !(element instanceof ISourceRoot)) folder = (IFolder) ((ICContainer) element).getResource(); else if (element instanceof IFolder) folder = (IFolder) element; if (folder == null) return false; ICProject cproject = CModelManager.getDefault().getCModel().findCProject(folder.getProject()); if (cproject != null) { try { IPath folderPath = folder.getFullPath(); for (ICElement sourceRoot : cproject.getSourceRoots()) { IPath sourceRootPath = sourceRoot.getPath(); if (folderPath.isPrefixOf(sourceRootPath)) { return true; } } } catch (CModelException e) { } } return false; } public static ImageDescriptor getImageDescriptor(int type) { switch (type) { case ICElement.C_VCONTAINER: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CONTAINER); case ICElement.C_BINARY: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_BINARY); case ICElement.C_ARCHIVE: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ARCHIVE); case ICElement.C_UNIT: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TUNIT); case ICElement.C_CCONTAINER: //return DESC_OBJ_FOLDER; return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CFOLDER); case ICElement.C_PROJECT: return DESC_OBJ_PROJECT; case ICElement.C_STRUCT: case ICElement.C_TEMPLATE_STRUCT: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_STRUCT); case ICElement.C_CLASS: case ICElement.C_TEMPLATE_CLASS: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CLASS); case ICElement.C_UNION: case ICElement.C_TEMPLATE_UNION: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_UNION); case ICElement.C_TYPEDEF: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TYPEDEF); case ICElement.C_ENUMERATION: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ENUMERATION); case ICElement.C_ENUMERATOR: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ENUMERATOR); case ICElement.C_FIELD: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PUBLIC_FIELD); case ICElement.C_VARIABLE: case ICElement.C_TEMPLATE_VARIABLE: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_VARIABLE); case ICElement.C_METHOD: case ICElement.C_METHOD_DECLARATION: case ICElement.C_TEMPLATE_METHOD: case ICElement.C_TEMPLATE_METHOD_DECLARATION: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PUBLIC_METHOD); case ICElement.C_FUNCTION: case ICElement.C_TEMPLATE_FUNCTION: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_FUNCTION); case ICElement.C_STRUCT_DECLARATION: case ICElement.C_CLASS_DECLARATION: case ICElement.C_UNION_DECLARATION: case ICElement.C_VARIABLE_DECLARATION: case ICElement.C_TEMPLATE_CLASS_DECLARATION: case ICElement.C_TEMPLATE_STRUCT_DECLARATION: case ICElement.C_TEMPLATE_UNION_DECLARATION: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_VAR_DECLARATION); case ICElement.C_FUNCTION_DECLARATION: case ICElement.C_TEMPLATE_FUNCTION_DECLARATION: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_DECLARATION); case ICElement.C_INCLUDE: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_INCLUDE); case ICElement.C_MACRO: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_MACRO); case ICElement.C_NAMESPACE: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_NAMESPACE); case ICElement.C_USING: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_USING); case ICElement.ASM_LABEL: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_LABEL); } return null; } private boolean showOverlayIcons(int flags) { return (flags & OVERLAY_ICONS) != 0; } // private boolean useLightIcons(int flags) { // return (flags & LIGHT_TYPE_ICONS) != 0; // } private boolean useSmallSize(int flags) { return (flags & SMALL_ICONS) != 0; } /** * Returns an image descriptor for a C element. The descriptor includes overlays, if specified. */ public ImageDescriptor getCImageDescriptor(ICElement element, int flags) { int adornmentFlags= computeCAdornmentFlags(element, flags); Point size= useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE; ImageDescriptor desc = getBaseImageDescriptor(element, flags); if(desc != null) { return new CElementImageDescriptor(desc, adornmentFlags, size); } return null; } /** * Returns an image descriptor for a IAdaptable. The descriptor includes overlays, if specified (only error ticks apply). * Returns <code>null</code> if no image could be found. */ public ImageDescriptor getWorkbenchImageDescriptor(IAdaptable adaptable, int flags) { IWorkbenchAdapter wbAdapter= adaptable.getAdapter(IWorkbenchAdapter.class); if (wbAdapter == null) { return null; } ImageDescriptor descriptor= wbAdapter.getImageDescriptor(adaptable); if (descriptor == null) { return null; } int adornmentFlags= computeBasicAdornmentFlags(adaptable, flags); Point size= useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE; return new CElementImageDescriptor(descriptor, adornmentFlags, size); } // ---- Computation of base image key ------------------------------------------------- /** * Returns an image descriptor for a C element. This is the base image, no overlays. */ public ImageDescriptor getBaseImageDescriptor(ICElement celement, int renderFlags) { // Allow contributed languages to provide icons for their extensions to the ICElement hierarchy if (celement instanceof IContributedCElement) return ((IContributedCElement)celement).getAdapter(ImageDescriptor.class); int type = celement.getElementType(); switch (type) { case ICElement.C_VCONTAINER: if (celement instanceof IBinaryModule) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_BINARY); } else if (celement instanceof ILibraryReference) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_UNKNOWN); } else if (celement instanceof IIncludeReference) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_INCLUDES_FOLDER); } else if (celement instanceof IArchiveContainer) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ARCHIVES_CONTAINER); } else if (celement instanceof IBinaryContainer) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_BINARIES_CONTAINER); } return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CONTAINER); case ICElement.C_BINARY: { IBinary bin = (IBinary)celement; if (bin.isExecutable()) { if (bin.hasDebug()) return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CEXEC_DEBUG); return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CEXEC); } else if (bin.isSharedLib()) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_SHLIB); } else if (bin.isCore()) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CORE); } return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_BINARY); } case ICElement.C_ARCHIVE: return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ARCHIVE); case ICElement.C_UNIT: { ITranslationUnit unit = (ITranslationUnit)celement; if (unit.isHeaderUnit()) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TUNIT_HEADER); } else if (unit.isSourceUnit()) { if (unit.isASMLanguage()) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TUNIT_ASM); } } return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TUNIT); } case ICElement.C_CCONTAINER: if (celement instanceof ISourceRoot) { return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_SOURCE_ROOT); } //return DESC_OBJ_FOLDER; return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CFOLDER); case ICElement.C_PROJECT: ICProject cp= (ICProject)celement; if (cp.getProject().isOpen()) { IProject project= cp.getProject(); IWorkbenchAdapter adapter= project.getAdapter(IWorkbenchAdapter.class); if (adapter != null) { ImageDescriptor result= adapter.getImageDescriptor(project); if (result != null) return result; } return DESC_OBJ_PROJECT; } return DESC_OBJ_PROJECT_CLOSED; case ICElement.C_STRUCT: case ICElement.C_TEMPLATE_STRUCT: return getStructImageDescriptor((renderFlags & LIGHT_TYPE_ICONS) != 0); case ICElement.C_CLASS: case ICElement.C_TEMPLATE_CLASS: return getClassImageDescriptor((renderFlags & LIGHT_TYPE_ICONS) != 0); case ICElement.C_UNION: case ICElement.C_TEMPLATE_UNION: return getUnionImageDescriptor((renderFlags & LIGHT_TYPE_ICONS) != 0); case ICElement.C_TYPEDEF: return getTypedefImageDescriptor((renderFlags & LIGHT_TYPE_ICONS) != 0); case ICElement.C_ENUMERATION: return getEnumerationImageDescriptor((renderFlags & LIGHT_TYPE_ICONS) != 0); case ICElement.C_ENUMERATOR: return getEnumeratorImageDescriptor(); case ICElement.C_FIELD: try { IField field = (IField)celement; ASTAccessVisibility visibility = field.getVisibility(); return getFieldImageDescriptor(visibility); } catch (CModelException e) { return null; } case ICElement.C_METHOD: case ICElement.C_METHOD_DECLARATION: case ICElement.C_TEMPLATE_METHOD: case ICElement.C_TEMPLATE_METHOD_DECLARATION: try { IMethodDeclaration md= (IMethodDeclaration)celement; ASTAccessVisibility visibility =md.getVisibility(); return getMethodImageDescriptor(visibility); } catch (CModelException e) { return null; } case ICElement.C_VARIABLE: case ICElement.C_TEMPLATE_VARIABLE: return getVariableImageDescriptor(); case ICElement.C_FUNCTION: case ICElement.C_TEMPLATE_FUNCTION: return getFunctionImageDescriptor(); case ICElement.C_STRUCT_DECLARATION: case ICElement.C_CLASS_DECLARATION: case ICElement.C_UNION_DECLARATION: case ICElement.C_VARIABLE_DECLARATION: case ICElement.C_TEMPLATE_CLASS_DECLARATION: case ICElement.C_TEMPLATE_UNION_DECLARATION: case ICElement.C_TEMPLATE_STRUCT_DECLARATION: return getVariableDeclarationImageDescriptor(); case ICElement.C_FUNCTION_DECLARATION: case ICElement.C_TEMPLATE_FUNCTION_DECLARATION: return getFunctionDeclarationImageDescriptor(); case ICElement.C_INCLUDE: return getIncludeImageDescriptor(); case ICElement.C_MACRO: return getMacroImageDescriptor(); case ICElement.C_NAMESPACE: return getNamespaceImageDescriptor(); case ICElement.C_USING: return getUsingImageDescriptor(); default: return getImageDescriptor(type); } } // ---- Methods to compute the adornments flags --------------------------------- private int computeCAdornmentFlags(ICElement element, int renderFlags) { int flags= computeBasicAdornmentFlags(element, renderFlags); if (showOverlayIcons(renderFlags)) { try { if (element instanceof IDeclaration) { IDeclaration decl = (IDeclaration) element; if(decl.isStatic()){ flags |= CElementImageDescriptor.STATIC; } if(decl.isConst()){ flags |= CElementImageDescriptor.CONSTANT; } if(decl.isVolatile()){ flags |= CElementImageDescriptor.VOLATILE; } if(element instanceof ITemplate){ flags |= CElementImageDescriptor.TEMPLATE; } } if (element instanceof ISourceReference) { ISourceReference sref= (ISourceReference) element; if (!sref.isActive()) { flags |= CElementImageDescriptor.INACTIVE; } else { if (element instanceof IInclude) { IInclude include= (IInclude) element; if (!include.isResolved()) { flags |= CElementImageDescriptor.WARNING; } } } } } catch (CModelException e) { } } return flags; } private int computeBasicAdornmentFlags(Object element, int renderFlags) { int flags= 0; if ((renderFlags & OVERLAY_ERROR) !=0) { flags |= CElementImageDescriptor.ERROR; } if ((renderFlags & OVERLAY_WARNING) !=0) { flags |= CElementImageDescriptor.WARNING; } // if ((renderFlags & OVERLAY_OVERRIDE) !=0) { // flags |= CElementImageDescriptor.OVERRIDES; // } // if ((renderFlags & OVERLAY_IMPLEMENTS) !=0) { // flags |= CElementImageDescriptor.IMPLEMENTS; // } if ((renderFlags & OVERLAY_EXTERNAL) != 0) { flags |= CElementImageDescriptor.EXTERNAL_FILE; } return flags; } public void dispose() { } public static ImageDescriptor getStructImageDescriptor(){ return getStructImageDescriptor(false); } public static ImageDescriptor getStructImageDescriptor(boolean alt){ return alt ? CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_STRUCT_ALT) : CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_STRUCT); } public static ImageDescriptor getClassImageDescriptor(){ return getClassImageDescriptor(false); } public static ImageDescriptor getClassImageDescriptor(boolean alt){ return alt ? CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CLASS_ALT) : CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_CLASS); } public static ImageDescriptor getUnionImageDescriptor(){ return getUnionImageDescriptor(false); } public static ImageDescriptor getUnionImageDescriptor(boolean alt){ return alt ? CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_UNION_ALT) : CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_UNION); } public static ImageDescriptor getTypedefImageDescriptor(){ return getTypedefImageDescriptor(false); } public static ImageDescriptor getTypedefImageDescriptor(boolean alt){ return alt ? CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TYPEDEF_ALT) : CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_TYPEDEF); } public static ImageDescriptor getEnumerationImageDescriptor(){ return getEnumerationImageDescriptor(false); } public static ImageDescriptor getEnumerationImageDescriptor(boolean alt){ return alt ? CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ENUMERATION_ALT) : CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ENUMERATION); } public static ImageDescriptor getEnumeratorImageDescriptor(){ return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_ENUMERATOR); } public static ImageDescriptor getFieldImageDescriptor(ASTAccessVisibility visibility) { if (visibility == ASTAccessVisibility.PUBLIC) return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PUBLIC_FIELD); if( visibility == ASTAccessVisibility.PROTECTED) return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PROTECTED_FIELD); return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PRIVATE_FIELD); } public static ImageDescriptor getMethodImageDescriptor(ASTAccessVisibility visibility) { if( visibility == ASTAccessVisibility.PUBLIC) return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PUBLIC_METHOD); if( visibility == ASTAccessVisibility.PROTECTED) return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PROTECTED_METHOD); return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_PRIVATE_METHOD); } public static ImageDescriptor getVariableImageDescriptor(){ return getImageDescriptor(ICElement.C_VARIABLE); } public static ImageDescriptor getLocalVariableImageDescriptor(){ return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_LOCAL_VARIABLE); } public static ImageDescriptor getFunctionImageDescriptor(){ return getImageDescriptor(ICElement.C_FUNCTION); } public static ImageDescriptor getVariableDeclarationImageDescriptor(){ return getImageDescriptor(ICElement.C_VARIABLE_DECLARATION); } public static ImageDescriptor getFunctionDeclarationImageDescriptor(){ return getImageDescriptor(ICElement.C_FUNCTION_DECLARATION); } public static ImageDescriptor getIncludeImageDescriptor(){ return getImageDescriptor(ICElement.C_INCLUDE); } public static ImageDescriptor getMacroImageDescriptor(){ return getImageDescriptor(ICElement.C_MACRO); } public static ImageDescriptor getNamespaceImageDescriptor(){ return getImageDescriptor(ICElement.C_NAMESPACE); } public static ImageDescriptor getUsingImageDescriptor(){ return getImageDescriptor(ICElement.C_USING); } public static ImageDescriptor getKeywordImageDescriptor(){ return CDTSharedImages.getImageDescriptor(CDTSharedImages.IMG_OBJS_KEYWORD); } }