###############################################################################
# Copyright (c) 2000, 2003 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
###############################################################################
providerName = Eclipse.org
plugin.SWTControlsExample.name = SWT Controls Example Plugin
category.SWTExamples.name = SWT Examples
view.ControlsExample.name = SWT Controls
view.CustomControlsExample.name = SWT Custom Controls

launchcategory.SWTViewExamples.name = Workbench Views
launchcategory.SWTViewExamples.description = \
	A collection of Standard Widget Toolkit examples that run as Views inside the Workbench.  \
	These examples will create a new View in the current Perspective.

launchitem.ControlsExample.name = Controls
launchitem.ControlsExample.description = \
	This example is a simple demonstration of native SWT controls.\n\n\
	It consists of a tab folder where each tab allows the user \
	to interact with a different SWT control. \
	The user can change styles and settings and view how this affects the control.
	
launchitem.CustomControlsExample.name = Custom Controls
launchitem.CustomControlsExample.description = \
	This example is a simple demonstration of custom SWT controls.\n\n\
	It consists of a tab folder where each tab allows the user \
	to interact with a different SWT custom control. \
	The user can change styles and settings and view how this affects the control.
