###############################################################################
# Copyright (c) 2012 Wind River Systems 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:
#     Randy Rohrbach (Wind River) - Initial implementation
#	  IBM Corporation
###############################################################################
#
# Plugin information
#
pluginName = Floating Point Memory Renderer
providerName = Eclipse CDT
renderingType.name = Floating Point
page.name = Floating Point Memory Renderer
#
# Action preference text
#
FPRenderingPreferenceActionName=Floating Point Rendering Preferences ...
