Revision: 3190
          http://vexi.svn.sourceforge.net/vexi/?rev=3190&view=rev
Author:   clrg
Date:     2008-11-10 14:17:32 +0000 (Mon, 10 Nov 2008)

Log Message:
-----------
Tweaking popupmanager

Modified Paths:
--------------
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupmanager.t

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupmanager.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupmanager.t 
2008-11-10 13:51:20 UTC (rev 3189)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupmanager.t 
2008-11-10 14:17:32 UTC (rev 3190)
@@ -5,10 +5,9 @@
         <author>Charles Goodwin</author>
     </meta:doc>
     
-    <ui:box redirect=":$content">
-        <ui:box id="container" layout="place">
-            <ui:box id="content" align="topleft" />
-        </ui:box>
+    <ui:box redirect=":$content" layout="layer">
+        <ui:box id="content" />
+        <ui:box id="container" layout="place" />
         
         vexi..vexi.util.redirect..addRedirect(thisbox, $content, "orient", 
"layout");
         
@@ -20,16 +19,18 @@
         var reqtimes = {};    // pop request times
         
         /** used to track surface_x/y changes */
-        var syncXPos = function(v) { cascade = v; popforegs[trapee.popgroup].x 
= v; }
-        var syncYPos = function(v) { cascade = v; popforegs[trapee.popgroup].y 
= v; }
+        var syncXPos = function(v) { cascade = v; popforegs[trapee.popgroup ? 
trapee.popgroup : "default"].x = v; }
+        var syncYPos = function(v) { cascade = v; popforegs[trapee.popgroup ? 
trapee.popgroup : "default"].y = v; }
         
         /** private function to pop down box 'v' */
         var popDown = function(v) {
             var p = v.v_popbox;
+            // use default group if none is specified
+            var g = p.popgroup ? p.popgroup : "default";
             // ignore non-visible requests
             if (p.visible) {
-                popforegs[p.popgroup].display = false;
-                popgroups[p.popgroup] = null;
+                popforegs[g].display = false;
+                popgroups[g] = null;
                 p.display = false;
                 p.surface_x --= syncXPos;
                 p.surface_y --= syncYPos;
@@ -39,12 +40,13 @@
         /** private function to pop up box 'v' */
         var popUp = function(v) {
             var p = v.v_popbox;
+            // use default group if none is specified
+            var g = p.popgroup ? p.popgroup : "default";
             // establish popup group
-            var fg = popforegs[p.popgroup];
+            var fg = popforegs[g];
             // establish 'v' as active popup for group
-            if (popgroups[p.popgroup])
-                popgroups[p.popgroup].display = false;
-            popgroups[p.popgroup] = p;
+            if (popgroups[g]) popgroups[g].display = false;
+            popgroups[g] = p;
             // call surface update functions
             var s = v.surface;
             var sW = v.surfaceWidth;
@@ -110,10 +112,8 @@
             p.display = false;
             
             // use default group if none is specified
-            if (!p.popgroup) p.popgroup = "default";
+            var g = p.popgroup ? p.popgroup : "default";
             
-            var g = p.popgroup;
-            
             // if group exists slot into it
             if (popforegs[g]) {
                 popforegs[g][popforegs[g].numchildren] = p;
@@ -144,14 +144,16 @@
         /** remove a popupable box from the surface */
         surface.delPopBox = function(v) {
             var p = v.v_popbox;
+            // use default group if none is specified
+            var g = p.popgroup ? p.popgroup : "default";
             // clean up popbox
             if (p.visible) popDown(v);
-            var fg = popforegs[p.popgroup];
+            var fg = popforegs[g];
             fg[fg.indexof(p)] = null;
             
             // clean up unused foreground box
             if (fg.numchildren == 0) {
-                popforegs[p.popgroup] = null;
+                popforegs[g] = null;
                 fg.thisbox = null;
             }
         }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to