###############################################################################
# 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 Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-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>>
