<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Fri Jan 12 16:42:05 EST 2007 -->
<TITLE>
Q-Index
</TITLE>

<META NAME="date" CONTENT="2007-01-12">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Q-Index";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="index-16.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-18.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-17.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-17.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">H</A> <A HREF="index-9.html">I</A> <A HREF="index-10.html">J</A> <A HREF="index-11.html">K</A> <A HREF="index-12.html">L</A> <A HREF="index-13.html">M</A> <A HREF="index-14.html">N</A> <A HREF="index-15.html">O</A> <A HREF="index-16.html">P</A> <A HREF="index-17.html">Q</A> <A HREF="index-18.html">R</A> <A HREF="index-19.html">S</A> <A HREF="index-20.html">T</A> <A HREF="index-21.html">U</A> <A HREF="index-22.html">V</A> <A HREF="index-23.html">W</A> <A HREF="index-24.html">X</A> <A HREF="index-25.html">Y</A> <A HREF="index-26.html">Z</A> <HR>
<A NAME="_Q_"><!-- --></A><H2>
<B>Q</B></H2>
<DL>
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_ALLINPUT"><B>QS_ALLINPUT</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_HOTKEY"><B>QS_HOTKEY</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_INPUT"><B>QS_INPUT</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_KEY"><B>QS_KEY</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_MOUSE"><B>QS_MOUSE</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_MOUSEBUTTON"><B>QS_MOUSEBUTTON</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_MOUSEMOVE"><B>QS_MOUSEMOVE</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_PAINT"><B>QS_PAINT</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_POSTMESSAGE"><B>QS_POSTMESSAGE</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_SENDMESSAGE"><B>QS_SENDMESSAGE</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/win32/OS.html#QS_TIMER"><B>QS_TIMER</B></A> - 
Static variable in class org.eclipse.swt.internal.win32.<A HREF="../org/eclipse/swt/internal/win32/OS.html" title="class in org.eclipse.swt.internal.win32">OS</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/graphics/Path.html#quadTo(float, float, float, float)"><B>quadTo(float, float, float, float)</B></A> - 
Method in class org.eclipse.swt.graphics.<A HREF="../org/eclipse/swt/graphics/Path.html" title="class in org.eclipse.swt.graphics">Path</A>
<DD>Adds to the receiver a quadratic curve based on the parameters.
<DT><A HREF="../org/eclipse/swt/internal/gdip/Gdip.html#QualityModeDefault"><B>QualityModeDefault</B></A> - 
Static variable in class org.eclipse.swt.internal.gdip.<A HREF="../org/eclipse/swt/internal/gdip/Gdip.html" title="class in org.eclipse.swt.internal.gdip">Gdip</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/gdip/Gdip.html#QualityModeHigh"><B>QualityModeHigh</B></A> - 
Static variable in class org.eclipse.swt.internal.gdip.<A HREF="../org/eclipse/swt/internal/gdip/Gdip.html" title="class in org.eclipse.swt.internal.gdip">Gdip</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/gdip/Gdip.html#QualityModeLow"><B>QualityModeLow</B></A> - 
Static variable in class org.eclipse.swt.internal.gdip.<A HREF="../org/eclipse/swt/internal/gdip/Gdip.html" title="class in org.eclipse.swt.internal.gdip">Gdip</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/ole/win32/IDataObject.html#QueryGetData(org.eclipse.swt.internal.ole.win32.FORMATETC)"><B>QueryGetData(FORMATETC)</B></A> - 
Method in class org.eclipse.swt.internal.ole.win32.<A HREF="../org/eclipse/swt/internal/ole/win32/IDataObject.html" title="class in org.eclipse.swt.internal.ole.win32">IDataObject</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/ole/win32/IUnknown.html#QueryInterface(org.eclipse.swt.internal.ole.win32.GUID, int[])"><B>QueryInterface(GUID, int[])</B></A> - 
Method in class org.eclipse.swt.internal.ole.win32.<A HREF="../org/eclipse/swt/internal/ole/win32/IUnknown.html" title="class in org.eclipse.swt.internal.ole.win32">IUnknown</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/ole/win32/OleClientSite.html#QueryInterface(int, int)"><B>QueryInterface(int, int)</B></A> - 
Method in class org.eclipse.swt.ole.win32.<A HREF="../org/eclipse/swt/ole/win32/OleClientSite.html" title="class in org.eclipse.swt.ole.win32">OleClientSite</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/ole/win32/OleControlSite.html#QueryInterface(int, int)"><B>QueryInterface(int, int)</B></A> - 
Method in class org.eclipse.swt.ole.win32.<A HREF="../org/eclipse/swt/ole/win32/OleControlSite.html" title="class in org.eclipse.swt.ole.win32">OleControlSite</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/internal/ole/win32/IOleCommandTarget.html#QueryStatus(org.eclipse.swt.internal.ole.win32.GUID, int, org.eclipse.swt.internal.ole.win32.OLECMD, org.eclipse.swt.internal.ole.win32.OLECMDTEXT)"><B>QueryStatus(GUID, int, OLECMD, OLECMDTEXT)</B></A> - 
Method in class org.eclipse.swt.internal.ole.win32.<A HREF="../org/eclipse/swt/internal/ole/win32/IOleCommandTarget.html" title="class in org.eclipse.swt.internal.ole.win32">IOleCommandTarget</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/swt/ole/win32/OleClientSite.html#queryStatus(int)"><B>queryStatus(int)</B></A> - 
Method in class org.eclipse.swt.ole.win32.<A HREF="../org/eclipse/swt/ole/win32/OleClientSite.html" title="class in org.eclipse.swt.ole.win32">OleClientSite</A>
<DD>Returns the status of the specified command.
</DL>
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="index-16.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-18.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-17.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-17.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">H</A> <A HREF="index-9.html">I</A> <A HREF="index-10.html">J</A> <A HREF="index-11.html">K</A> <A HREF="index-12.html">L</A> <A HREF="index-13.html">M</A> <A HREF="index-14.html">N</A> <A HREF="index-15.html">O</A> <A HREF="index-16.html">P</A> <A HREF="index-17.html">Q</A> <A HREF="index-18.html">R</A> <A HREF="index-19.html">S</A> <A HREF="index-20.html">T</A> <A HREF="index-21.html">U</A> <A HREF="index-22.html">V</A> <A HREF="index-23.html">W</A> <A HREF="index-24.html">X</A> <A HREF="index-25.html">Y</A> <A HREF="index-26.html">Z</A> <HR>

</BODY>
</HTML>
