###############################################################################
# Copyright (c) 2000, 2007 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.SWTOLEExample.name = SWT OLE Example Plugin (Win32)
category.SWTExamples.name = SWT Examples
view.OLEWebBrowserExample.name = OLE Web Browser (Win32)

launchcategory.SWTWin32OnlyExamples.name = Win32 only
launchcategory.SWTWin32OnlyExamples.description = \
	A collection of Standard Widget Toolkit examples for Windows systems only.

launchitem.OLEWebBrowserExample.name = OLE Web Browser
launchitem.OLEWebBrowserExample.description = \
	This example demonstrates how to embed an Active X control into an SWT application or an Eclipse view.\n\n\
	When the view is opened, it will create an instance of the Windows Internet Explorer \
	control.  The OLE Web Browser has \
	Back and Forward buttons to take you to recently visited pages.  The browser also contains \
	a Home button to take you to the web browser's home page, a Stop button which stops the \
	current transfer, a Search button which will search for text typed in the Address text field, and \
	a Refresh button which re-draws the contents of the currently displayed page. There is also a \
	Go button which, when clicked, will attempt to load the page specified in the Address field.

browser.Back.text = Backward
browser.Back.tooltip = Go to previous Web site in the history list

browser.Forward.text = Forward
browser.Forward.tooltip = Go to next Web site in the history list

browser.Home.text = Home
browser.Home.tooltip = Go to home Web site

browser.Stop.text = Stop
browser.Stop.tooltip = Stop loading current Web site

browser.Refresh.text = Refresh
browser.Refresh.tooltip = Refresh current Web site

browser.Search.text = Search
browser.Search.tooltip = Search the Web

browser.Address.label = Address :

browser.Go.text = Go

browser.State.Uninitialized.text = Not ready.
browser.State.Loading.text = Loading Web site...
browser.State.Loaded.text = Ready.
browser.State.Interactive.text = Loading Web site...
browser.State.Complete.text = Done.

error.CouldNotLoadResources = Unable to load resources
error.CouldNotCreateBrowserControl = Unable to create <<Browser Control>>

launchitem.OLEExample.name=OLE Example
launchitem.OLEExample.description=\
	The OLE example demonstrates how to embed an Active X control into \
	an SWT application.\n\n\



