]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/layout/tests/test_SizingPane.html
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / layout / tests / test_SizingPane.html
diff --git a/static/dojo-release-1.1.1/dojox/layout/tests/test_SizingPane.html b/static/dojo-release-1.1.1/dojox/layout/tests/test_SizingPane.html
new file mode 100644 (file)
index 0000000..372f396
--- /dev/null
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+        "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+       <title>dojox.layout.SizingPane</title>
+               
+       <script type="text/javascript" src="../../../dojo/dojo.js"></script>
+       <script type="text/javascript">
+               dojo.require("dijit.dijit"); 
+               dojo.require("dojo.fx"); 
+       </script>
+       <style type="text/css">
+               @import "../../../dojo/resources/dojo.css";
+               @import "../../../dijit/themes/dijit.css";
+               @import "../../../dijit/themes/tundra/tundra.css";
+               @import "../../../dijit/tests/css/dijitTests.css";
+
+       body { background:#ededed; color:#666; }  
+
+       #nav { 
+               position:absolute;
+               top:100px;
+               left:10px;
+               width:200px; 
+               -moz-border-radius:8pt 8pt;
+               background:#fff;
+               border:2px solid #ccc; 
+       }
+
+       #box1 { 
+               overflow:hidden; 
+               position:absolute; 
+               display:block;
+               width:25px;     
+               height:25px;
+               -moz-border-radius:8pt 8pt;
+               radius:8pt;
+               -webkit-border-radius:8pt 8pt; 
+               background:#fff;
+               border:2px solid #ccc; 
+               padding:7px; 
+       }       
+
+       </style>
+       <script>
+               var animationMethod = "chain";  // || combine
+               var _showing = false;
+               var animG, offsetW, offsetH = null;
+               var box1 = null;
+               var boxMixin = {
+                       startWidth: 25,
+                       startHeight: 25,
+                       endWidth: 320,
+                       endHeight: 320,
+                       duration: 300
+               };
+
+               dojo.addOnLoad(function() {
+                       box1 = dojo.byId('box1'); 
+                       centerNode(box1);
+                       dojo.connect(box1,"onmouseover",null,"show");
+                       dojo.connect(box1,"onmouseout",null,"hideCheck"); 
+                       //dojo.connect(box1,"onmouseout",null,"hideCheck"); 
+                       //dojo.connect(but1,"onclick",null,"show");
+               });
+
+               function hideCheck(node) {
+                       if (_showing) { 
+                       setTimeout(function(){hide('box1');},125); 
+                       }
+               }
+
+               function centerNode(node) {
+                       var viewport = dijit.getViewport();
+                       var mb = dojo.marginBox(node);
+                       var style = node.style;
+                       offsetW = mb.w - style.width;
+                       offsetH = mb.h - style.height; 
+                       style.left = (viewport.l + (viewport.w - mb.w)/2) + "px";
+                       style.top = (viewport.t + (viewport.h - mb.h)/2) + "px";
+               }
+
+               function doUnderlay() {
+                       console.debug('make underlay'); 
+
+               }
+
+               function show() {
+                       if (_showing) { return; }
+                       if (animG && animG.status == "playing") { animG.stop(); }
+                       _showing = true; 
+                       var viewport = dijit.getViewport();
+
+                       var newLeft = (viewport.l + (viewport.w - boxMixin.endWidth)/2);
+                       var newTop = (viewport.t + (viewport.h - boxMixin.endHeight)/2);
+
+                       var style = box1.style; 
+                       var anim1 = dojo.animateProperty({
+                               node: box1,
+                               duration: boxMixin.duration/2,
+                               properties: {
+                                       width: { /* start: boxMixin.startWidth, */ end: boxMixin.endWidth, unit:"px" },
+                                       left: { end: newLeft, unit:"px" }
+                               },
+                               beforeBegin: doUnderlay()
+                       });
+                       var anim2 = dojo.animateProperty({
+                               node: box1,
+                               duration: boxMixin.duration/2,
+                               properties: {
+                                       height: { /*start: boxMixin.startHeight, */ end: boxMixin.endHeight, unit:"px" },
+                                       top: { end: newTop, unit: "px" }
+                               },
+                               onEnd: function() { _showing = true; } 
+
+                       });
+                       animG = dojo.fx[animationMethod]([anim1,anim2]).play();
+                       // chain:
+                       
+                               // animate width / left position
+                               // animate height / top position
+                       // onend: fadeIn content?
+               }
+
+               function hide(node) {
+                       if (!_showing) return; 
+                       if (animG && animG.status() == "playing") { animG.stop(); }
+                       
+                       var viewport = dijit.getViewport(); 
+                       var newLeft = (viewport.l + (viewport.w - boxMixin.startWidth)/2);
+                       var newTop = (viewport.t + (viewport.h - boxMixin.startHeight)/2);
+
+                       var style = node.style; 
+                       var anim1 = dojo.animateProperty({
+                               node: box1,
+                               duration: boxMixin.duration/2,
+                               properties: {
+                                       width: { end: boxMixin.startWidth, unit:"px" },
+                                       left: { end: newLeft, unit:"px" }
+                               }
+                       });
+                       var anim2 = dojo.animateProperty({
+                                       node: box1,
+                               duration: boxMixin.duration/2,
+                               properties: {
+                                       height: { end: boxMixin.startHeight, unit:"px" },
+                                       top: { end: newTop, unit: "px" }
+                               },
+                               onEnd: function() { _showing = false; } 
+                       });
+                       // if we chain, do anim2 first [because height/top is how anim2 in show() ends]
+                       animG = dojo.fx[animationMethod]([anim2,anim1]).play();
+               }
+       </script>
+
+</head>
+<body class="tundra">
+
+       <h1 class="testTitle">dojox.layout.SizingPane</h1>
+
+       <p>This is simply a test / example. There is no <i>real</i> dojox.layout.SizingPane, but this code 
+       should/might become part of a dojox.fx.toggle class ... it's just "neat", isn't it?</p>
+
+       <div id="box1">
+       lorem. lorem. lorem.
+       </div>
+
+
+</body>
+</html>