###############################################################################
# Copyright (c) 2000, 2004 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.SWTBrowserDemos.name = SWT Browser Demos Plugin
category.SWTExamples.name = SWT Examples
view.BrowserDemos.name = Browser Demo

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.BrowserDemos.name = Browser Demo
launchitem.BrowserDemos.description = \
	The example illustrates how to use the SWT Browser widget for HTML rendering.\n\n\
	The Pawns Game is a board game that can be played against the computer or against another player.\n\n\
	Rendering is based on HTML and CSS techniques. The board is a table filled with hyperlinks. Cascading Style Sheets \
	provide various themes and control the table aesthetic appearance. \n\
	The API org.eclipse.swt.browser.Browser.setText(java.lang.String) draws the board game from HTML generated in memory.\n\
	Player moves are captured by implementing the interface org.eclipse.swt.browser.LocationListener. e.g the player clicks \
	on a cell that defines an hyperlink with a URL http://www.org.eclipse.swt.examples.browser.demos/xx1yy2.\
	That hyperlink identifies the position of the cell selected by the player. The move is completed by generating \
	new HTML content and invoking Browser.setText to update the board game.

view.name = Browser Demo