<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">		
<html lang="en">		
   <head>		
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">		
	  <link rel="stylesheet" type="text/css" href="../../help.css">	
	  <title>Remote Call Hierarchy view</title>	
   </head>		

   <body>		
		<h1>Remote Call Hierarchy view</h1>
		
		<p>The <b>Remote Call Hierarchy</b> view shows the loaded callers and callees for a selected C/C++ function. Right-click a function name in a source file and select <b>Open Call Hierarchy</b> to open a Remote Call Hierarchy view, if none is open, and show the function's callers.</p>
		
		<p><img src="../../images/view_call_hierarchy.png" alt="Remote Call Hierarchy view" ></p>
		
		<h3>Remote Call Hierarchy view toolbar commands </h3>
		
		  <p>The Remote Call Hierarchy view toolbar commands include:</p>
		  <table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#999999" width="600">
		    <tr>
		      <td width="10%" align="left"><div align="center"><b>Command</b></div></td>
		      <td width="30%"><div align="center"><b>Name</b></div></td>
		      <td width="60%"><div align="center"><b>Description</b></div></td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_show_next_reference.png"  alt="Show Next Reference icon"></div></td>
		      <td valign="top">Show Next Reference</td>
		      <td valign="top">Selects the next function.</td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_show_prev_reference.png" alt="Show Previous Reference icon"></div></td>
		      <td valign="top">Show Previous Reference</td>
		      <td valign="top">Selects the previous function.</td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_hide_variables_more.png"  alt="Hide Variables icon"></div></td>
		      <td valign="top">Hide Variables, Constants and Enumerators</td>
		      <td valign="top">Toggle to show or hide all variables, constants and enumerators in the view.</td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_show_callers.png"  alt="Show callers icon"></div></td>
		      <td valign="top">Show Callers</td>
		      <td valign="top">Show all callers in the search scope of the selected function.</td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_show_callees.png"  alt="Show callees icon"></div></td>
		      <td valign="top">Show Callees</td>
		      <td valign="top">Show all members called by the currently selected function.</td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_show_history_list.png"  alt="Show History List icon"></div></td>
		      <td valign="top">Show History List</td>
		      <td valign="top">This menu displays a history of previously displayed call hierarchies.</td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_refresh_view_contents.png"  alt="Refresh view contents icon"></div></td>
		      <td valign="top">Refresh View Contents</td>
		      <td valign="top">Refreshes the view to reflect the current state of the function.</td>
		    </tr>
		    <tr>
		      <td valign="top"><div align="center"><img src="../../images/icon_menu_white.png"  alt="Menu icon"></div></td>
		      <td valign="top">Menu</td>
		      <td valign="top">Provides commands for: <ul><li>Using working sets</li>
		      <li>Showings Callers or Callees</li>
		      <li>Show or hide file names</li>
		      <li>Activate or deactivate filters</li></ul></td>
		    </tr>
		  </table>
		
		<h3>Remote Call Hierarchy view context menu commands </h3>
		
		  <p>The Remote Call Hierarchy view context menu commands include:</p>
		  <table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#999999" width="600">
		    <tr>
		      <td width="25%"><div align="center"><b>Name</b></div></td>
		      <td width="75%"><div align="center"><b>Description</b></div></td>
		    </tr>
		    <tr>
		      <td valign="top">Show Reference</td>
		      <td valign="top">Opens an editor view containing the referenced function call.</td>
		    </tr>
		    <tr>
		      <td valign="top">Open</td>
		      <td valign="top">Opens an editor view containing the function reference.</td>
		    </tr>
		    <tr>
		      <td valign="top">Focus on</td>
		      <td valign="top">Resets the view to show the selected function.</td>
		    </tr>
		    <tr>
		      <td valign="top">Refactor...</td>
		      <td valign="top">Opens the <b>Rename global function</b> dialog.</td>
		    </tr>
		    <tr>
		      <td valign="top">Declarations</td>
		      <td valign="top">Search the workspace, project, or working set for all function declarations and shows the result in the Search view.</td>
		    </tr>
		    <tr>
		      <td valign="top">References</td>
		      <td valign="top">Search the workspace, project, or working set for all function references and shows the result in the <b>Search</b> view.</td>
		    </tr>
		  </table>
		  <br>
	</body>	
</html>		
