<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="generator" content="JsDoc Toolkit" />
    
    <title>JsDoc Reference - Scale</title>

    <style type="text/css">
      /* default.css */
body
{
	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
	width: 800px;
}

.header
{
	clear: both;
	background-color: #ccc;
	padding: 8px;
}

h1
{
	font-size: 150%;
	font-weight: bold;
	padding: 0;
	margin: 1em 0 0 .3em;
}

hr
{
	border: none 0;
	border-top: 1px solid #7F8FB1;
	height: 1px;
}

pre.code
{
	display: block;
	padding: 8px;
	border: 1px dashed #ccc;
}

#index
{
	margin-top: 24px;
	float: left;
	width: 160px;
	position: absolute;
	left: 8px;
	background-color: #F3F3F3;
	padding: 8px;
}

#content
{
	margin-left: 190px;
	width: 600px;
}

.classList
{
	list-style-type: none;
	padding: 0;
	margin: 0 0 0 8px;
	font-family: arial, sans-serif;
	font-size: 1em;
	overflow: auto;
}

.classList li
{
	padding: 0;
	margin: 0 0 8px 0;
}

.summaryTable { width: 100%; }

h1.classTitle
{
	font-size:170%;
	line-height:130%;
}

h2 { font-size: 110%; }
caption, div.sectionTitle
{
	background-color: #7F8FB1;
	color: #fff;
	font-size:130%;
	text-align: left;
	padding: 2px 6px 2px 6px;
	border: 1px #7F8FB1 solid;
}

div.sectionTitle { margin-bottom: 8px; }
.summaryTable thead { display: none; }

.summaryTable td
{
	vertical-align: top;
	padding: 4px;
	border-bottom: 1px #7F8FB1 solid;
	border-right: 1px #7F8FB1 solid;
}

/*col#summaryAttributes {}*/
.summaryTable td.attributes
{
	border-left: 1px #7F8FB1 solid;
	width: 140px;
	text-align: right;
}

td.attributes, .fixedFont
{
	line-height: 15px;
	color: #002EBE;
	font-family: "Courier New",Courier,monospace;
	font-size: 13px;
}

.summaryTable td.nameDescription
{
	text-align: left;
	font-size: 13px;
	line-height: 15px;
}

.summaryTable td.nameDescription, .description
{
	line-height: 15px;
	padding: 4px;
	padding-left: 4px;
}

.summaryTable { margin-bottom: 8px; }

ul.inheritsList
{
	list-style: square;
	margin-left: 20px;
	padding-left: 0;
}

.detailList {
	margin-left: 20px; 
	line-height: 15px;
}
.detailList dt { margin-left: 20px; }

.detailList .heading
{
	font-weight: bold;
	padding-bottom: 6px;
	margin-left: 0;
}

.light, td.attributes, .light a:link, .light a:visited
{
	color: #777;
	font-style: italic;
}

.fineprint
{
	text-align: right;
	font-size: 10px;
}
    </style>
  </head>

  <body>
<!-- ============================== header ================================= -->
    <!-- begin static/header.html -->
    <div id="header">
</div>
    <!-- end static/header.html -->

<!-- ============================== classes index ============================ -->
    <div id="index">
      <!-- begin publish.classesIndex -->
      <div align="center"><a href="../index.html">Index</a></div>
<hr />
<h2>Global Objects</h2>
<ul class="classList">
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li><a href="../symbols/rap.html">rap</a></li>
  
  <li><a href="../symbols/SWT.html">SWT</a></li>
  
</ul>
<h2>Types</h2>
<ul class="classList">
  
  <li><a href="../symbols/%24.html">$</a></li>
  
  <li><a href="../symbols/Button.html">Button</a></li>
  
  <li><a href="../symbols/Canvas.html">Canvas</a></li>
  
  <li><a href="../symbols/Client.html">Client</a></li>
  
  <li><a href="../symbols/Combo.html">Combo</a></li>
  
  <li><a href="../symbols/Composite.html">Composite</a></li>
  
  <li><a href="../symbols/Control.html">Control</a></li>
  
  <li><a href="../symbols/Event.html">Event</a></li>
  
  <li><a href="../symbols/Label.html">Label</a></li>
  
  <li><a href="../symbols/ProgressBar.html">ProgressBar</a></li>
  
  <li><a href="../symbols/RemoteObject.html">RemoteObject</a></li>
  
  <li><a href="../symbols/Scale.html">Scale</a></li>
  
  <li><a href="../symbols/ScrolledComposite.html">ScrolledComposite</a></li>
  
  <li><a href="../symbols/Slider.html">Slider</a></li>
  
  <li><a href="../symbols/Spinner.html">Spinner</a></li>
  
  <li><a href="../symbols/Text.html">Text</a></li>
  
  <li><a href="../symbols/Widget.html">Widget</a></li>
  
  <li></li>
  
  <li></li>
  
</ul>
<hr />
      <!-- end publish.classesIndex -->
    </div>

    <div id="content">
<!-- ============================== class title ============================ -->
      <h1 class="classTitle">
        
        Type Scale
      </h1>

<!-- ============================== class summary ========================== -->
      <p class="description">
        
        <br />Extends
          <a href="../symbols/Control.html">Control</a>.<br />
        

        RWT Scripting analoge to org.eclipse.swt.widgets.Scale

      </p>

<!-- ============================== constructor summary ==================== -->
      
      <table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class Scale.">
        <caption>Type Summary</caption>
        <thead>
          <tr>
            <th scope="col">Constructor Attributes</th>
            <th scope="col">Constructor Name and Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td class="attributes">&nbsp;</td>
            <td class="nameDescription" >
              <div class="fixedFont">
                <b><a href="../symbols/Scale.html#constructor">Scale</a></b>()
              </div>
              <div class="description">The constructor is not public.</div>
            </td>
          </tr>
        </tbody>
      </table>
      

<!-- ============================== properties summary ===================== -->
      
        
        

        
        <dl class="inheritsList">
        <dt>Fields borrowed from class <a href="../symbols/Widget.html">Widget</a>: </dt><dd><a href="../symbols/Widget.html#$el">$el</a></dd>
        </dl>
        
      

<!-- ============================== methods summary ======================== -->
      
        
        
        <table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class Scale.">
          <caption>Method Summary</caption>
          <thead>
            <tr>
              <th scope="col">Method Attributes</th>
              <th scope="col">Method Name and Description</th>
            </tr>
          </thead>
          <tbody>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/Scale.html#getMaximum">getMaximum</a></b>()
                </div>
                <div class="description">Returns the maximum value which the receiver will allow.</div>
              </td>
            </tr>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/Scale.html#getMinimum">getMinimum</a></b>()
                </div>
                <div class="description">Returns the minimum value which the receiver will allow.</div>
              </td>
            </tr>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/Scale.html#getSelection">getSelection</a></b>()
                </div>
                <div class="description">Returns the 'selection', which is the receiver's position.</div>
              </td>
            </tr>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/Scale.html#setSelection">setSelection</a></b>(selection)
                </div>
                <div class="description">Sets the 'selection', which is the receiver's value, to the argument which
must be greater than or equal to zero.</div>
              </td>
            </tr>
          
          </tbody>
        </table>
        

        
        <dl class="inheritsList">
        <dt>Methods borrowed from class <a href="../symbols/Control.html">Control</a>: </dt><dd><a href="../symbols/Control.html#addListener">addListener</a>, <a href="../symbols/Control.html#forceFocus">forceFocus</a>, <a href="../symbols/Control.html#getBackground">getBackground</a>, <a href="../symbols/Control.html#getCursor">getCursor</a>, <a href="../symbols/Control.html#getEnabled">getEnabled</a>, <a href="../symbols/Control.html#getForeground">getForeground</a>, <a href="../symbols/Control.html#getToolTipText">getToolTipText</a>, <a href="../symbols/Control.html#getVisible">getVisible</a>, <a href="../symbols/Control.html#removeListener">removeListener</a>, <a href="../symbols/Control.html#setBackground">setBackground</a>, <a href="../symbols/Control.html#setEnabled">setEnabled</a>, <a href="../symbols/Control.html#setForeground">setForeground</a>, <a href="../symbols/Control.html#setToolTipText">setToolTipText</a>, <a href="../symbols/Control.html#setVisible">setVisible</a></dd><dt>Methods borrowed from class <a href="../symbols/Widget.html">Widget</a>: </dt><dd><a href="../symbols/Widget.html#getData">getData</a>, <a href="../symbols/Widget.html#setData">setData</a></dd>
        </dl>
        
      
<!-- ============================== events summary ======================== -->
      
        
        
        <table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class Scale.">
          <caption>Event Summary</caption>
          <thead>
            <tr>
              <th scope="col">Event Attributes</th>
              <th scope="col">Event Name and Description</th>
            </tr>
          </thead>
          <tbody>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont">
                  
                  <b><a href="../symbols/Scale.html#event:Selection">Selection</a></b>
                </div>
                <div class="description">Sent when the widget selection is changed</div>
              </td>
            </tr>
          
          </tbody>
        </table>
        

        
        <dl class="inheritsList">
        <dt>Events borrowed from class <a href="../symbols/Control.html">Control</a>: </dt><dd><a href="../symbols/Control.html#event:Dispose">Dispose</a>, <a href="../symbols/Control.html#event:FocusIn">FocusIn</a>, <a href="../symbols/Control.html#event:FocusOut">FocusOut</a>, <a href="../symbols/Control.html#event:Hide">Hide</a>, <a href="../symbols/Control.html#event:KeyDown">KeyDown</a>, <a href="../symbols/Control.html#event:KeyUp">KeyUp</a>, <a href="../symbols/Control.html#event:MouseDoubleClick">MouseDoubleClick</a>, <a href="../symbols/Control.html#event:MouseDown">MouseDown</a>, <a href="../symbols/Control.html#event:MouseEnter">MouseEnter</a>, <a href="../symbols/Control.html#event:MouseExit">MouseExit</a>, <a href="../symbols/Control.html#event:MouseMove">MouseMove</a>, <a href="../symbols/Control.html#event:MouseUp">MouseUp</a>, <a href="../symbols/Control.html#event:MouseWheel">MouseWheel</a>, <a href="../symbols/Control.html#event:Paint">Paint</a>, <a href="../symbols/Control.html#event:Show">Show</a></dd>
        </dl>
        
      

<!-- ============================== constructor details ==================== -->
      
      <div class="details"><a name="constructor"> </a>
        <div class="sectionTitle">
          Type Detail
        </div>

        <div class="fixedFont">
            <b>Scale</b>()
        </div>

        <div class="description">
          The constructor is not public.
          
        </div>

        


          
          
          
            <dl class="detailList">
            <dt class="heading">Since:</dt>
              <dd>2.2</dd>
            </dl>
          
          
          
          
          

      </div>
      

<!-- ============================== field details ========================== -->
      

<!-- ============================== method details ========================= -->
      
        <div class="sectionTitle">
          Method Detail
        </div>
        
          <a name="getMaximum"> </a>
          <div class="fixedFont">

          <span class="light">{int}</span>
          <b>getMaximum</b>()

          </div>
          <div class="description">
            Returns the maximum value which the receiver will allow.
            
          </div>

          

            
            
            
            
            
              <dl class="detailList">
              <dt class="heading">Returns:</dt>
              
                <dd><span class="light fixedFont">{int}</span> the maximum</dd>
              
              </dl>
            
            
            

          <hr />
        
          <a name="getMinimum"> </a>
          <div class="fixedFont">

          <span class="light">{int}</span>
          <b>getMinimum</b>()

          </div>
          <div class="description">
            Returns the minimum value which the receiver will allow.
            
          </div>

          

            
            
            
            
            
              <dl class="detailList">
              <dt class="heading">Returns:</dt>
              
                <dd><span class="light fixedFont">{int}</span> the minimum</dd>
              
              </dl>
            
            
            

          <hr />
        
          <a name="getSelection"> </a>
          <div class="fixedFont">

          <span class="light">{int}</span>
          <b>getSelection</b>()

          </div>
          <div class="description">
            Returns the 'selection', which is the receiver's position.
            
          </div>

          

            
            
            
            
            
              <dl class="detailList">
              <dt class="heading">Returns:</dt>
              
                <dd><span class="light fixedFont">{int}</span> the selection</dd>
              
              </dl>
            
            
            

          <hr />
        
          <a name="setSelection"> </a>
          <div class="fixedFont">

          
          <b>setSelection</b>(selection)

          </div>
          <div class="description">
            Sets the 'selection', which is the receiver's value, to the argument which
must be greater than or equal to zero.
            
          </div>

          

            
              <dl class="detailList">
              <dt class="heading">Parameters:</dt>
              
                <dt>
                  <span class="light fixedFont">{int}</span> <b>selection</b>
                  
                </dt>
                <dd>the new selection (must be zero or greater)</dd>
              
              </dl>
            
            
            
            
            
            
            

          
        
      

<!-- ============================== event details ========================= -->
      
        <div class="sectionTitle">
          Event Detail
        </div>
        
          <a name="event:Selection"> </a>
          <div class="fixedFont">

          
          <b>Selection</b>

          </div>
          <div class="description">
            Sent when the widget selection is changed
            
          </div>

          

            
              <dl class="detailList">
              <dt class="heading">Parameters:</dt>
              
                <dt>
                  <span class="light fixedFont">{<a href="../symbols/Event.html">Event</a>}</span> <b>event</b>
                  
                </dt>
                <dd></dd>
              
              </dl>
            
            
            
            
            
            
            
              <dl class="detailList">
              <dt class="heading">See:</dt>
              
                <dd><a href="../symbols/SWT.html#.Selection">SWT.Selection</a></dd>
              
              </dl>
            

          
        
      

      <hr />
    </div>


<!-- ============================== footer ================================= -->
    <div class="fineprint" style="clear:both">
      Copyright (c) EclipseSource and others 2013, 2019. All rights reserved.
    </div>
  </body>
</html>
