tutorial-3.0-widgets.html 11.4 KB
<!DOCTYPE html>

<html lang="en">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width">
	<title> Tutorial: Widgets</title>

	<!--[if lt IE 9]>
	<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	<link type="text/css" rel="stylesheet" href="styles/sunlight.dark.css">

	<link type="text/css" rel="stylesheet" href="styles/site.slate.css">

</head>

<body>

<div class="navbar navbar-default navbar-fixed-top ">
<div class="container">
	<div class="navbar-header">
		<a class="navbar-brand" href="index.html"><div style='font-size:15px;line-height:15px;margin-top:-5px;'>Web Cabin Docker<br>v3.0.0 (pre-release)</div></a>
		<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#topNavigation">
			<span class="icon-bar"></span>
			<span class="icon-bar"></span>
			<span class="icon-bar"></span>
        </button>
	</div>
	<div class="navbar-collapse collapse" id="topNavigation">
		<ul class="nav navbar-nav">
			
			<li class="dropdown">
				<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b class="caret"></b></a>
				<ul class="dropdown-menu inline">
					<li><a href="module-wcBase.html">wcBase</a></li><li><a href="module-wcCollapser.html">wcCollapser</a></li><li><a href="module-wcDocker.html">wcDocker</a></li><li><a href="module-wcDrawer.html">wcDrawer</a></li><li><a href="module-wcFrame.html">wcFrame</a></li><li><a href="module-wcGhost.html">wcGhost</a></li><li><a href="module-wcIFrame.html">wcIFrame</a></li><li><a href="module-wcLayout.html">wcLayout</a></li><li><a href="module-wcLayoutSimple.html">wcLayoutSimple</a></li><li><a href="module-wcLayoutTable.html">wcLayoutTable</a></li><li><a href="module-wcPanel.html">wcPanel</a></li><li><a href="module-wcSplitter.html">wcSplitter</a></li><li><a href="module-wcTabFrame.html">wcTabFrame</a></li>
				</ul>
			</li>
			
			<li class="dropdown">
				<a href="events.list.html" class="dropdown-toggle" data-toggle="dropdown">Events<b class="caret"></b></a>
				<ul class="dropdown-menu inline">
					<li><a href="module-wcDocker.html#event:onEvent">wcDocker#event:onEvent</a></li>
				</ul>
			</li>
			
			<li class="dropdown">
				<a href="tutorials.list.html" class="dropdown-toggle" data-toggle="dropdown">Tutorials<b class="caret"></b></a>
				<ul class="dropdown-menu inline">
					<li><a href="tutorial-1.0-getting-started.html">Getting Started</a></li><li><a href="tutorial-2.0-tips-and-tricks.html">Tips and Tricks</a></li><li><a href="tutorial-3.0-widgets.html">Widgets</a></li>
				</ul>
			</li>
			
			<li class="dropdown">
				<a href="externals.list.html" class="dropdown-toggle" data-toggle="dropdown">Externals<b class="caret"></b></a>
				<ul class="dropdown-menu inline">
					<li><a href="external-domNode.html">domNode</a></li><li><a href="external-jQuery.html">jQuery</a></li>
				</ul>
			</li>
			
		</ul>
		<div class="col-sm-3 col-md-3">
            <form class="navbar-form" role="search">
                <div class="input-group">
                    <input type="text" class="form-control" placeholder="Search" name="q" id="search-input">
                    <div class="input-group-btn">
                        <button class="btn btn-default" id="search-submit"><i class="glyphicon glyphicon-search"></i></button>
                    </div>
                </div>
            </form>
        </div>
	</div>

</div>
</div>


<div class="container" id="toc-content">
<div class="row">

	
	<div class="col-md-12">
	
		<div id="main">
			<section class="tutorial-section">

<header>
    

    <h2>Widgets</h2>
</header>

<article>
    <h3>Splitter Widget</h3><p>The <a href="module-wcSplitter.html">splitter</a> widget separates two elements by a moveable bar, either vertically or horizontally. It is the same one used by <a href="module-wcDocker.html">docker</a> to organize the layout of all docked panels.</p>
<p>To use it, you will need an element that will contain it. This element should be added to your layout and will mark the size and location of the splitter area.<br><strong>Note:</strong> Some limitations exist with iFrames. Even if the container element is partially hidden beyond the bounds of the panel layout, the iFrame itself will not be occluded.<br><strong>Troubleshooting:</strong> If the widget does not appear correctly, double check and make sure your container element has been positioned and sized properly according to your browser.</p>
<pre class="prettyprint source"><code>var $container = $('&lt;div style=&quot;position:absolute;top:0px;left:0px;right:0px;bottom:0px;&quot;>&lt;/div>');
myPanel.layout().addItem($container);

var splitter = new wcSplitter($container, myPanel, wcDocker.ORIENTATION.HORIZONTAL);
splitter.initLayouts();</code></pre><p>Once you have created your splitter widget, you'll want to fill each side with content.</p>
<pre class="prettyprint source"><code>// Horizontal splitters have a pane on the left and right.
var leftLayout = splitter.left();
var rightLayout = splitter.right();

// Vertical splitters have a pane on the top and bottom.
var topLayout = splitter.top();
var rightLayout = splitter.bottom();</code></pre><p>Once you have the <a href="module-wcLayoutTable.html">layout</a> of the pane you want, you can add items to it like you would any panel.</p>
<pre class="prettyprint source"><code>leftLayout.addItem(domNode);</code></pre><p>The orientation of a splitter can also be changed at any time by using the <a href="module-wcSplitter.html#orientation">wcSplitter.orientation()</a> function.</p>
<hr>
<h3>Tab Widget</h3><p>The <a href="module-wcTabFrame.html">tab frame</a> widget allows you to separate multiple <code>'pages'</code> of content into tabbed items, much like how panels become stacked.</p>
<p>To use it, you will need an element that will contain it. This element should be added to your layout and will mark the size and location of the tabbed area.<br><strong>Troubleshooting:</strong> If the widget does not appear correctly, double check and make sure your container element has been positioned and sized properly according to your browser.</p>
<pre class="prettyprint source"><code>var $container = $('&lt;div style=&quot;width:100%;height:100%;&quot;>&lt;/div>');
myPanel.layout().addItem($container);

var tabFrame = new wcTabFrame($container, myPanel);</code></pre><p>Of course, you'll want to add tabs to your tabbed frame and fill them with content...</p>
<pre class="prettyprint source"><code>var tabLayout = tabFrame.addTab('First Tab');
tabLayout.addItem(domNode);</code></pre><hr>
<h3>iFrame Widget</h3><p>The <a href="module-wcIFrame.html">iFrame</a> widget makes it easier to include an iFrame element into your panel.
Because an iFrame's contents is cleared whenever it is moved in the DOM heirarchy
(and changing a panels docking position causes DOM movement), special care must
be taken when using them.</p>
<p>To use it, you will need an element that will contain it. This element should be added to your layout and will mark the size and location of the iFrame area.<br><strong>Note:</strong> Some limitations exist with iFrames. Even if the container element is partially hidden beyond the bounds of the panel layout, the iFrame itself will not be occluded.<br><strong>Troubleshooting:</strong> If the widget does not appear correctly, double check and make sure your container element has been positioned and sized properly according to your browser.</p>
<pre class="prettyprint source"><code>var $container = $('&lt;div style=&quot;position:absolute;top:0px;left:0px;right:0px;bottom:0px;&quot;>&lt;/div>');
myPanel.layout().addItem($container);

var iFrame = new wcIFrame($container, myPanel);</code></pre><p>And fill its contents...</p>
<pre class="prettyprint source"><code>iFrame.openURL('http://www.example.com');
// Or...
iFrame.openHTML('&lt;span>Hello World!&lt;/span>');</code></pre><p>Or for some even more control, you can access the window object within the frame <a href="module-wcIFrame.html#window">directly</a>.</p>
<pre class="prettyprint source"><code>var frameWindow = iFrame.window();</code></pre><p>Go back to the <a href="tutorial-2.0-tips-and-tricks.html">Tips and Tricks</a> tutorial.</p>
</article>

</section>

		</div>
	</div>

	<div class="clearfix"></div>

	

</div>
</div>

<div class="modal fade" id="searchResults">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title">Search results</h4>
      </div>
      <div class="modal-body"></div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div>

<footer>


	<span class="copyright">
	2014-2016 Jeff Houde (<a href='mailto:lochemage@webcabin.org'>lochemage@webcabin.org</a>)
	</span>

<span class="jsdoc-message">
	Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a>
	
		on 2016-08-28
	
	using the <a href="https://github.com/docstrap/docstrap">DocStrap template</a>.
</span>
</footer>

<script src="scripts/docstrap.lib.js"></script>
<script src="scripts/toc.js"></script>
<script type="text/javascript" src="scripts/fulltext-search-ui.js"></script>

<script>
$( function () {
	$( "[id*='$']" ).each( function () {
		var $this = $( this );

		$this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) );
	} );

	$( ".tutorial-section pre, .readme-section pre" ).each( function () {
		var $this = $( this );

		var example = $this.find( "code" );
		exampleText = example.html();
		var lang = /{@lang (.*?)}/.exec( exampleText );
		if ( lang && lang[1] ) {
			exampleText = exampleText.replace( lang[0], "" );
			example.html( exampleText );
			lang = lang[1];
		} else {
			var langClassMatch = example.parent()[0].className.match(/lang\-(\S+)/);
			lang = langClassMatch ? langClassMatch[1] : "javascript";
		}

		if ( lang ) {

			$this
			.addClass( "sunlight-highlight-" + lang )
			.addClass( "linenums" )
			.html( example.html() );

		}
	} );

	Sunlight.highlightAll( {
		lineNumbers : true,
		showMenu : true,
		enableDoclinks : true
	} );

	$.catchAnchorLinks( {
        navbarOffset: 10
	} );
	$( "#toc" ).toc( {
		anchorName  : function ( i, heading, prefix ) {
			return $( heading ).attr( "id" ) || ( prefix + i );
		},
		selectors   : "#toc-content h1,#toc-content h2,#toc-content h3,#toc-content h4",
		showAndHide : false,
		smoothScrolling: true
	} );

	$( "#main span[id^='toc']" ).addClass( "toc-shim" );
	$( '.dropdown-toggle' ).dropdown();

    $( "table" ).each( function () {
      var $this = $( this );
      $this.addClass('table');
    } );

} );
</script>



<!--Navigation and Symbol Display-->





<!-- Piwik Analytics -->
<script type="text/javascript">
  var _paq = _paq || [];
  
  
  
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.webcabin.org/";
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['setSiteId', 6]);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<noscript><p><img src="https://analytics.webcabin.org/piwik.php?idsite=6" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->


<script type="text/javascript">
	$(document).ready(function() {
		SearcherDisplay.init();
	});
</script>

</body>
</html>