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