<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_201) on Mon Dec 23 15:28:45 CET 2019 -->
<title>_-Index</title>
<meta name="date" content="2019-12-23">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="_-Index";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-26.html">Prev Letter</a></li>
<li>Next Letter</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-27.html" target="_top">Frames</a></li>
<li><a href="index-27.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">A</a>&nbsp;<a href="index-2.html">B</a>&nbsp;<a href="index-3.html">C</a>&nbsp;<a href="index-4.html">D</a>&nbsp;<a href="index-5.html">E</a>&nbsp;<a href="index-6.html">F</a>&nbsp;<a href="index-7.html">G</a>&nbsp;<a href="index-8.html">H</a>&nbsp;<a href="index-9.html">I</a>&nbsp;<a href="index-10.html">J</a>&nbsp;<a href="index-11.html">K</a>&nbsp;<a href="index-12.html">L</a>&nbsp;<a href="index-13.html">M</a>&nbsp;<a href="index-14.html">N</a>&nbsp;<a href="index-15.html">O</a>&nbsp;<a href="index-16.html">P</a>&nbsp;<a href="index-17.html">Q</a>&nbsp;<a href="index-18.html">R</a>&nbsp;<a href="index-19.html">S</a>&nbsp;<a href="index-20.html">T</a>&nbsp;<a href="index-21.html">U</a>&nbsp;<a href="index-22.html">V</a>&nbsp;<a href="index-23.html">W</a>&nbsp;<a href="index-24.html">X</a>&nbsp;<a href="index-25.html">Y</a>&nbsp;<a href="index-26.html">Z</a>&nbsp;<a href="index-27.html">_</a>&nbsp;<a name="I:Z:Z_">
<!--   -->
</a>
<h2 class="title">_</h2>
<dl>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_addSelection-org.eclipse.nebula.widgets.gallery.GalleryItem-">_addSelection(GalleryItem)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html#Z:Z_addSelection-org.eclipse.nebula.widgets.gallery.GalleryItem-">_addSelection(GalleryItem)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html" title="class in org.eclipse.nebula.widgets.gallery">GalleryItem</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_arrayAddItem-java.lang.Object:A-java.lang.Object-int-">_arrayAddItem(Object[], Object, int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">Adds an item to an array.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_arrayIndexOf-int:A-int-">_arrayIndexOf(int[], int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_arrayIndexOf-java.lang.Object:A-java.lang.Object-">_arrayIndexOf(Object[], Object)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_arrayRemoveItem-java.lang.Object:A-int-">_arrayRemoveItem(Object[], int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_arrayRemoveItem-int:A-int-">_arrayRemoveItem(int[], int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_deselectAll-boolean-">_deselectAll(boolean)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">Deselects all items and send selection event depending on parameter.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html#Z:Z_deselectAll--">_deselectAll()</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html" title="class in org.eclipse.nebula.widgets.gallery">GalleryItem</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html#Z:Z_dispose--">_dispose()</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html" title="class in org.eclipse.nebula.widgets.gallery">GalleryItem</a></dt>
<dd>
<div class="block">Disposes the gallery Item.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html#Z:Z_disposeChildren--">_disposeChildren()</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html" title="class in org.eclipse.nebula.widgets.gallery">GalleryItem</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/calendarcombo/CustomCombo.html#Z:Z_findMnemonic-java.lang.String-">_findMnemonic(String)</a></span> - Method in class org.eclipse.nebula.widgets.calendarcombo.<a href="../org/eclipse/nebula/widgets/calendarcombo/CustomCombo.html" title="class in org.eclipse.nebula.widgets.calendarcombo">CustomCombo</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/compositetable/month/internal/MonthCalendarableItemControl.html#Z:Z_findMnemonic-java.lang.String-">_findMnemonic(String)</a></span> - Method in class org.eclipse.nebula.widgets.compositetable.month.internal.<a href="../org/eclipse/nebula/widgets/compositetable/month/internal/MonthCalendarableItemControl.html" title="class in org.eclipse.nebula.widgets.compositetable.month.internal">MonthCalendarableItemControl</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/effects/stw/Transition.html#Z:Z_fps">_fps</a></span> - Variable in class org.eclipse.nebula.effects.stw.<a href="../org/eclipse/nebula/effects/stw/Transition.html" title="class in org.eclipse.nebula.effects.stw">Transition</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_getItem-org.eclipse.nebula.widgets.gallery.GalleryItem-int-">_getItem(GalleryItem, int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">This method is used by items to implement getItem( index )</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_getItem-int-">_getItem(int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">Get the item at index.<br/>
 If SWT.VIRTUAL is used and the item has not been used yet, the item is
 created and a SWT.SetData is fired.<br/>
 
 This is the internal implementation of this method : checkWidget() is not
 used.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_getItem-int-boolean-">_getItem(int, boolean)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">Get the item at 'index'.<br/>
 If SWT.VIRTUAL is used, 'create' is true and the item has not been used
 yet, the item is created and a SWT.SetData is fired.<br/></div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_indexOf-org.eclipse.nebula.widgets.gallery.GalleryItem-">_indexOf(GalleryItem)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">Returns the index of a GalleryItem when it is a root Item</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_indexOf-org.eclipse.nebula.widgets.gallery.GalleryItem-org.eclipse.nebula.widgets.gallery.GalleryItem-">_indexOf(GalleryItem, GalleryItem)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">Returns the index of a GalleryItem when it is not a root Item</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_mouseDown-org.eclipse.swt.widgets.Event-">_mouseDown(Event)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>
<div class="block">Forward the mouseDown event to the corresponding group according to the
 mouse position.</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/ganttchart/GanttComposite.html#Z:Z_osType">_osType</a></span> - Static variable in class org.eclipse.nebula.widgets.ganttchart.<a href="../org/eclipse/nebula/widgets/ganttchart/GanttComposite.html" title="class in org.eclipse.nebula.widgets.ganttchart">GanttComposite</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_remove-int-">_remove(int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_remove-org.eclipse.nebula.widgets.gallery.GalleryItem-int-">_remove(GalleryItem, int)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_removeSelection-org.eclipse.nebula.widgets.gallery.GalleryItem-org.eclipse.nebula.widgets.gallery.GalleryItem-">_removeSelection(GalleryItem, GalleryItem)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_selectAll--">_selectAll()</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html#Z:Z_selectAll--">_selectAll()</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html" title="class in org.eclipse.nebula.widgets.gallery">GalleryItem</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html#Z:Z_setExpanded-boolean-boolean-">_setExpanded(boolean, boolean)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/GalleryItem.html" title="class in org.eclipse.nebula.widgets.gallery">GalleryItem</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_setGalleryItems-org.eclipse.nebula.widgets.gallery.GalleryItem:A-">_setGalleryItems(GalleryItem[])</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/datechooser/AbstractCombo.html#Z:Z_shell">_shell</a></span> - Variable in class org.eclipse.nebula.widgets.datechooser.<a href="../org/eclipse/nebula/widgets/datechooser/AbstractCombo.html" title="class in org.eclipse.nebula.widgets.datechooser">AbstractCombo</a></dt>
<dd>
<div class="block">The parent Shell</div>
</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/widgets/gallery/Gallery.html#Z:Z_showItem-org.eclipse.nebula.widgets.gallery.GalleryItem-">_showItem(GalleryItem)</a></span> - Method in class org.eclipse.nebula.widgets.gallery.<a href="../org/eclipse/nebula/widgets/gallery/Gallery.html" title="class in org.eclipse.nebula.widgets.gallery">Gallery</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/effects/stw/Transition.html#Z:Z_T">_T</a></span> - Variable in class org.eclipse.nebula.effects.stw.<a href="../org/eclipse/nebula/effects/stw/Transition.html" title="class in org.eclipse.nebula.effects.stw">Transition</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="../org/eclipse/nebula/effects/stw/Transition.html#Z:Z_transitionManager">_transitionManager</a></span> - Variable in class org.eclipse.nebula.effects.stw.<a href="../org/eclipse/nebula/effects/stw/Transition.html" title="class in org.eclipse.nebula.effects.stw">Transition</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">B</a>&nbsp;<a href="index-3.html">C</a>&nbsp;<a href="index-4.html">D</a>&nbsp;<a href="index-5.html">E</a>&nbsp;<a href="index-6.html">F</a>&nbsp;<a href="index-7.html">G</a>&nbsp;<a href="index-8.html">H</a>&nbsp;<a href="index-9.html">I</a>&nbsp;<a href="index-10.html">J</a>&nbsp;<a href="index-11.html">K</a>&nbsp;<a href="index-12.html">L</a>&nbsp;<a href="index-13.html">M</a>&nbsp;<a href="index-14.html">N</a>&nbsp;<a href="index-15.html">O</a>&nbsp;<a href="index-16.html">P</a>&nbsp;<a href="index-17.html">Q</a>&nbsp;<a href="index-18.html">R</a>&nbsp;<a href="index-19.html">S</a>&nbsp;<a href="index-20.html">T</a>&nbsp;<a href="index-21.html">U</a>&nbsp;<a href="index-22.html">V</a>&nbsp;<a href="index-23.html">W</a>&nbsp;<a href="index-24.html">X</a>&nbsp;<a href="index-25.html">Y</a>&nbsp;<a href="index-26.html">Z</a>&nbsp;<a href="index-27.html">_</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-26.html">Prev Letter</a></li>
<li>Next Letter</li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-files/index-27.html" target="_top">Frames</a></li>
<li><a href="index-27.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
