<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en">
<HEAD>

<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<title>Showing and hiding menu items and toolbar buttons</title>
<script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"> </script>
</HEAD>

<BODY BGCOLOR="#ffffff">
<H1>Showing and hiding menu items and toolbar buttons</H1>
<p>You can choose to hide menu items and toolbar buttons and then show
  them again.</p>
<h2>Hiding a menu item or toolbar button</h2>
<p>To hide a menu item or toolbar button:</p>
<ol>
  <li>Switch to the perspective that you want to configure.</li>
  <li>Select <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.customizePerspective")'>
    <img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt="command link">
    <b>Window &gt; Perspective &gt; Customize Perspective...</b></a>.</li>
  <li>Open the <b>Tool Bar Visibility</b> or <b>Menu Visibility</b> tab.</li>
  <li>Find the item you want to hide. You can do this two ways:
    <ul>
      <li>Expand the menu or toolbar hierarchy to find the item you want to 
        hide.</li>
      <li>Click the <b>Filter by action set</b> check box to see a list
        of command groups which contribute items, and choose the command
        group the item you wish to hide. Then navigate to the item in the
        hierarchy in the Structure tree.</li>
    </ul>
  </li>
  <li>Hover over the item to get additional information:
    <ul>
      <li>a description of what the item does</li>
      <li>the name of the command group which contributes the item (click the
      	link in this item to switch to the <b>Action Set Availability</b>
      	tab with the appropriate command group selected).</li>
      <li>any key bindings associated with the command the item performs (click 
      	the link in this item to open the <b>Keys</b> page of the 
      	<b>Preferences</b> dialog with the command selected, if possible).</li>
      <li>if the item is dynamic, a preview of its current appearance (dynamic
      	items are listed as [Dynamic]).</li>
    </ul>
  </li> 
  <li>Uncheck the check box next to the item. Uncheck a menu to hide all
    its children.</li>
  <li>Click <b>OK</b> to cause the changes to take effect.</li>
</ol>
<p>Using the tooltip which appears over items, you can navigate to the
  <b>Action Set Availability</b> tab and make the entire command 
  group unavailable if you wish to remove all menu items, toolbar 
  buttons and keybindings of all commands contributed by the command 
  group.</p>

<h2>Showing a menu item or toolbar button</h2>
<p>To show a menu item or toolbar button, you can follow the same 
  instructions as hiding one, except check the check box instead of
  unchecking it.</p>
<p>If an item you want to make visible is grayed out, this is 
  because the command group which contributes it is not available.
  You need to make it available before you can show or hide items
  it contributes. You can do this by hovering over the item, and
  clicking the command group link in the tooltip which appears.</p>
 <p><img border="0" src="../images/ngrelc.png" alt="Related concepts." ><br>
<a href="../concepts/concepts-4.htm">Perspectives</a>
</p>
<p><img border="0" src="../images/ngrelt.png" alt="Related tasks" ><br>
<a href="tasks-24.htm">Changing where perspectives open</a><br>
<a href="tasks-31.htm">Specifying the default perspective</a><br>
<a href="tasks-9i.htm">Saving a user defined perspective</a>
</p>



</BODY>
</HTML>
