﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="generator" content="Adobe RoboHelp 8">
<title>Navigation Submenu</title>
<link rel="StyleSheet" href="default.css" type="text/css">
<style type="text/css">
<!--
body { border-left-style:None;
border-right-style:None;
border-bottom-style:None;
background-color:Transparent;
border-top-style:None; }
-->
</style>
<style type="text/css">
<!--
body { border-left-style:None;
border-right-style:None;
border-bottom-style:None;
background-color:Transparent;
border-top-style:None; }
-->
</style>
<script type="text/javascript" language="JavaScript">
//<![CDATA[
function reDo() {
  if (innerWidth != origWidth || innerHeight != origHeight)
     location.reload();
}
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
	origWidth = innerWidth;
	origHeight = innerHeight;
	onresize = reDo;
}
onerror = null; 
//]]>
</script>
<style type="text/css">
<!--
div.WebHelpPopupMenu { position:absolute;
left:0px;
top:0px;
z-index:4;
visibility:hidden; }
p.WebHelpNavBar { text-align:right; }
-->
</style>
<script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
<script type="text/javascript" language="javascript" src="whver.js"></script>
<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
<script type="text/javascript" language="javascript1.2" src="whlang.js"></script>
<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
<script type="text/javascript" language="javascript1.2">//<![CDATA[
<!--
if (window.gbWhTopic)
{
	var strUrl = document.location.href;
	var bc = 0;
	var n = strUrl.toLowerCase().indexOf("bc-");
	if(n != -1)
	{
		document.location.href = strUrl.substring(0, n);
		bc = strUrl.substring(n+3);
	}

	if (window.setRelStartPage)
	{
	addTocInfo("Reference\nPHP Perspective Menus\nNavigation Submenu");
addAvenueInfo("Reference","run.htm","window.htm");

	}

	document.write("<p style=\"text-align:left\"> ");
AddMasterBreadcrumbs("ide_help.htm", "", "&gt;", "Home", "pdt_table_of_contents.htm");
document.write("<a href=\"reference.htm\">Reference<\/a> &gt; <a href=\"menus.htm\">PHP Perspective Menus<\/a> &gt; Navigation Submenu<\/p>");


	if (window.setRelStartPage)
	{
	setRelStartPage("ide_help.htm");

		autoSync(0);
		sendSyncInfo();
		sendAveInfoOut();
	}

}
else
	if (window.gbIE4)
		document.location.reload();
//-->
//]]></script>
</head>

<body leftmargin="5" topmargin="5" rightmargin="5" bottommargin="5"><script type="text/javascript" language="javascript1.2">//<![CDATA[
<!--
if (window.writeIntopicBar)
	writeIntopicBar(4);
//-->
//]]></script>
<div style="width: 100%; position: relative;" id="header">
	
	
 <p align="right"><a 
	 title="Documentation Survey" href="http://spreadsheets.google.com/viewform?formkey=dC1scEswTjFia2tDQ3Y5TVJBbkNQcWc6MQ">Documentation 
	 Survey</a> 
	 | <a href="javascript:crlf=&quot;&quot;;h=location.href;t=document.title;e = &quot;&quot; + (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text); if (e!=null) location=&quot;mailto:documentation@zend.com&quot; + &quot;?Subject= Feedback on PDT for page &quot; + escape(t) + &quot;&amp;Body=&quot; + escape(e).replace(/ /g, &quot;+&quot;) + crlf + &quot; &quot;; void 0"><span 
	 style="background-color: #ffffff;">Submit Documentation</span><span 
	 style="background-color: #ffffff;"> Feedback</span></a><span 
	 style="background-color: #ffffff;"></span><span style="background-color: #ffffff;"> 
	 </span><span style="background-color: #ffffff;">| 
	 </span><span 
	 style="background-color: #ffffff;"><a title="View Latest Version and Get PDF Online" 
											 href="http://www.zend.com/en/resources/zend-documentation/" 
											 target="_blank">View Latest 
	 Version and Get PDF Online</a></span></p>
</div>


<h1>Navigation Submenu 
 </h1>
<p>The Navigation submenu is available under Window | Navigation from the 
 Menu Bar.</p>
<p>&#160;</p>
<p style="font-weight: bold;">The options available under the Navigation 
 submenu are:</p>
<table cellspacing="0" width="100%">
	<col style="width: 21.537%;">
	<col style="width: 12.806%;">
	<col style="width: 65.657%;">
	<tr style="height: 24px;" valign="top">
		<td style="border: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Name</p></td>
		<td style="border-top: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 12.806%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Shortcut</p></td>
		<td style="border-top: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 65.657%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Description</p></td>
	</tr>
	<tr style="height: 24px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Show System 
		 Menu</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p 
			 style="font-weight: bold;">Alt + -</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Shows 
		 the system menu for the active view. This contains options on 
		 how the view is displayed (Fast View, Detached, &#160;Restore, 
		 Move, Size, Minimize, Maximize, Close.)</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Show View 
		 Menu</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+F10</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Shows 
		 the active view's menus, containing functionality for each view.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Quick Access</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+3</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Gives 
		 you quick access to a range of Eclipse options.</p></td>
	</tr>
	<tr style="height: 5px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Maximize 
		 / Minimize Active View or Editor</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+M</p>
		<p>&#160;</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Toggles 
		 between full screen and minimal views</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Activate 
		 Editor</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>F12</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Switches 
		 to the editor view.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Next Editor</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+F6</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Switches 
		 to the next open editor.</p>
		<p>Hold down the Ctrl key and press F6 to scroll between the editors.</p>
		<p>This command is similar to the Alt+Tab functionality on Windows.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Previous 
		 Editor</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+Shift+F6</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Switches 
		 to the previous open editor.</p>
		<p>Hold down the Ctrl+Shift keys and press F6 to scroll between 
		 the editors.</p>
		<p>This command is similar to the Alt+Tab functionality on Windows.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Switch 
		 to Editor</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+Shift+E</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Opens 
		 a dialog displaying all the open editors. Allows you to choose 
		 which editors to open, close or save.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Next View</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+F7</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Switches 
		 to the next open view.</p>
		<p>Hold down the Ctrl key and press F7 to scroll between the views.</p>
		<p>This command is similar to the Alt+Tab functionality in Windows.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Previous 
		 View</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+Shift+F7</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Switches 
		 to the previous open view.</p>
		<p>Hold down the Ctrl key and press F7 to scroll between the views.</p>
		<p>This command is similar to the Alt+Tab functionality in Windows.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Next Perspective</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+F8</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Switches 
		 to the last open Perspective.</p></td>
	</tr>
	<tr style="height: 23px;" valign="top">
		<td style="border-left: Solid 1px #000000; border-right: Solid 1px #000000; 
			 border-bottom: Solid 1px #000000; width: 21.537%; padding-right: 10px; 
			 padding-left: 10px;"><p style="font-weight: bold;">Previous 
		 Perspective</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 12.806%; padding-right: 10px; padding-left: 10px;"><p>Ctrl+Shift+F8</p></td>
		<td style="border-right: Solid 1px #000000; border-bottom: Solid 1px #000000; 
			 width: 65.657%; padding-right: 10px; padding-left: 10px;"><p>Switched 
		 to the next open Perspective.</p></td>
	</tr>
</table>

<table cellspacing="0" width="100%">
	<col style="width: 7.093%;">
	<col style="width: 92.907%;">
	<tr style="height: 16px;" valign="top">
		<td style="width: 7.093%; padding-right: 10px; 
												 padding-left: 10px;"><p 
			 style="font-size: 6pt;">&#160;</p></td>
		<td style="width: 92.907%; 
												 padding-right: 10px; padding-left: 10px;"><p>&#160;</p></td>
	</tr>
	<tr style="height: 35px;" valign="top">
		<td style="width: 7.093%; padding-right: 10px; 
												 padding-left: 10px;"><p 
			 style="font-size: 6pt;"><img src="link_icon.png" alt="link_icon.png" style="border: none;" width="32" height="40" border="0"> </p></td>
		<td style="width: 92.907%; 
												 padding-right: 10px; padding-left: 10px;"><p 
			 style="font-weight: bold;">Related Links:</p>
		<p style="font-weight: normal;"><a href="menus.htm" style="font-weight: normal;">Menus</a> 
		 </p>
		<p style="font-weight: normal;"><a href="window.htm">Window</a></p>
		<p><a href="file.htm">File</a></p>
		<p><a href="edit.htm">Edit</a></p>
		<p><a href="source.htm">Source</a></p>
		<p><a href="refactor.htm">Refactor</a></p>
		<p><a href="navigate.htm">Navigate</a></p>
		<p><a href="search.htm">Search</a></p>
		<p><a href="project.htm">Project</a></p>
		<p><a href="run.htm">Run</a></p>
		<p><a href="window.htm">Window</a></p>
		<p><a href="help.htm">Help</a></p></td>
	</tr>
	<tr style="height: 19px;" valign="top">
		<td style="width: 7.093%; padding-right: 10px; 
												 padding-left: 10px;"><p 
			 style="font-size: 6pt;">&#160;</p></td>
		<td style="width: 92.907%; 
												 padding-right: 10px; padding-left: 10px;"><p>&#160;</p></td>
	</tr>
</table>
<div style="width: 100%; position: relative;" id="footer">
	
 <p style="text-decoration: underline; " 
										 align="center">PHP Development 
	 Tools</p>
	
	
</div>
<script type="text/javascript" language="javascript1.2">//<![CDATA[
<!--
if (window.writeIntopicBar)
	writeIntopicBar(0);

highlightSearch();
//-->
//]]></script>
</body>
</html>
