<!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 - Composite</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 Composite
      </h1>

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

        RWT Scripting analoge to org.eclipse.swt.widgets.Composite and basis for Custom Widgets.

      </p>

<!-- ============================== constructor summary ==================== -->
      

<!-- ============================== 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 Composite.">
          <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/Composite.html#append">append</a></b>(childElement)
                </div>
                <div class="description">Adds a given HTMLElement to the Composite.</div>
              </td>
            </tr>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/Composite.html#getClientArea">getClientArea</a></b>()
                </div>
                <div class="description">Returns the client Area of the Composite</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 Composite.">
          <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/Composite.html#event:Resize">Resize</a></b>
                </div>
                <div class="description">Sent when the widget selection changes size</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">&lt;private&gt; 
            <b>Composite</b>(composite)
        </div>

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

        


          
            <dl class="detailList">
            <dt class="heading">Parameters:</dt>
            
              <dt>
                 <b>composite</b>
                
              </dt>
                <dd></dd>
            
            </dl>
          
          
          
            <dl class="detailList">
            <dt class="heading">Since:</dt>
              <dd>2.0</dd>
            </dl>
          
          
          
          
          

      </div>
      

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

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

          
          <b>append</b>(childElement)

          </div>
          <div class="description">
            Adds a given HTMLElement to the Composite.
            
          </div>

          

            
              <dl class="detailList">
              <dt class="heading">Parameters:</dt>
              
                <dt>
                  <span class="light fixedFont">{HTMLElement}</span> <b>childElement</b>
                  
                </dt>
                <dd>The element to append.</dd>
              
              </dl>
            
            
            
            
            
            
            

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

          <span class="light">{int[]}</span>
          <b>getClientArea</b>()

          </div>
          <div class="description">
            Returns the client Area of the Composite
            
          </div>

          

            
            
            
            
            
              <dl class="detailList">
              <dt class="heading">Returns:</dt>
              
                <dd><span class="light fixedFont">{int[]}</span> the client area as array [ x, y, width, height ]</dd>
              
              </dl>
            
            
            

          
        
      

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

          
          <b>Resize</b>

          </div>
          <div class="description">
            Sent when the widget selection changes size
            
          </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#.Resize">SWT.Resize</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>
