###############################################################################
# Copyright (c) 2000, 2007 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.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\



