###############################################################################
# Copyright (c) 2000, 2005 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
providerName = Eclipse.org
plugin.SWTPaintExample.name = SWT Views Example Plugin
category.SWTExamples.name = SWT Examples
view.PaintExample.name = Paint

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.PaintExample.name = Paint
launchitem.PaintExample.description = \
	This example demonstrates the use of SWT graphics operations in the form of a \
	rudimentary bitmap painting program.  The Airbrush Tool implementation also \
	demonstrates a mechanism for managing timed GUI operations in the background \
	that are triggered by user input.\n\n\
	Select a tool with which to draw in the drawing area.  There are a number of tools \
	to choose from on the toolbar.  To change the color selection, click on a color in the \
	palette below the drawing area: left-click for the foreground color, right-click for the \
	background color.\n\n\
	Uses SWT's GC and FontDialog, and JFace's InputDialog and action set support.
view.LayoutExample.name = SWT Layouts

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.LayoutExample.name = Layouts
launchitem.LayoutExample.description = \
	This example is a simple demonstration of common SWT layouts. \n\n\
	It consists of a tab folder where each tab allows the \
	user to interact with a different SWT layout.\
	The user can insert widgets into a layout and set the values of the layout data \
	using a property sheet.  When the user has a suitable arrangement, code can be \
	generated by clicking on the Code button.
	
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.
	
view.BrowserExample.name = Web Browser

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.BrowserExample.name = Web Browser
launchitem.BrowserExample.description = \
	This example demonstrates how to integrate a Web Browser with the SWT Browser widget.\n\n\
	It consists of a composite containing a Browser widget to render HTML. \
	Additional widgets allow the user to perform typical browser actions (for example, navigate to a particular URL, go back, forward, refresh and stop).
