<?php

	# Set the theme for your project's web pages.
	# See the Committer Tools "How Do I" for list of themes
	# https://dev.eclipse.org/committers/
	# Optional: defaults to system theme
	$theme = "Nova";


	# Define your project-wide Nav bars here.
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# these are optional
	$Nav->setLinkList(array());
	$Nav->addCustomNav("SWTBot", 			"/swtbot/");
	$Nav->addCustomNav("Downloads", 			"http://wiki.eclipse.org/SWTBot#Update_Sites");
	$Nav->addCustomNav("Users Guide", 			"http://wiki.eclipse.org/SWTBot/UsersGuide");
	$Nav->addCustomNav("Get Support",		"http://wiki.eclipse.org/SWTBot/Support");
	$Nav->addCustomNav("Contributing", 			"http://wiki.eclipse.org/SWTBot/Contributing");

	$pageAuthor		= "Ketan Padegaonkar, Mickael Istria";
	$pageKeywords	= "SWTBot, UI Testing for SWT, UI Testing for Eclipse, SWT testing, Eclipse testing";
	$pageTitle 		= "SWTBot &ndash; UI Testing for SWT and Eclipse";


	$Menu->setMenuItemList(array());
	$Menu->addMenuItem("Home", "/swtbot/", "_self");
	$Menu->addMenuItem("Download", "ttp://wiki.eclipse.org/SWTBot#Update_Sites", "_self");
	$Menu->addMenuItem("Documentation", "http://wiki.eclipse.org/SWTBot/UsersGuide", "_self");
	$Menu->addMenuItem("Support", ""http://wiki.eclipse.org/SWTBot/Support"", "_self");
	$Menu->addMenuItem("Contribute", "http://wiki.eclipse.org/SWTBot/Contributing", "_self");

	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="style.css"/>' . "\n\t");
	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="style2.css"/>' . "\n\t");

	$App->Promotion = TRUE;
?>

